From e502382043e5f8737a32c62f2ed8580ccb4f9a5d Mon Sep 17 00:00:00 2001 From: Onur Temizkan Date: Tue, 21 Dec 2021 10:53:25 +0000 Subject: [PATCH 1/3] Add integration tests for `captureMessage` --- .../suites/public-api/captureMessage/init.js | 7 +++++ .../captureMessage/simple_message/subject.js | 1 + .../captureMessage/simple_message/test.ts | 13 ++++++++ .../public-api/captureMessage/template.hbs | 11 +++++++ .../captureMessage/with_context/init.js | 11 +++++++ .../captureMessage/with_context/subject.js | 1 + .../captureMessage/with_context/test.ts | 17 ++++++++++ .../captureMessage/with_level/init.js | 11 +++++++ .../captureMessage/with_level/subject.js | 7 +++++ .../captureMessage/with_level/test.ts | 31 +++++++++++++++++++ 10 files changed, 110 insertions(+) create mode 100644 packages/integration-tests/suites/public-api/captureMessage/init.js create mode 100644 packages/integration-tests/suites/public-api/captureMessage/simple_message/subject.js create mode 100644 packages/integration-tests/suites/public-api/captureMessage/simple_message/test.ts create mode 100644 packages/integration-tests/suites/public-api/captureMessage/template.hbs create mode 100644 packages/integration-tests/suites/public-api/captureMessage/with_context/init.js create mode 100644 packages/integration-tests/suites/public-api/captureMessage/with_context/subject.js create mode 100644 packages/integration-tests/suites/public-api/captureMessage/with_context/test.ts create mode 100644 packages/integration-tests/suites/public-api/captureMessage/with_level/init.js create mode 100644 packages/integration-tests/suites/public-api/captureMessage/with_level/subject.js create mode 100644 packages/integration-tests/suites/public-api/captureMessage/with_level/test.ts diff --git a/packages/integration-tests/suites/public-api/captureMessage/init.js b/packages/integration-tests/suites/public-api/captureMessage/init.js new file mode 100644 index 000000000000..d8c94f36fdd0 --- /dev/null +++ b/packages/integration-tests/suites/public-api/captureMessage/init.js @@ -0,0 +1,7 @@ +import * as Sentry from '@sentry/browser'; + +window.Sentry = Sentry; + +Sentry.init({ + dsn: 'https://public@dsn.ingest.sentry.io/1337', +}); diff --git a/packages/integration-tests/suites/public-api/captureMessage/simple_message/subject.js b/packages/integration-tests/suites/public-api/captureMessage/simple_message/subject.js new file mode 100644 index 000000000000..cf462c59a2fb --- /dev/null +++ b/packages/integration-tests/suites/public-api/captureMessage/simple_message/subject.js @@ -0,0 +1 @@ +Sentry.captureMessage('foo'); diff --git a/packages/integration-tests/suites/public-api/captureMessage/simple_message/test.ts b/packages/integration-tests/suites/public-api/captureMessage/simple_message/test.ts new file mode 100644 index 000000000000..7b4b68f228d6 --- /dev/null +++ b/packages/integration-tests/suites/public-api/captureMessage/simple_message/test.ts @@ -0,0 +1,13 @@ +import { expect } from '@playwright/test'; + +import { sentryTest } from '../../../../utils/fixtures'; +import { getSentryRequest } from '../../../../utils/helpers'; + +sentryTest('should capture a simple message string', async ({ getLocalTestPath, page }) => { + const url = await getLocalTestPath({ testDir: __dirname }); + + const eventData = await getSentryRequest(page, url); + + expect(eventData.message).toBe('foo'); + expect(eventData.level).toBe('info'); +}); diff --git a/packages/integration-tests/suites/public-api/captureMessage/template.hbs b/packages/integration-tests/suites/public-api/captureMessage/template.hbs new file mode 100644 index 000000000000..a28a09b7b485 --- /dev/null +++ b/packages/integration-tests/suites/public-api/captureMessage/template.hbs @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/integration-tests/suites/public-api/captureMessage/with_context/init.js b/packages/integration-tests/suites/public-api/captureMessage/with_context/init.js new file mode 100644 index 000000000000..c96596448965 --- /dev/null +++ b/packages/integration-tests/suites/public-api/captureMessage/with_context/init.js @@ -0,0 +1,11 @@ +import * as Sentry from '@sentry/browser'; + +window.Sentry = Sentry; + +Sentry.init({ + dsn: 'https://public@dsn.ingest.sentry.io/1337', + beforeSend: (event, hint) => { + event.hint = hint; + return event; + }, +}); diff --git a/packages/integration-tests/suites/public-api/captureMessage/with_context/subject.js b/packages/integration-tests/suites/public-api/captureMessage/with_context/subject.js new file mode 100644 index 000000000000..60c958a41d1f --- /dev/null +++ b/packages/integration-tests/suites/public-api/captureMessage/with_context/subject.js @@ -0,0 +1 @@ +Sentry.captureMessage('message_with_hint', { foo: 'bar', level: 'error' }); diff --git a/packages/integration-tests/suites/public-api/captureMessage/with_context/test.ts b/packages/integration-tests/suites/public-api/captureMessage/with_context/test.ts new file mode 100644 index 000000000000..f438d8400f8b --- /dev/null +++ b/packages/integration-tests/suites/public-api/captureMessage/with_context/test.ts @@ -0,0 +1,17 @@ +import { expect } from '@playwright/test'; +import { EventHint } from '@sentry/types'; + +import { sentryTest } from '../../../../utils/fixtures'; +import { getSentryRequest } from '../../../../utils/helpers'; + +sentryTest('should capture a message with provided hint', async ({ getLocalTestPath, page }) => { + const url = await getLocalTestPath({ testDir: __dirname }); + const eventData = await getSentryRequest(page, url); + + expect(eventData.message).toBe('message_with_hint'); + expect(eventData.level).toBe('error'); + expect((eventData as Event & { hint: EventHint }).hint.captureContext).toMatchObject({ + foo: 'bar', + level: 'error', + }); +}); diff --git a/packages/integration-tests/suites/public-api/captureMessage/with_level/init.js b/packages/integration-tests/suites/public-api/captureMessage/with_level/init.js new file mode 100644 index 000000000000..a88255b8428a --- /dev/null +++ b/packages/integration-tests/suites/public-api/captureMessage/with_level/init.js @@ -0,0 +1,11 @@ +import * as Sentry from '@sentry/browser'; + +window.Sentry = Sentry; +window.events = []; + +Sentry.init({ + dsn: 'https://public@dsn.ingest.sentry.io/1337', + beforeSend: event => { + window.events.push(event); + }, +}); diff --git a/packages/integration-tests/suites/public-api/captureMessage/with_level/subject.js b/packages/integration-tests/suites/public-api/captureMessage/with_level/subject.js new file mode 100644 index 000000000000..3d7368c95fef --- /dev/null +++ b/packages/integration-tests/suites/public-api/captureMessage/with_level/subject.js @@ -0,0 +1,7 @@ +Sentry.captureMessage('debug_message', 'debug'); +Sentry.captureMessage('info_message', 'info'); +Sentry.captureMessage('warning_message', 'warning'); +Sentry.captureMessage('error_message', 'error'); +Sentry.captureMessage('fatal_message', 'fatal'); +Sentry.captureMessage('critical_message', 'critical'); +Sentry.captureMessage('log_message', 'log'); diff --git a/packages/integration-tests/suites/public-api/captureMessage/with_level/test.ts b/packages/integration-tests/suites/public-api/captureMessage/with_level/test.ts new file mode 100644 index 000000000000..64686fe0ff03 --- /dev/null +++ b/packages/integration-tests/suites/public-api/captureMessage/with_level/test.ts @@ -0,0 +1,31 @@ +import { expect } from '@playwright/test'; + +import { sentryTest } from '../../../../utils/fixtures'; +import { getSentryEvents } from '../../../../utils/helpers'; + +sentryTest('should capture with different severity levels', async ({ getLocalTestPath, page }) => { + const url = await getLocalTestPath({ testDir: __dirname }); + + const events = await getSentryEvents(page, url); + + expect(events[0].message).toBe('debug_message'); + expect(events[0].level).toBe('debug'); + + expect(events[1].message).toBe('info_message'); + expect(events[1].level).toBe('info'); + + expect(events[2].message).toBe('warning_message'); + expect(events[2].level).toBe('warning'); + + expect(events[3].message).toBe('error_message'); + expect(events[3].level).toBe('error'); + + expect(events[4].message).toBe('fatal_message'); + expect(events[4].level).toBe('fatal'); + + expect(events[5].message).toBe('critical_message'); + expect(events[5].level).toBe('critical'); + + expect(events[6].message).toBe('log_message'); + expect(events[6].level).toBe('log'); +}); From b2e3e3c478090b7ace05305b01f35aa3203fff39 Mon Sep 17 00:00:00 2001 From: Onur Temizkan Date: Wed, 22 Dec 2021 21:30:07 +0000 Subject: [PATCH 2/3] Switch to `getMultipleSentryRequests`. --- .../public-api/captureMessage/with_level/init.js | 11 ----------- .../public-api/captureMessage/with_level/test.ts | 6 +++--- 2 files changed, 3 insertions(+), 14 deletions(-) delete mode 100644 packages/integration-tests/suites/public-api/captureMessage/with_level/init.js diff --git a/packages/integration-tests/suites/public-api/captureMessage/with_level/init.js b/packages/integration-tests/suites/public-api/captureMessage/with_level/init.js deleted file mode 100644 index a88255b8428a..000000000000 --- a/packages/integration-tests/suites/public-api/captureMessage/with_level/init.js +++ /dev/null @@ -1,11 +0,0 @@ -import * as Sentry from '@sentry/browser'; - -window.Sentry = Sentry; -window.events = []; - -Sentry.init({ - dsn: 'https://public@dsn.ingest.sentry.io/1337', - beforeSend: event => { - window.events.push(event); - }, -}); diff --git a/packages/integration-tests/suites/public-api/captureMessage/with_level/test.ts b/packages/integration-tests/suites/public-api/captureMessage/with_level/test.ts index 64686fe0ff03..8e26847c0e37 100644 --- a/packages/integration-tests/suites/public-api/captureMessage/with_level/test.ts +++ b/packages/integration-tests/suites/public-api/captureMessage/with_level/test.ts @@ -1,12 +1,12 @@ import { expect } from '@playwright/test'; import { sentryTest } from '../../../../utils/fixtures'; -import { getSentryEvents } from '../../../../utils/helpers'; +import { getMultipleSentryRequests } from '../../../../utils/helpers'; -sentryTest('should capture with different severity levels', async ({ getLocalTestPath, page }) => { +sentryTest.only('should capture with different severity levels', async ({ getLocalTestPath, page }) => { const url = await getLocalTestPath({ testDir: __dirname }); - const events = await getSentryEvents(page, url); + const events = await getMultipleSentryRequests(page, 7, url); expect(events[0].message).toBe('debug_message'); expect(events[0].level).toBe('debug'); From 11254fcf29f0e57ffbef9bd8482b19930d0e8cf0 Mon Sep 17 00:00:00 2001 From: Onur Temizkan Date: Wed, 22 Dec 2021 21:30:17 +0000 Subject: [PATCH 3/3] Remove `hint` test. --- .../captureMessage/with_context/init.js | 11 ----------- .../captureMessage/with_context/subject.js | 1 - .../captureMessage/with_context/test.ts | 17 ----------------- .../captureMessage/with_level/test.ts | 2 +- 4 files changed, 1 insertion(+), 30 deletions(-) delete mode 100644 packages/integration-tests/suites/public-api/captureMessage/with_context/init.js delete mode 100644 packages/integration-tests/suites/public-api/captureMessage/with_context/subject.js delete mode 100644 packages/integration-tests/suites/public-api/captureMessage/with_context/test.ts diff --git a/packages/integration-tests/suites/public-api/captureMessage/with_context/init.js b/packages/integration-tests/suites/public-api/captureMessage/with_context/init.js deleted file mode 100644 index c96596448965..000000000000 --- a/packages/integration-tests/suites/public-api/captureMessage/with_context/init.js +++ /dev/null @@ -1,11 +0,0 @@ -import * as Sentry from '@sentry/browser'; - -window.Sentry = Sentry; - -Sentry.init({ - dsn: 'https://public@dsn.ingest.sentry.io/1337', - beforeSend: (event, hint) => { - event.hint = hint; - return event; - }, -}); diff --git a/packages/integration-tests/suites/public-api/captureMessage/with_context/subject.js b/packages/integration-tests/suites/public-api/captureMessage/with_context/subject.js deleted file mode 100644 index 60c958a41d1f..000000000000 --- a/packages/integration-tests/suites/public-api/captureMessage/with_context/subject.js +++ /dev/null @@ -1 +0,0 @@ -Sentry.captureMessage('message_with_hint', { foo: 'bar', level: 'error' }); diff --git a/packages/integration-tests/suites/public-api/captureMessage/with_context/test.ts b/packages/integration-tests/suites/public-api/captureMessage/with_context/test.ts deleted file mode 100644 index f438d8400f8b..000000000000 --- a/packages/integration-tests/suites/public-api/captureMessage/with_context/test.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { expect } from '@playwright/test'; -import { EventHint } from '@sentry/types'; - -import { sentryTest } from '../../../../utils/fixtures'; -import { getSentryRequest } from '../../../../utils/helpers'; - -sentryTest('should capture a message with provided hint', async ({ getLocalTestPath, page }) => { - const url = await getLocalTestPath({ testDir: __dirname }); - const eventData = await getSentryRequest(page, url); - - expect(eventData.message).toBe('message_with_hint'); - expect(eventData.level).toBe('error'); - expect((eventData as Event & { hint: EventHint }).hint.captureContext).toMatchObject({ - foo: 'bar', - level: 'error', - }); -}); diff --git a/packages/integration-tests/suites/public-api/captureMessage/with_level/test.ts b/packages/integration-tests/suites/public-api/captureMessage/with_level/test.ts index 8e26847c0e37..ba8bb18d729a 100644 --- a/packages/integration-tests/suites/public-api/captureMessage/with_level/test.ts +++ b/packages/integration-tests/suites/public-api/captureMessage/with_level/test.ts @@ -3,7 +3,7 @@ import { expect } from '@playwright/test'; import { sentryTest } from '../../../../utils/fixtures'; import { getMultipleSentryRequests } from '../../../../utils/helpers'; -sentryTest.only('should capture with different severity levels', async ({ getLocalTestPath, page }) => { +sentryTest('should capture with different severity levels', async ({ getLocalTestPath, page }) => { const url = await getLocalTestPath({ testDir: __dirname }); const events = await getMultipleSentryRequests(page, 7, url);