From cccaa889279592713585c28a855ea3b7f83e239d Mon Sep 17 00:00:00 2001 From: Lukas Stracke Date: Mon, 8 Aug 2022 17:26:59 +0200 Subject: [PATCH 1/2] feat(svelte): Add Basic Error and Performance instrumentation Wraps Browser SDK functionality --- packages/svelte/package.json | 2 +- packages/svelte/src/index.ts | 4 +++- packages/svelte/src/sdk.ts | 20 ++++++++++++++++++++ packages/svelte/test/sdk.test.ts | 30 ++++++++++++++++++++++++++++++ 4 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 packages/svelte/src/sdk.ts create mode 100644 packages/svelte/test/sdk.test.ts diff --git a/packages/svelte/package.json b/packages/svelte/package.json index 0ccd07ff99f7..b6c62254eb05 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -43,7 +43,7 @@ "lint": "run-s lint:prettier lint:eslint", "lint:eslint": "eslint . --cache --cache-location '../../eslintcache/' --format stylish", "lint:prettier": "prettier --check \"{src,test,scripts}/**/*.ts\"", - "test": "jest --passWithNoTests", + "test": "jest", "test:watch": "jest --watch" }, "volta": { diff --git a/packages/svelte/src/index.ts b/packages/svelte/src/index.ts index 7646bbd17d04..8e25b84c4a0c 100644 --- a/packages/svelte/src/index.ts +++ b/packages/svelte/src/index.ts @@ -1 +1,3 @@ -export default null; +export * from '@sentry/browser'; + +export { init } from './sdk'; diff --git a/packages/svelte/src/sdk.ts b/packages/svelte/src/sdk.ts new file mode 100644 index 000000000000..59108e903151 --- /dev/null +++ b/packages/svelte/src/sdk.ts @@ -0,0 +1,20 @@ +import { BrowserOptions, init as browserInit, SDK_VERSION } from '@sentry/browser'; + +/** + * Inits the Svelte SDK + */ +export function init(options: BrowserOptions): void { + options._metadata = options._metadata || {}; + options._metadata.sdk = { + name: 'sentry.javascript.svelte', + packages: [ + { + name: 'npm:@sentry/svelte', + version: SDK_VERSION, + }, + ], + version: SDK_VERSION, + }; + + browserInit(options); +} diff --git a/packages/svelte/test/sdk.test.ts b/packages/svelte/test/sdk.test.ts new file mode 100644 index 000000000000..0ad4ea11063b --- /dev/null +++ b/packages/svelte/test/sdk.test.ts @@ -0,0 +1,30 @@ +import { init as svelteInit } from '../src/sdk'; +import { init as browserInitRaw, SDK_VERSION } from '@sentry/browser'; + +const browserInit = browserInitRaw as jest.Mock; +jest.mock('@sentry/browser'); + +describe('Initialize Svelte SDk', () => { + afterAll(() => { + jest.clearAllMocks(); + }); + + it('has the correct metadata', () => { + svelteInit({ + dsn: 'https://public@dsn.ingest.sentry.io/1337', + }); + + const expectedMetadata = { + _metadata: { + sdk: { + name: 'sentry.javascript.svelte', + packages: [{ name: 'npm:@sentry/svelte', version: SDK_VERSION }], + version: SDK_VERSION, + }, + }, + }; + + expect(browserInit).toHaveBeenCalledTimes(1); + expect(browserInit).toHaveBeenCalledWith(expect.objectContaining(expectedMetadata)); + }); +}); From dd86b84e67d1d19040347105b9a63f3f82e106da Mon Sep 17 00:00:00 2001 From: Lukas Stracke Date: Tue, 9 Aug 2022 10:19:54 +0200 Subject: [PATCH 2/2] make linter happy --- packages/svelte/test/sdk.test.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/svelte/test/sdk.test.ts b/packages/svelte/test/sdk.test.ts index 0ad4ea11063b..8ca58bf93bca 100644 --- a/packages/svelte/test/sdk.test.ts +++ b/packages/svelte/test/sdk.test.ts @@ -1,6 +1,7 @@ -import { init as svelteInit } from '../src/sdk'; import { init as browserInitRaw, SDK_VERSION } from '@sentry/browser'; +import { init as svelteInit } from '../src/sdk'; + const browserInit = browserInitRaw as jest.Mock; jest.mock('@sentry/browser');