Skip to content

Commit 5a76709

Browse files
author
Luca Forstner
committed
Add clientside getInitialProps integration test
1 parent 3f192f7 commit 5a76709

File tree

4 files changed

+54
-2
lines changed

4 files changed

+54
-2
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
const WithInitialPropsPage = ({ data }: { data: string }) => <h1>WithInitialPropsPage {data}</h1>;
2+
3+
WithInitialPropsPage.getInitialProps = () => {
4+
return { data: '[some getInitialProps data]' };
5+
};
6+
7+
export default WithInitialPropsPage;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
const WithServerSidePropsPage = ({ data }: { data: string }) => <h1>WithServerSidePropsPage {data}</h1>;
22

33
export async function getServerSideProps() {
4-
return { props: { data: '[some serverSidePropsData data]' } };
4+
return { props: { data: '[some getServerSideProps data]' } };
55
}
66

77
export default WithServerSidePropsPage;
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
const {
2+
expectRequestCount,
3+
isTransactionRequest,
4+
expectTransaction,
5+
extractEnvelopeFromRequest,
6+
} = require('../utils/client');
7+
const assert = require('assert').strict;
8+
9+
module.exports = async ({ page, url, requests }) => {
10+
await page.goto(`${url}/withInitialProps`);
11+
await page.waitForRequest(isTransactionRequest);
12+
13+
const transactionEnvelope = extractEnvelopeFromRequest(requests.transactions[0]);
14+
15+
expectTransaction(requests.transactions[0], {
16+
contexts: {
17+
trace: {
18+
op: 'pageload',
19+
},
20+
},
21+
});
22+
23+
const nextDataTag = await page.waitForSelector('#__NEXT_DATA__');
24+
const nextDataTagValue = JSON.parse(await nextDataTag.evaluate(tag => tag.innerText));
25+
26+
assert.strictEqual(
27+
nextDataTagValue.props.pageProps.data,
28+
'[some getInitialProps data]',
29+
'Returned data must contain original data returned from getInitialProps.',
30+
);
31+
32+
assert.strictEqual(
33+
nextDataTagValue.props.pageProps._sentryTraceData.split('-')[0],
34+
transactionEnvelope.envelopeHeader.trace.trace_id,
35+
'Trace id in envelope header must be the same as in trace parent data returned from getInitialProps',
36+
);
37+
38+
assert.strictEqual(
39+
nextDataTagValue.props.pageProps._sentryBaggage.match(/sentry-trace_id=([a-f0-9]*),/)[1],
40+
transactionEnvelope.envelopeHeader.trace.trace_id,
41+
'Trace id in envelope header must be the same as in baggage returned from getInitialProps',
42+
);
43+
44+
await expectRequestCount(requests, { transactions: 1 });
45+
};

packages/nextjs/test/integration/test/client/tracingClientGetServerSideProps.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ module.exports = async ({ page, url, requests }) => {
2525

2626
assert.strictEqual(
2727
nextDataTagValue.props.pageProps.data,
28-
'[some serverSidePropsData data]',
28+
'[some getServerSideProps data]',
2929
'Returned data must contain original data returned from getServerSideProps.',
3030
);
3131

0 commit comments

Comments
 (0)