Skip to content

Commit 2a52c24

Browse files
committed
Add helpers for tests
1 parent 8e121c4 commit 2a52c24

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

dev-packages/browser-integration-tests/utils/fixtures.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ export type TestFixtures = {
3535
skipRouteHandler?: boolean;
3636
skipDsnRouteHandler?: boolean;
3737
handleLazyLoadedFeedback?: boolean;
38+
responseHeaders?: Record<string, string>;
3839
}) => Promise<string>;
3940
forceFlushReplay: () => Promise<string>;
4041
enableConsole: () => void;
@@ -59,7 +60,13 @@ const sentryTest = base.extend<TestFixtures>({
5960

6061
getLocalTestUrl: ({ page }, use) => {
6162
return use(
62-
async ({ testDir, skipRouteHandler = false, skipDsnRouteHandler = false, handleLazyLoadedFeedback = false }) => {
63+
async ({
64+
testDir,
65+
skipRouteHandler = false,
66+
skipDsnRouteHandler = false,
67+
handleLazyLoadedFeedback = false,
68+
responseHeaders = {},
69+
}) => {
6370
const pagePath = `${TEST_HOST}/index.html`;
6471

6572
const tmpDir = path.join(testDir, 'dist', crypto.randomUUID());
@@ -86,7 +93,9 @@ const sentryTest = base.extend<TestFixtures>({
8693
const file = route.request().url().split('/').pop();
8794
const filePath = path.resolve(tmpDir, `./${file}`);
8895

89-
return fs.existsSync(filePath) ? route.fulfill({ path: filePath }) : route.continue();
96+
return fs.existsSync(filePath)
97+
? route.fulfill({ path: filePath, headers: responseHeaders })
98+
: route.continue();
9099
});
91100

92101
if (handleLazyLoadedFeedback) {

dev-packages/browser-integration-tests/utils/helpers.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ export const envelopeParser = (request: Request | null): unknown[] => {
2929
});
3030
};
3131

32+
// Rather use the `properEnvelopeRequestParser`, as the `envelopeParser` does not follow the envelope spec.
3233
export const envelopeRequestParser = <T = SentryEvent>(request: Request | null, envelopeIndex = 2): T => {
3334
return envelopeParser(request)[envelopeIndex] as T;
3435
};
@@ -79,8 +80,12 @@ function getEventAndTraceHeader(envelope: EventEnvelope): EventAndTraceHeader {
7980
return [event, trace];
8081
}
8182

82-
export const properEnvelopeRequestParser = <T = SentryEvent>(request: Request | null, envelopeIndex = 1): T => {
83-
return properEnvelopeParser(request)[0]?.[envelopeIndex] as T;
83+
export const properEnvelopeRequestParser = <T = SentryEvent>(
84+
request: Request | null,
85+
envelopeItemIndex: number,
86+
envelopeIndex = 1, // 1 is usually the payload of the envelope (0 is the header)
87+
): T => {
88+
return properEnvelopeParser(request)[envelopeItemIndex]?.[envelopeIndex] as T;
8489
};
8590

8691
export const properFullEnvelopeRequestParser = <T extends Envelope>(request: Request | null): T => {

0 commit comments

Comments
 (0)