From 08ddc53e9c01f57cafd92b8df73d0f36dbc1c7b6 Mon Sep 17 00:00:00 2001 From: Lukas Stracke Date: Tue, 29 Mar 2022 14:42:44 +0200 Subject: [PATCH] test(browser): add integration tests for new XHR transport --- .../xhr-captureException/subject.js | 4 ++++ .../xhr-captureException/test.ts | 21 +++++++++++++++++++ .../xhr-startTransaction/subject.js | 5 +++++ .../xhr-startTransaction/test.ts | 13 ++++++++++++ 4 files changed, 43 insertions(+) create mode 100644 packages/integration-tests/suites/new-transports/xhr-captureException/subject.js create mode 100644 packages/integration-tests/suites/new-transports/xhr-captureException/test.ts create mode 100644 packages/integration-tests/suites/new-transports/xhr-startTransaction/subject.js create mode 100644 packages/integration-tests/suites/new-transports/xhr-startTransaction/test.ts diff --git a/packages/integration-tests/suites/new-transports/xhr-captureException/subject.js b/packages/integration-tests/suites/new-transports/xhr-captureException/subject.js new file mode 100644 index 000000000000..e42102004dad --- /dev/null +++ b/packages/integration-tests/suites/new-transports/xhr-captureException/subject.js @@ -0,0 +1,4 @@ +// deactivate fetch s.t. the SDK falls back to XHR transport +window.fetch = undefined; + +Sentry.captureException(new Error('this is an error')); diff --git a/packages/integration-tests/suites/new-transports/xhr-captureException/test.ts b/packages/integration-tests/suites/new-transports/xhr-captureException/test.ts new file mode 100644 index 000000000000..cb92e50e2dc5 --- /dev/null +++ b/packages/integration-tests/suites/new-transports/xhr-captureException/test.ts @@ -0,0 +1,21 @@ +import { expect } from '@playwright/test'; +import { Event } from '@sentry/types'; + +import { sentryTest } from '../../../utils/fixtures'; +import { getFirstSentryEnvelopeRequest } from '../../../utils/helpers'; + +sentryTest('should capture an error with the new fetch transport', async ({ getLocalTestPath, page }) => { + const url = await getLocalTestPath({ testDir: __dirname }); + + const eventData = await getFirstSentryEnvelopeRequest(page, url); + + expect(eventData.exception?.values).toHaveLength(1); + expect(eventData.exception?.values?.[0]).toMatchObject({ + type: 'Error', + value: 'this is an error', + mechanism: { + type: 'generic', + handled: true, + }, + }); +}); diff --git a/packages/integration-tests/suites/new-transports/xhr-startTransaction/subject.js b/packages/integration-tests/suites/new-transports/xhr-startTransaction/subject.js new file mode 100644 index 000000000000..444e095ed3a1 --- /dev/null +++ b/packages/integration-tests/suites/new-transports/xhr-startTransaction/subject.js @@ -0,0 +1,5 @@ +// deactivate fetch s.t. the SDK falls back to XHR transport +window.fetch = undefined; + +const transaction = Sentry.startTransaction({ name: 'test_transaction_1' }); +transaction.finish(); diff --git a/packages/integration-tests/suites/new-transports/xhr-startTransaction/test.ts b/packages/integration-tests/suites/new-transports/xhr-startTransaction/test.ts new file mode 100644 index 000000000000..59ddfb00c6a1 --- /dev/null +++ b/packages/integration-tests/suites/new-transports/xhr-startTransaction/test.ts @@ -0,0 +1,13 @@ +import { expect } from '@playwright/test'; +import { Event } from '@sentry/types'; + +import { sentryTest } from '../../../utils/fixtures'; +import { getFirstSentryEnvelopeRequest } from '../../../utils/helpers'; + +sentryTest('should report a transaction with the new XHR transport', async ({ getLocalTestPath, page }) => { + const url = await getLocalTestPath({ testDir: __dirname }); + const transaction = await getFirstSentryEnvelopeRequest(page, url); + + expect(transaction.transaction).toBe('test_transaction_1'); + expect(transaction.spans).toBeDefined(); +});