From 728d241f7d0c5a4fec85f6988a670bf91571190b Mon Sep 17 00:00:00 2001 From: Onur Temizkan Date: Fri, 25 Mar 2022 16:17:52 +0000 Subject: [PATCH] test(node): Add `setExtra` integration tests. --- .../setExtra/multiple-extras/scenario.ts | 17 +++++++++++++++++ .../setExtra/multiple-extras/test.ts | 14 ++++++++++++++ .../non-serializable-extra/scenario.ts | 17 +++++++++++++++++ .../setExtra/non-serializable-extra/test.ts | 11 +++++++++++ .../setExtra/simple-extra/scenario.ts | 14 ++++++++++++++ .../public-api/setExtra/simple-extra/test.ts | 18 ++++++++++++++++++ 6 files changed, 91 insertions(+) create mode 100644 packages/node-integration-tests/suites/public-api/setExtra/multiple-extras/scenario.ts create mode 100644 packages/node-integration-tests/suites/public-api/setExtra/multiple-extras/test.ts create mode 100644 packages/node-integration-tests/suites/public-api/setExtra/non-serializable-extra/scenario.ts create mode 100644 packages/node-integration-tests/suites/public-api/setExtra/non-serializable-extra/test.ts create mode 100644 packages/node-integration-tests/suites/public-api/setExtra/simple-extra/scenario.ts create mode 100644 packages/node-integration-tests/suites/public-api/setExtra/simple-extra/test.ts diff --git a/packages/node-integration-tests/suites/public-api/setExtra/multiple-extras/scenario.ts b/packages/node-integration-tests/suites/public-api/setExtra/multiple-extras/scenario.ts new file mode 100644 index 000000000000..67d061e8f9e3 --- /dev/null +++ b/packages/node-integration-tests/suites/public-api/setExtra/multiple-extras/scenario.ts @@ -0,0 +1,17 @@ +import * as Sentry from '@sentry/node'; + +Sentry.init({ + dsn: 'https://public@dsn.ingest.sentry.io/1337', + release: '1.0', +}); + +Sentry.setExtra('extra_1', { + foo: 'bar', + baz: { + qux: 'quux', + }, +}); + +Sentry.setExtra('extra_2', false); + +Sentry.captureMessage('multiple_extras'); diff --git a/packages/node-integration-tests/suites/public-api/setExtra/multiple-extras/test.ts b/packages/node-integration-tests/suites/public-api/setExtra/multiple-extras/test.ts new file mode 100644 index 000000000000..0bc530b13cef --- /dev/null +++ b/packages/node-integration-tests/suites/public-api/setExtra/multiple-extras/test.ts @@ -0,0 +1,14 @@ +import { assertSentryEvent, getEventRequest, runServer } from '../../../../utils'; + +test('should record multiple extras of different types', async () => { + const url = await runServer(__dirname); + const requestBody = await getEventRequest(url); + + assertSentryEvent(requestBody, { + message: 'multiple_extras', + extra: { + extra_1: { foo: 'bar', baz: { qux: 'quux' } }, + extra_2: false, + }, + }); +}); diff --git a/packages/node-integration-tests/suites/public-api/setExtra/non-serializable-extra/scenario.ts b/packages/node-integration-tests/suites/public-api/setExtra/non-serializable-extra/scenario.ts new file mode 100644 index 000000000000..a09fc9d7dd9c --- /dev/null +++ b/packages/node-integration-tests/suites/public-api/setExtra/non-serializable-extra/scenario.ts @@ -0,0 +1,17 @@ +import * as Sentry from '@sentry/node'; + +Sentry.init({ + dsn: 'https://public@dsn.ingest.sentry.io/1337', + release: '1.0', +}); + +type Circular = { + self?: Circular; +}; + +const objCircular: Circular = {}; +objCircular.self = objCircular; + +Sentry.setExtra('non_serializable', objCircular); + +Sentry.captureMessage('non_serializable'); diff --git a/packages/node-integration-tests/suites/public-api/setExtra/non-serializable-extra/test.ts b/packages/node-integration-tests/suites/public-api/setExtra/non-serializable-extra/test.ts new file mode 100644 index 000000000000..24005031781b --- /dev/null +++ b/packages/node-integration-tests/suites/public-api/setExtra/non-serializable-extra/test.ts @@ -0,0 +1,11 @@ +import { assertSentryEvent, getEventRequest, runServer } from '../../../../utils'; + +test('should normalize non-serializable extra', async () => { + const url = await runServer(__dirname); + const requestBody = await getEventRequest(url); + + assertSentryEvent(requestBody, { + message: 'non_serializable', + extra: {}, + }); +}); diff --git a/packages/node-integration-tests/suites/public-api/setExtra/simple-extra/scenario.ts b/packages/node-integration-tests/suites/public-api/setExtra/simple-extra/scenario.ts new file mode 100644 index 000000000000..6c4fce288972 --- /dev/null +++ b/packages/node-integration-tests/suites/public-api/setExtra/simple-extra/scenario.ts @@ -0,0 +1,14 @@ +import * as Sentry from '@sentry/node'; + +Sentry.init({ + dsn: 'https://public@dsn.ingest.sentry.io/1337', + release: '1.0', +}); + +Sentry.setExtra('foo', { + foo: 'bar', + baz: { + qux: 'quux', + }, +}); +Sentry.captureMessage('simple_extra'); diff --git a/packages/node-integration-tests/suites/public-api/setExtra/simple-extra/test.ts b/packages/node-integration-tests/suites/public-api/setExtra/simple-extra/test.ts new file mode 100644 index 000000000000..23c0cbc6ad42 --- /dev/null +++ b/packages/node-integration-tests/suites/public-api/setExtra/simple-extra/test.ts @@ -0,0 +1,18 @@ +import { assertSentryEvent, getEventRequest, runServer } from '../../../../utils'; + +test('should set a simple extra', async () => { + const url = await runServer(__dirname); + const requestBody = await getEventRequest(url); + + assertSentryEvent(requestBody, { + message: 'simple_extra', + extra: { + foo: { + foo: 'bar', + baz: { + qux: 'quux', + }, + }, + }, + }); +});