From 0dc64b023fbe09b0dda7f8e5643e3de2eb47d79e Mon Sep 17 00:00:00 2001 From: Onur Temizkan Date: Tue, 21 Dec 2021 11:01:41 +0000 Subject: [PATCH 1/2] Add integration tests for `setUser` --- .../suites/public-api/setUser/init.js | 11 +++++++++ .../suites/public-api/setUser/template.hbs | 11 +++++++++ .../public-api/setUser/unset_user/subject.js | 13 +++++++++++ .../public-api/setUser/unset_user/test.ts | 23 +++++++++++++++++++ .../public-api/setUser/update_user/subject.js | 12 ++++++++++ .../public-api/setUser/update_user/test.ts | 21 +++++++++++++++++ 6 files changed, 91 insertions(+) create mode 100644 packages/integration-tests/suites/public-api/setUser/init.js create mode 100644 packages/integration-tests/suites/public-api/setUser/template.hbs create mode 100644 packages/integration-tests/suites/public-api/setUser/unset_user/subject.js create mode 100644 packages/integration-tests/suites/public-api/setUser/unset_user/test.ts create mode 100644 packages/integration-tests/suites/public-api/setUser/update_user/subject.js create mode 100644 packages/integration-tests/suites/public-api/setUser/update_user/test.ts diff --git a/packages/integration-tests/suites/public-api/setUser/init.js b/packages/integration-tests/suites/public-api/setUser/init.js new file mode 100644 index 000000000000..a88255b8428a --- /dev/null +++ b/packages/integration-tests/suites/public-api/setUser/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/setUser/template.hbs b/packages/integration-tests/suites/public-api/setUser/template.hbs new file mode 100644 index 000000000000..a28a09b7b485 --- /dev/null +++ b/packages/integration-tests/suites/public-api/setUser/template.hbs @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/integration-tests/suites/public-api/setUser/unset_user/subject.js b/packages/integration-tests/suites/public-api/setUser/unset_user/subject.js new file mode 100644 index 000000000000..fc7092379818 --- /dev/null +++ b/packages/integration-tests/suites/public-api/setUser/unset_user/subject.js @@ -0,0 +1,13 @@ +Sentry.captureMessage('no_user'); + +Sentry.setUser({ + id: 'foo', + ip_address: 'bar', + other_key: 'baz', +}); + +Sentry.captureMessage('user'); + +Sentry.setUser(null); + +Sentry.captureMessage('unset_user'); diff --git a/packages/integration-tests/suites/public-api/setUser/unset_user/test.ts b/packages/integration-tests/suites/public-api/setUser/unset_user/test.ts new file mode 100644 index 000000000000..30a6a8a6c27e --- /dev/null +++ b/packages/integration-tests/suites/public-api/setUser/unset_user/test.ts @@ -0,0 +1,23 @@ +import { expect } from '@playwright/test'; + +import { sentryTest } from '../../../../utils/fixtures'; +import { getSentryEvents } from '../../../../utils/helpers'; + +sentryTest('should unset user', async ({ getLocalTestPath, page }) => { + const url = await getLocalTestPath({ testDir: __dirname }); + + const eventData = await getSentryEvents(page, url); + + expect(eventData[0].message).toBe('no_user'); + expect(eventData[0].user).toBeUndefined(); + + expect(eventData[1].message).toBe('user'); + expect(eventData[1].user).toMatchObject({ + id: 'foo', + ip_address: 'bar', + other_key: 'baz', + }); + + expect(eventData[2].message).toBe('unset_user'); + expect(eventData[2].user).toBeUndefined(); +}); diff --git a/packages/integration-tests/suites/public-api/setUser/update_user/subject.js b/packages/integration-tests/suites/public-api/setUser/update_user/subject.js new file mode 100644 index 000000000000..75ff0208730d --- /dev/null +++ b/packages/integration-tests/suites/public-api/setUser/update_user/subject.js @@ -0,0 +1,12 @@ +Sentry.setUser({ + id: 'foo', + ip_address: 'bar', +}); + +Sentry.captureMessage('first_user'); + +Sentry.setUser({ + id: 'baz', +}); + +Sentry.captureMessage('second_user'); diff --git a/packages/integration-tests/suites/public-api/setUser/update_user/test.ts b/packages/integration-tests/suites/public-api/setUser/update_user/test.ts new file mode 100644 index 000000000000..c71ccc2f49b0 --- /dev/null +++ b/packages/integration-tests/suites/public-api/setUser/update_user/test.ts @@ -0,0 +1,21 @@ +import { expect } from '@playwright/test'; + +import { sentryTest } from '../../../../utils/fixtures'; +import { getSentryEvents } from '../../../../utils/helpers'; + +sentryTest('should update user', async ({ getLocalTestPath, page }) => { + const url = await getLocalTestPath({ testDir: __dirname }); + + const eventData = await getSentryEvents(page, url); + + expect(eventData[0].message).toBe('first_user'); + expect(eventData[0].user).toMatchObject({ + id: 'foo', + ip_address: 'bar', + }); + + expect(eventData[1].message).toBe('second_user'); + expect(eventData[1].user).toMatchObject({ + id: 'baz', + }); +}); From dc0cb0ae99b1201e401e3da6e95485a31344d764 Mon Sep 17 00:00:00 2001 From: Onur Temizkan Date: Wed, 22 Dec 2021 21:35:10 +0000 Subject: [PATCH 2/2] Switch to `getMultipleSentryRequests`. --- packages/integration-tests/suites/public-api/setUser/init.js | 4 ---- .../suites/public-api/setUser/unset_user/test.ts | 4 ++-- .../suites/public-api/setUser/update_user/test.ts | 4 ++-- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/packages/integration-tests/suites/public-api/setUser/init.js b/packages/integration-tests/suites/public-api/setUser/init.js index a88255b8428a..d8c94f36fdd0 100644 --- a/packages/integration-tests/suites/public-api/setUser/init.js +++ b/packages/integration-tests/suites/public-api/setUser/init.js @@ -1,11 +1,7 @@ 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/setUser/unset_user/test.ts b/packages/integration-tests/suites/public-api/setUser/unset_user/test.ts index 30a6a8a6c27e..045b79597b72 100644 --- a/packages/integration-tests/suites/public-api/setUser/unset_user/test.ts +++ b/packages/integration-tests/suites/public-api/setUser/unset_user/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 unset user', async ({ getLocalTestPath, page }) => { const url = await getLocalTestPath({ testDir: __dirname }); - const eventData = await getSentryEvents(page, url); + const eventData = await getMultipleSentryRequests(page, 3, url); expect(eventData[0].message).toBe('no_user'); expect(eventData[0].user).toBeUndefined(); diff --git a/packages/integration-tests/suites/public-api/setUser/update_user/test.ts b/packages/integration-tests/suites/public-api/setUser/update_user/test.ts index c71ccc2f49b0..1520655c8363 100644 --- a/packages/integration-tests/suites/public-api/setUser/update_user/test.ts +++ b/packages/integration-tests/suites/public-api/setUser/update_user/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 update user', async ({ getLocalTestPath, page }) => { const url = await getLocalTestPath({ testDir: __dirname }); - const eventData = await getSentryEvents(page, url); + const eventData = await getMultipleSentryRequests(page, 2, url); expect(eventData[0].message).toBe('first_user'); expect(eventData[0].user).toMatchObject({