diff --git a/packages/nextjs/test/integration/pages/withInitialProps.tsx b/packages/nextjs/test/integration/pages/withInitialProps.tsx
new file mode 100644
index 000000000000..01b557bdd09f
--- /dev/null
+++ b/packages/nextjs/test/integration/pages/withInitialProps.tsx
@@ -0,0 +1,7 @@
+const WithInitialPropsPage = ({ data }: { data: string }) =>
WithInitialPropsPage {data}
;
+
+WithInitialPropsPage.getInitialProps = () => {
+ return { data: '[some getInitialProps data]' };
+};
+
+export default WithInitialPropsPage;
diff --git a/packages/nextjs/test/integration/pages/withServerSideProps.tsx b/packages/nextjs/test/integration/pages/withServerSideProps.tsx
index e0220a577586..486313a9b9c3 100644
--- a/packages/nextjs/test/integration/pages/withServerSideProps.tsx
+++ b/packages/nextjs/test/integration/pages/withServerSideProps.tsx
@@ -1,7 +1,7 @@
const WithServerSidePropsPage = ({ data }: { data: string }) => WithServerSidePropsPage {data}
;
export async function getServerSideProps() {
- return { props: { data: '[some serverSidePropsData data]' } };
+ return { props: { data: '[some getServerSideProps data]' } };
}
export default WithServerSidePropsPage;
diff --git a/packages/nextjs/test/integration/test/client/tracingClientGetInitialProps.js b/packages/nextjs/test/integration/test/client/tracingClientGetInitialProps.js
new file mode 100644
index 000000000000..90d7eeceef4a
--- /dev/null
+++ b/packages/nextjs/test/integration/test/client/tracingClientGetInitialProps.js
@@ -0,0 +1,45 @@
+const {
+ expectRequestCount,
+ isTransactionRequest,
+ expectTransaction,
+ extractEnvelopeFromRequest,
+} = require('../utils/client');
+const assert = require('assert').strict;
+
+module.exports = async ({ page, url, requests }) => {
+ await page.goto(`${url}/withInitialProps`);
+ await page.waitForRequest(isTransactionRequest);
+
+ const transactionEnvelope = extractEnvelopeFromRequest(requests.transactions[0]);
+
+ expectTransaction(requests.transactions[0], {
+ contexts: {
+ trace: {
+ op: 'pageload',
+ },
+ },
+ });
+
+ const nextDataTag = await page.waitForSelector('#__NEXT_DATA__');
+ const nextDataTagValue = JSON.parse(await nextDataTag.evaluate(tag => tag.innerText));
+
+ assert.strictEqual(
+ nextDataTagValue.props.pageProps.data,
+ '[some getInitialProps data]',
+ 'Returned data must contain original data returned from getInitialProps.',
+ );
+
+ assert.strictEqual(
+ nextDataTagValue.props.pageProps._sentryTraceData.split('-')[0],
+ transactionEnvelope.envelopeHeader.trace.trace_id,
+ 'Trace id in envelope header must be the same as in trace parent data returned from getInitialProps',
+ );
+
+ assert.strictEqual(
+ nextDataTagValue.props.pageProps._sentryBaggage.match(/sentry-trace_id=([a-f0-9]*),/)[1],
+ transactionEnvelope.envelopeHeader.trace.trace_id,
+ 'Trace id in envelope header must be the same as in baggage returned from getInitialProps',
+ );
+
+ await expectRequestCount(requests, { transactions: 1 });
+};
diff --git a/packages/nextjs/test/integration/test/client/tracingClientGetServerSideProps.js b/packages/nextjs/test/integration/test/client/tracingClientGetServerSideProps.js
index 4b3f4a5b8337..0f9ae8e07bac 100644
--- a/packages/nextjs/test/integration/test/client/tracingClientGetServerSideProps.js
+++ b/packages/nextjs/test/integration/test/client/tracingClientGetServerSideProps.js
@@ -25,7 +25,7 @@ module.exports = async ({ page, url, requests }) => {
assert.strictEqual(
nextDataTagValue.props.pageProps.data,
- '[some serverSidePropsData data]',
+ '[some getServerSideProps data]',
'Returned data must contain original data returned from getServerSideProps.',
);