@sentry/wizard 4.6.0 → 4.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/README.md +19 -19
- package/dist/bin.js +9 -0
- package/dist/bin.js.map +1 -1
- package/dist/e2e-tests/tests/angular-17.test.d.ts +1 -0
- package/dist/e2e-tests/tests/angular-17.test.js +196 -0
- package/dist/e2e-tests/tests/angular-17.test.js.map +1 -0
- package/dist/e2e-tests/tests/angular-19.test.d.ts +1 -0
- package/dist/e2e-tests/tests/angular-19.test.js +194 -0
- package/dist/e2e-tests/tests/angular-19.test.js.map +1 -0
- package/dist/e2e-tests/tests/expo.test.d.ts +1 -0
- package/dist/e2e-tests/tests/expo.test.js +95 -0
- package/dist/e2e-tests/tests/expo.test.js.map +1 -0
- package/dist/e2e-tests/tests/flutter.test.js +16 -16
- package/dist/e2e-tests/tests/flutter.test.js.map +1 -1
- package/dist/e2e-tests/tests/help-message.test.d.ts +1 -0
- package/dist/e2e-tests/tests/help-message.test.js +56 -0
- package/dist/e2e-tests/tests/help-message.test.js.map +1 -0
- package/dist/e2e-tests/tests/nextjs-14.test.js +15 -15
- package/dist/e2e-tests/tests/nextjs-14.test.js.map +1 -1
- package/dist/e2e-tests/tests/nextjs-15.test.js +15 -15
- package/dist/e2e-tests/tests/nextjs-15.test.js.map +1 -1
- package/dist/e2e-tests/tests/nuxt-3.test.js +13 -12
- package/dist/e2e-tests/tests/nuxt-3.test.js.map +1 -1
- package/dist/e2e-tests/tests/nuxt-4.test.js +13 -12
- package/dist/e2e-tests/tests/nuxt-4.test.js.map +1 -1
- package/dist/e2e-tests/tests/react-native.test.d.ts +1 -0
- package/dist/e2e-tests/tests/react-native.test.js +97 -0
- package/dist/e2e-tests/tests/react-native.test.js.map +1 -0
- package/dist/e2e-tests/tests/remix.test.js +24 -24
- package/dist/e2e-tests/tests/remix.test.js.map +1 -1
- package/dist/e2e-tests/tests/sveltekit.test.js +22 -22
- package/dist/e2e-tests/tests/sveltekit.test.js.map +1 -1
- package/dist/e2e-tests/utils/index.d.ts +7 -0
- package/dist/e2e-tests/utils/index.js +33 -12
- package/dist/e2e-tests/utils/index.js.map +1 -1
- package/dist/lib/Constants.d.ts +6 -1
- package/dist/lib/Constants.js +3 -0
- package/dist/lib/Constants.js.map +1 -1
- package/dist/lib/Helper/Logging.d.ts +1 -1
- package/dist/lib/Helper/Logging.js.map +1 -1
- package/dist/lib/Helper/__tests__/File.js +9 -9
- package/dist/lib/Helper/__tests__/File.js.map +1 -1
- package/dist/lib/Helper/__tests__/MergeConfig.js +17 -17
- package/dist/lib/Helper/__tests__/MergeConfig.js.map +1 -1
- package/dist/lib/Helper/__tests__/SentryCli.js +23 -22
- package/dist/lib/Helper/__tests__/SentryCli.js.map +1 -1
- package/dist/lib/Setup.d.ts +2 -1
- package/dist/lib/Setup.js +12 -2
- package/dist/lib/Setup.js.map +1 -1
- package/dist/lib/Steps/BaseStep.d.ts +1 -1
- package/dist/lib/Steps/BaseStep.js.map +1 -1
- package/dist/lib/Steps/Integrations/Cordova.js.map +1 -1
- package/dist/lib/Steps/Welcome.js +5 -0
- package/dist/lib/Steps/Welcome.js.map +1 -1
- package/dist/lib/__tests__/Env.js +4 -3
- package/dist/lib/__tests__/Env.js.map +1 -1
- package/dist/src/angular/angular-wizard.d.ts +3 -0
- package/dist/src/angular/angular-wizard.js +186 -0
- package/dist/src/angular/angular-wizard.js.map +1 -0
- package/dist/src/angular/codemods/app-config.d.ts +3 -0
- package/dist/src/angular/codemods/app-config.js +211 -0
- package/dist/src/angular/codemods/app-config.js.map +1 -0
- package/dist/src/angular/codemods/main.d.ts +20 -0
- package/dist/src/angular/codemods/main.js +62 -0
- package/dist/src/angular/codemods/main.js.map +1 -0
- package/dist/src/angular/codemods/sourcemaps.d.ts +21 -0
- package/dist/src/angular/codemods/sourcemaps.js +94 -0
- package/dist/src/angular/codemods/sourcemaps.js.map +1 -0
- package/dist/src/angular/example-component.d.ts +8 -0
- package/dist/src/angular/example-component.js +286 -0
- package/dist/src/angular/example-component.js.map +1 -0
- package/dist/src/angular/sdk-setup.d.ts +6 -0
- package/dist/src/angular/sdk-setup.js +99 -0
- package/dist/src/angular/sdk-setup.js.map +1 -0
- package/dist/src/apple/apple-wizard.js +24 -64
- package/dist/src/apple/apple-wizard.js.map +1 -1
- package/dist/src/apple/configure-package-manager.d.ts +5 -0
- package/dist/src/apple/configure-package-manager.js +68 -0
- package/dist/src/apple/configure-package-manager.js.map +1 -0
- package/dist/src/apple/configure-sentry-cli.d.ts +4 -0
- package/dist/src/apple/configure-sentry-cli.js +47 -0
- package/dist/src/apple/configure-sentry-cli.js.map +1 -0
- package/dist/src/apple/configure-xcode-project.d.ts +8 -0
- package/dist/src/apple/configure-xcode-project.js +11 -0
- package/dist/src/apple/configure-xcode-project.js.map +1 -0
- package/dist/src/apple/inject-code-snippet.d.ts +6 -0
- package/dist/src/apple/inject-code-snippet.js +54 -0
- package/dist/src/apple/inject-code-snippet.js.map +1 -0
- package/dist/src/apple/templates.js +11 -7
- package/dist/src/apple/templates.js.map +1 -1
- package/dist/src/apple/xcode-manager.js +3 -6
- package/dist/src/apple/xcode-manager.js.map +1 -1
- package/dist/src/flutter/flutter-wizard.js +10 -2
- package/dist/src/flutter/flutter-wizard.js.map +1 -1
- package/dist/src/nextjs/nextjs-wizard.js +26 -12
- package/dist/src/nextjs/nextjs-wizard.js.map +1 -1
- package/dist/src/nextjs/templates.js +59 -8
- package/dist/src/nextjs/templates.js.map +1 -1
- package/dist/src/nuxt/templates.js +30 -0
- package/dist/src/nuxt/templates.js.map +1 -1
- package/dist/src/react-native/expo-metro.js +4 -1
- package/dist/src/react-native/expo-metro.js.map +1 -1
- package/dist/src/react-native/expo.js +5 -1
- package/dist/src/react-native/expo.js.map +1 -1
- package/dist/src/react-native/javascript.d.ts +6 -4
- package/dist/src/react-native/javascript.js +33 -10
- package/dist/src/react-native/javascript.js.map +1 -1
- package/dist/src/react-native/metro.js +8 -2
- package/dist/src/react-native/metro.js.map +1 -1
- package/dist/src/react-native/react-native-wizard.d.ts +4 -0
- package/dist/src/react-native/react-native-wizard.js +30 -5
- package/dist/src/react-native/react-native-wizard.js.map +1 -1
- package/dist/src/react-native/xcode.d.ts +7 -3
- package/dist/src/react-native/xcode.js +68 -20
- package/dist/src/react-native/xcode.js.map +1 -1
- package/dist/src/remix/sdk-example.js +30 -1
- package/dist/src/remix/sdk-example.js.map +1 -1
- package/dist/src/remix/sdk-setup.js +11 -5
- package/dist/src/remix/sdk-setup.js.map +1 -1
- package/dist/src/run.d.ts +1 -1
- package/dist/src/run.js +7 -2
- package/dist/src/run.js.map +1 -1
- package/dist/src/sourcemaps/sourcemaps-wizard.d.ts +1 -1
- package/dist/src/sourcemaps/sourcemaps-wizard.js +35 -20
- package/dist/src/sourcemaps/sourcemaps-wizard.js.map +1 -1
- package/dist/src/sourcemaps/tools/angular.d.ts +1 -0
- package/dist/src/sourcemaps/tools/angular.js +7 -7
- package/dist/src/sourcemaps/tools/angular.js.map +1 -1
- package/dist/src/sourcemaps/tools/sentry-cli.d.ts +5 -1
- package/dist/src/sourcemaps/tools/sentry-cli.js +6 -3
- package/dist/src/sourcemaps/tools/sentry-cli.js.map +1 -1
- package/dist/src/sourcemaps/tools/tsc.js +5 -1
- package/dist/src/sourcemaps/tools/tsc.js.map +1 -1
- package/dist/src/sourcemaps/tools/vite.js +4 -1
- package/dist/src/sourcemaps/tools/vite.js.map +1 -1
- package/dist/src/sourcemaps/tools/webpack.js +4 -1
- package/dist/src/sourcemaps/tools/webpack.js.map +1 -1
- package/dist/src/sveltekit/sdk-example.js +1 -1
- package/dist/src/sveltekit/sdk-example.js.map +1 -1
- package/dist/src/sveltekit/sveltekit-wizard.js +2 -2
- package/dist/src/sveltekit/sveltekit-wizard.js.map +1 -1
- package/dist/src/sveltekit/templates.js +28 -1
- package/dist/src/sveltekit/templates.js.map +1 -1
- package/dist/src/utils/clack/index.d.ts +11 -3
- package/dist/src/utils/clack/index.js +12 -4
- package/dist/src/utils/clack/index.js.map +1 -1
- package/dist/src/utils/package-manager.d.ts +2 -0
- package/dist/src/utils/package-manager.js +55 -5
- package/dist/src/utils/package-manager.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/dist/test/android/code-tools.test.js +13 -12
- package/dist/test/android/code-tools.test.js.map +1 -1
- package/dist/test/angular/angular-wizard.test.d.ts +1 -0
- package/dist/test/angular/angular-wizard.test.js +27 -0
- package/dist/test/angular/angular-wizard.test.js.map +1 -0
- package/dist/test/angular/codemods/sourcemaps.test.d.ts +1 -0
- package/dist/test/angular/codemods/sourcemaps.test.js +237 -0
- package/dist/test/angular/codemods/sourcemaps.test.js.map +1 -0
- package/dist/test/angular/example-component.test.d.ts +1 -0
- package/dist/test/angular/example-component.test.js +105 -0
- package/dist/test/angular/example-component.test.js.map +1 -0
- package/dist/test/apple/cocoapod.test.js +77 -72
- package/dist/test/apple/cocoapod.test.js.map +1 -1
- package/dist/test/apple/code-tools.test.js +173 -166
- package/dist/test/apple/code-tools.test.js.map +1 -1
- package/dist/test/apple/fastfile.test.js +86 -83
- package/dist/test/apple/fastfile.test.js.map +1 -1
- package/dist/test/apple/templates.test.js +32 -27
- package/dist/test/apple/templates.test.js.map +1 -1
- package/dist/test/apple/xcode-manager.test.js +182 -183
- package/dist/test/apple/xcode-manager.test.js.map +1 -1
- package/dist/test/flutter/code-tools.test.js +29 -28
- package/dist/test/flutter/code-tools.test.js.map +1 -1
- package/dist/test/flutter/templates.test.js +15 -14
- package/dist/test/flutter/templates.test.js.map +1 -1
- package/dist/test/nextjs/templates.test.js +43 -36
- package/dist/test/nextjs/templates.test.js.map +1 -1
- package/dist/test/nuxt/templates.test.js +25 -24
- package/dist/test/nuxt/templates.test.js.map +1 -1
- package/dist/test/react-native/expo-metro.test.js +11 -10
- package/dist/test/react-native/expo-metro.test.js.map +1 -1
- package/dist/test/react-native/expo.test.js +11 -10
- package/dist/test/react-native/expo.test.js.map +1 -1
- package/dist/test/react-native/gradle.test.js +27 -26
- package/dist/test/react-native/gradle.test.js.map +1 -1
- package/dist/test/react-native/javascript.test.js +108 -58
- package/dist/test/react-native/javascript.test.js.map +1 -1
- package/dist/test/react-native/metro.test.js +178 -64
- package/dist/test/react-native/metro.test.js.map +1 -1
- package/dist/test/react-native/xcode.test.js +138 -37
- package/dist/test/react-native/xcode.test.js.map +1 -1
- package/dist/test/remix/client-entry.test.js +18 -17
- package/dist/test/remix/client-entry.test.js.map +1 -1
- package/dist/test/remix/server-instrumentation.test.js +6 -5
- package/dist/test/remix/server-instrumentation.test.js.map +1 -1
- package/dist/test/sourcemaps/tools/sentry-cli.test.js +20 -20
- package/dist/test/sourcemaps/tools/sentry-cli.test.js.map +1 -1
- package/dist/test/sourcemaps/tools/tsc.test.js +13 -14
- package/dist/test/sourcemaps/tools/tsc.test.js.map +1 -1
- package/dist/test/sourcemaps/tools/vite.test.js +13 -14
- package/dist/test/sourcemaps/tools/vite.test.js.map +1 -1
- package/dist/test/sourcemaps/tools/webpack.test.js +19 -20
- package/dist/test/sourcemaps/tools/webpack.test.js.map +1 -1
- package/dist/test/sveltekit/templates.test.js +13 -12
- package/dist/test/sveltekit/templates.test.js.map +1 -1
- package/dist/test/utils/ast-utils.test.js +45 -44
- package/dist/test/utils/ast-utils.test.js.map +1 -1
- package/dist/test/utils/clack/index.test.js +140 -144
- package/dist/test/utils/clack/index.test.js.map +1 -1
- package/dist/test/utils/package-manager.test.js +8 -7
- package/dist/test/utils/package-manager.test.js.map +1 -1
- package/package.json +10 -38
- package/dist/e2e-tests/jest.config.d.ts +0 -17
- package/dist/e2e-tests/jest.config.js +0 -23
- package/dist/e2e-tests/jest.config.js.map +0 -1
|
@@ -1,31 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
3
4
|
const expo_1 = require("../../src/react-native/expo");
|
|
4
|
-
describe('expo', () => {
|
|
5
|
+
(0, vitest_1.describe)('expo', () => {
|
|
5
6
|
const MOCK_CONFIG = {
|
|
6
7
|
url: 'https://sentry.mock/',
|
|
7
8
|
org: 'sentry-mock',
|
|
8
9
|
project: 'project-mock',
|
|
9
10
|
authToken: 'authToken-mock',
|
|
10
11
|
};
|
|
11
|
-
describe('addWithSentryToAppConfigJson', () => {
|
|
12
|
-
test('do not add if sentry-expo present', () => {
|
|
12
|
+
(0, vitest_1.describe)('addWithSentryToAppConfigJson', () => {
|
|
13
|
+
(0, vitest_1.test)('do not add if sentry-expo present', () => {
|
|
13
14
|
const appConfigJson = `{
|
|
14
15
|
"expo": {
|
|
15
16
|
"plugins": ["sentry-expo"]
|
|
16
17
|
}
|
|
17
18
|
}`;
|
|
18
|
-
expect((0, expo_1.addWithSentryToAppConfigJson)(appConfigJson, MOCK_CONFIG)).toBeNull();
|
|
19
|
+
(0, vitest_1.expect)((0, expo_1.addWithSentryToAppConfigJson)(appConfigJson, MOCK_CONFIG)).toBeNull();
|
|
19
20
|
});
|
|
20
|
-
test('do not add if sentry-react-native/expo present', () => {
|
|
21
|
+
(0, vitest_1.test)('do not add if sentry-react-native/expo present', () => {
|
|
21
22
|
const appConfigJson = `{
|
|
22
23
|
"expo": {
|
|
23
24
|
"plugins": ["@sentry/react-native/expo"]
|
|
24
25
|
}
|
|
25
26
|
}`;
|
|
26
|
-
expect((0, expo_1.addWithSentryToAppConfigJson)(appConfigJson, MOCK_CONFIG)).toBeNull();
|
|
27
|
+
(0, vitest_1.expect)((0, expo_1.addWithSentryToAppConfigJson)(appConfigJson, MOCK_CONFIG)).toBeNull();
|
|
27
28
|
});
|
|
28
|
-
test.each([
|
|
29
|
+
vitest_1.test.each([
|
|
29
30
|
[
|
|
30
31
|
`{
|
|
31
32
|
"expo": {
|
|
@@ -39,9 +40,9 @@ describe('expo', () => {
|
|
|
39
40
|
}`,
|
|
40
41
|
],
|
|
41
42
|
])('do not add if plugins is not an array', (appConfigJson) => {
|
|
42
|
-
expect((0, expo_1.addWithSentryToAppConfigJson)(appConfigJson, MOCK_CONFIG)).toBeNull();
|
|
43
|
+
(0, vitest_1.expect)((0, expo_1.addWithSentryToAppConfigJson)(appConfigJson, MOCK_CONFIG)).toBeNull();
|
|
43
44
|
});
|
|
44
|
-
test.each([
|
|
45
|
+
vitest_1.test.each([
|
|
45
46
|
[
|
|
46
47
|
`{
|
|
47
48
|
"expo": {
|
|
@@ -57,7 +58,7 @@ describe('expo', () => {
|
|
|
57
58
|
],
|
|
58
59
|
])('add sentry react native expo plugin configuration', (appConfigJson) => {
|
|
59
60
|
const result = (0, expo_1.addWithSentryToAppConfigJson)(appConfigJson, MOCK_CONFIG);
|
|
60
|
-
expect(JSON.parse(result ?? '{}')).toStrictEqual({
|
|
61
|
+
(0, vitest_1.expect)(JSON.parse(result ?? '{}')).toStrictEqual({
|
|
61
62
|
expo: {
|
|
62
63
|
plugins: [
|
|
63
64
|
[
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expo.test.js","sourceRoot":"","sources":["../../../test/react-native/expo.test.ts"],"names":[],"mappings":";;AAAA,sDAA2E;AAG3E,
|
|
1
|
+
{"version":3,"file":"expo.test.js","sourceRoot":"","sources":["../../../test/react-native/expo.test.ts"],"names":[],"mappings":";;AAAA,mCAAgD;AAChD,sDAA2E;AAG3E,IAAA,iBAAQ,EAAC,MAAM,EAAE,GAAG,EAAE;IACpB,MAAM,WAAW,GAA4B;QAC3C,GAAG,EAAE,sBAAsB;QAC3B,GAAG,EAAE,aAAa;QAClB,OAAO,EAAE,cAAc;QACvB,SAAS,EAAE,gBAAgB;KAC5B,CAAC;IAEF,IAAA,iBAAQ,EAAC,8BAA8B,EAAE,GAAG,EAAE;QAC5C,IAAA,aAAI,EAAC,mCAAmC,EAAE,GAAG,EAAE;YAC7C,MAAM,aAAa,GAAG;;;;QAIpB,CAAC;YACH,IAAA,eAAM,EACJ,IAAA,mCAA4B,EAAC,aAAa,EAAE,WAAW,CAAC,CACzD,CAAC,QAAQ,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,IAAA,aAAI,EAAC,gDAAgD,EAAE,GAAG,EAAE;YAC1D,MAAM,aAAa,GAAG;;;;QAIpB,CAAC;YACH,IAAA,eAAM,EACJ,IAAA,mCAA4B,EAAC,aAAa,EAAE,WAAW,CAAC,CACzD,CAAC,QAAQ,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,aAAI,CAAC,IAAI,CAAC;YACR;gBACE;;;;UAIE;aACH;YACD;gBACE;;UAEE;aACH;SACF,CAAC,CAAC,uCAAuC,EAAE,CAAC,aAAa,EAAE,EAAE;YAC5D,IAAA,eAAM,EACJ,IAAA,mCAA4B,EAAC,aAAa,EAAE,WAAW,CAAC,CACzD,CAAC,QAAQ,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,aAAI,CAAC,IAAI,CAAC;YACR;gBACE;;;;UAIE;aACH;YACD,CAAC,IAAI,CAAC;YACN;gBACE;;UAEE;aACH;SACF,CAAC,CAAC,mDAAmD,EAAE,CAAC,aAAa,EAAE,EAAE;YACxE,MAAM,MAAM,GAAG,IAAA,mCAA4B,EAAC,aAAa,EAAE,WAAW,CAAC,CAAC;YACxE,IAAA,eAAM,EAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC;gBAC/C,IAAI,EAAE;oBACJ,OAAO,EAAE;wBACP;4BACE,2BAA2B;4BAC3B;gCACE,GAAG,EAAE,sBAAsB;gCAC3B,YAAY,EAAE,aAAa;gCAC3B,OAAO,EAAE,cAAc;6BACxB;yBACF;qBACF;iBACF;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { describe, expect, test } from 'vitest';\nimport { addWithSentryToAppConfigJson } from '../../src/react-native/expo';\nimport { RNCliSetupConfigContent } from '../../src/react-native/react-native-wizard';\n\ndescribe('expo', () => {\n const MOCK_CONFIG: RNCliSetupConfigContent = {\n url: 'https://sentry.mock/',\n org: 'sentry-mock',\n project: 'project-mock',\n authToken: 'authToken-mock',\n };\n\n describe('addWithSentryToAppConfigJson', () => {\n test('do not add if sentry-expo present', () => {\n const appConfigJson = `{\n \"expo\": {\n \"plugins\": [\"sentry-expo\"]\n }\n }`;\n expect(\n addWithSentryToAppConfigJson(appConfigJson, MOCK_CONFIG),\n ).toBeNull();\n });\n\n test('do not add if sentry-react-native/expo present', () => {\n const appConfigJson = `{\n \"expo\": {\n \"plugins\": [\"@sentry/react-native/expo\"]\n }\n }`;\n expect(\n addWithSentryToAppConfigJson(appConfigJson, MOCK_CONFIG),\n ).toBeNull();\n });\n\n test.each([\n [\n `{\n \"expo\": {\n \"plugins\": \"should be an array, but it is not\"\n }\n }`,\n ],\n [\n `{\n \"expo\": [\"should be an object, but it is not\"]\n }`,\n ],\n ])('do not add if plugins is not an array', (appConfigJson) => {\n expect(\n addWithSentryToAppConfigJson(appConfigJson, MOCK_CONFIG),\n ).toBeNull();\n });\n\n test.each([\n [\n `{\n \"expo\": {\n \"plugins\": []\n }\n }`,\n ],\n [`{}`],\n [\n `{\n \"expo\": {}\n }`,\n ],\n ])('add sentry react native expo plugin configuration', (appConfigJson) => {\n const result = addWithSentryToAppConfigJson(appConfigJson, MOCK_CONFIG);\n expect(JSON.parse(result ?? '{}')).toStrictEqual({\n expo: {\n plugins: [\n [\n '@sentry/react-native/expo',\n {\n url: 'https://sentry.mock/',\n organization: 'sentry-mock',\n project: 'project-mock',\n },\n ],\n ],\n },\n });\n });\n });\n});\n"]}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
3
4
|
const gradle_1 = require("../../src/react-native/gradle");
|
|
4
|
-
describe('react-native gradle', () => {
|
|
5
|
-
describe('doesAppBuildGradleIncludeSentry', () => {
|
|
6
|
-
it('returns false for empty file', () => {
|
|
7
|
-
expect((0, gradle_1.doesAppBuildGradleIncludeRNSentryGradlePlugin)('')).toBe(false);
|
|
5
|
+
(0, vitest_1.describe)('react-native gradle', () => {
|
|
6
|
+
(0, vitest_1.describe)('doesAppBuildGradleIncludeSentry', () => {
|
|
7
|
+
(0, vitest_1.it)('returns false for empty file', () => {
|
|
8
|
+
(0, vitest_1.expect)((0, gradle_1.doesAppBuildGradleIncludeRNSentryGradlePlugin)('')).toBe(false);
|
|
8
9
|
});
|
|
9
|
-
it('returns false for minimal app/build.gradle', () => {
|
|
10
|
+
(0, vitest_1.it)('returns false for minimal app/build.gradle', () => {
|
|
10
11
|
const appBuildGradle = `apply plugin: "com.android.application"
|
|
11
12
|
|
|
12
13
|
android {
|
|
@@ -24,9 +25,9 @@ android {
|
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
27
|
`;
|
|
27
|
-
expect((0, gradle_1.doesAppBuildGradleIncludeRNSentryGradlePlugin)(appBuildGradle)).toBe(false);
|
|
28
|
+
(0, vitest_1.expect)((0, gradle_1.doesAppBuildGradleIncludeRNSentryGradlePlugin)(appBuildGradle)).toBe(false);
|
|
28
29
|
});
|
|
29
|
-
it('returns false for app/build.gradle with SAGP', () => {
|
|
30
|
+
(0, vitest_1.it)('returns false for app/build.gradle with SAGP', () => {
|
|
30
31
|
const appBuildGradle = `apply plugin: "com.android.application"
|
|
31
32
|
apply plugin: "io.sentry.android.gradle"
|
|
32
33
|
|
|
@@ -48,9 +49,9 @@ android {
|
|
|
48
49
|
}
|
|
49
50
|
}
|
|
50
51
|
`;
|
|
51
|
-
expect((0, gradle_1.doesAppBuildGradleIncludeRNSentryGradlePlugin)(appBuildGradle)).toBe(false);
|
|
52
|
+
(0, vitest_1.expect)((0, gradle_1.doesAppBuildGradleIncludeRNSentryGradlePlugin)(appBuildGradle)).toBe(false);
|
|
52
53
|
});
|
|
53
|
-
it('returns true for app/build.gradle with RN SAGP', () => {
|
|
54
|
+
(0, vitest_1.it)('returns true for app/build.gradle with RN SAGP', () => {
|
|
54
55
|
const appBuildGradle = `apply plugin: "com.android.application"
|
|
55
56
|
apply plugin: "io.sentry.android.gradle"
|
|
56
57
|
|
|
@@ -74,14 +75,14 @@ android {
|
|
|
74
75
|
}
|
|
75
76
|
}
|
|
76
77
|
`;
|
|
77
|
-
expect((0, gradle_1.doesAppBuildGradleIncludeRNSentryGradlePlugin)(appBuildGradle)).toBe(true);
|
|
78
|
+
(0, vitest_1.expect)((0, gradle_1.doesAppBuildGradleIncludeRNSentryGradlePlugin)(appBuildGradle)).toBe(true);
|
|
78
79
|
});
|
|
79
80
|
});
|
|
80
|
-
describe('addRNSentryGradlePlugin', () => {
|
|
81
|
-
it('does not add nothing to empty file', () => {
|
|
82
|
-
expect((0, gradle_1.addRNSentryGradlePlugin)('')).toBe('');
|
|
81
|
+
(0, vitest_1.describe)('addRNSentryGradlePlugin', () => {
|
|
82
|
+
(0, vitest_1.it)('does not add nothing to empty file', () => {
|
|
83
|
+
(0, vitest_1.expect)((0, gradle_1.addRNSentryGradlePlugin)('')).toBe('');
|
|
83
84
|
});
|
|
84
|
-
it('does add RN SAGP', () => {
|
|
85
|
+
(0, vitest_1.it)('does add RN SAGP', () => {
|
|
85
86
|
const input = `apply plugin: "com.android.application"
|
|
86
87
|
|
|
87
88
|
android {
|
|
@@ -117,9 +118,9 @@ android {
|
|
|
117
118
|
}
|
|
118
119
|
}
|
|
119
120
|
`;
|
|
120
|
-
expect((0, gradle_1.addRNSentryGradlePlugin)(input)).toBe(expectedOutput);
|
|
121
|
+
(0, vitest_1.expect)((0, gradle_1.addRNSentryGradlePlugin)(input)).toBe(expectedOutput);
|
|
121
122
|
});
|
|
122
|
-
it('does add RN SAGP to build gradle with SAGP', () => {
|
|
123
|
+
(0, vitest_1.it)('does add RN SAGP to build gradle with SAGP', () => {
|
|
123
124
|
const input = `apply plugin: "com.android.application"
|
|
124
125
|
apply plugin: "io.sentry.android.gradle"
|
|
125
126
|
|
|
@@ -163,14 +164,14 @@ android {
|
|
|
163
164
|
}
|
|
164
165
|
}
|
|
165
166
|
`;
|
|
166
|
-
expect((0, gradle_1.addRNSentryGradlePlugin)(input)).toBe(expectedOutput);
|
|
167
|
+
(0, vitest_1.expect)((0, gradle_1.addRNSentryGradlePlugin)(input)).toBe(expectedOutput);
|
|
167
168
|
});
|
|
168
169
|
});
|
|
169
|
-
describe('removeRNSentryGradlePlugin', () => {
|
|
170
|
-
it('does not add nothing to empty file', () => {
|
|
171
|
-
expect((0, gradle_1.removeRNSentryGradlePlugin)('')).toBe('');
|
|
170
|
+
(0, vitest_1.describe)('removeRNSentryGradlePlugin', () => {
|
|
171
|
+
(0, vitest_1.it)('does not add nothing to empty file', () => {
|
|
172
|
+
(0, vitest_1.expect)((0, gradle_1.removeRNSentryGradlePlugin)('')).toBe('');
|
|
172
173
|
});
|
|
173
|
-
it('does not change build gradle without RN SAGP', () => {
|
|
174
|
+
(0, vitest_1.it)('does not change build gradle without RN SAGP', () => {
|
|
174
175
|
const input = `apply plugin: "com.android.application"
|
|
175
176
|
apply plugin: "io.sentry.android.gradle"
|
|
176
177
|
|
|
@@ -192,9 +193,9 @@ android {
|
|
|
192
193
|
}
|
|
193
194
|
}
|
|
194
195
|
`;
|
|
195
|
-
expect((0, gradle_1.removeRNSentryGradlePlugin)(input)).toBe(input);
|
|
196
|
+
(0, vitest_1.expect)((0, gradle_1.removeRNSentryGradlePlugin)(input)).toBe(input);
|
|
196
197
|
});
|
|
197
|
-
it('does remove RN SAGP referenced by node resolved path', () => {
|
|
198
|
+
(0, vitest_1.it)('does remove RN SAGP referenced by node resolved path', () => {
|
|
198
199
|
const input = `apply plugin: "com.android.application"
|
|
199
200
|
apply plugin: "io.sentry.android.gradle"
|
|
200
201
|
|
|
@@ -237,9 +238,9 @@ android {
|
|
|
237
238
|
}
|
|
238
239
|
}
|
|
239
240
|
`;
|
|
240
|
-
expect((0, gradle_1.removeRNSentryGradlePlugin)(input)).toBe(output);
|
|
241
|
+
(0, vitest_1.expect)((0, gradle_1.removeRNSentryGradlePlugin)(input)).toBe(output);
|
|
241
242
|
});
|
|
242
|
-
it('does remove RN SAGP reference by relative path', () => {
|
|
243
|
+
(0, vitest_1.it)('does remove RN SAGP reference by relative path', () => {
|
|
243
244
|
const input = `apply plugin: "com.android.application"
|
|
244
245
|
apply plugin: "io.sentry.android.gradle"
|
|
245
246
|
|
|
@@ -282,7 +283,7 @@ android {
|
|
|
282
283
|
}
|
|
283
284
|
}
|
|
284
285
|
`;
|
|
285
|
-
expect((0, gradle_1.removeRNSentryGradlePlugin)(input)).toBe(output);
|
|
286
|
+
(0, vitest_1.expect)((0, gradle_1.removeRNSentryGradlePlugin)(input)).toBe(output);
|
|
286
287
|
});
|
|
287
288
|
});
|
|
288
289
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gradle.test.js","sourceRoot":"","sources":["../../../test/react-native/gradle.test.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n addRNSentryGradlePlugin,\n doesAppBuildGradleIncludeRNSentryGradlePlugin,\n removeRNSentryGradlePlugin,\n} from '../../src/react-native/gradle';\n\ndescribe('react-native gradle', () => {\n describe('doesAppBuildGradleIncludeSentry', () => {\n it('returns false for empty file', () => {\n expect(doesAppBuildGradleIncludeRNSentryGradlePlugin('')).toBe(false);\n });\n\n it('returns false for minimal app/build.gradle', () => {\n const appBuildGradle = `apply plugin: \"com.android.application\"\n\nandroid {\n ndkVersion rootProject.ext.ndkVersion\n\n compileSdkVersion rootProject.ext.compileSdkVersion\n\n namespace \"com.samplenewarchitecture\"\n defaultConfig {\n applicationId \"com.samplenewarchitecture\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n }\n}\n`;\n expect(\n doesAppBuildGradleIncludeRNSentryGradlePlugin(appBuildGradle),\n ).toBe(false);\n });\n\n it('returns false for app/build.gradle with SAGP', () => {\n const appBuildGradle = `apply plugin: \"com.android.application\"\napply plugin: \"io.sentry.android.gradle\"\n\nsentry {\n}\n\nandroid {\n ndkVersion rootProject.ext.ndkVersion\n\n compileSdkVersion rootProject.ext.compileSdkVersion\n\n namespace \"com.samplenewarchitecture\"\n defaultConfig {\n applicationId \"com.samplenewarchitecture\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n }\n}\n`;\n expect(\n doesAppBuildGradleIncludeRNSentryGradlePlugin(appBuildGradle),\n ).toBe(false);\n });\n\n it('returns true for app/build.gradle with RN SAGP', () => {\n const appBuildGradle = `apply plugin: \"com.android.application\"\napply plugin: \"io.sentry.android.gradle\"\n\nsentry {\n}\n\napply from: new File([\"node\", \"--print\", \"require.resolve('@sentry/react-native/package.json')\"].execute().text.trim(), \"../sentry.gradle\")\n\nandroid {\n ndkVersion rootProject.ext.ndkVersion\n\n compileSdkVersion rootProject.ext.compileSdkVersion\n\n namespace \"com.samplenewarchitecture\"\n defaultConfig {\n applicationId \"com.samplenewarchitecture\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n }\n}\n`;\n expect(\n doesAppBuildGradleIncludeRNSentryGradlePlugin(appBuildGradle),\n ).toBe(true);\n });\n });\n\n describe('addRNSentryGradlePlugin', () => {\n it('does not add nothing to empty file', () => {\n expect(addRNSentryGradlePlugin('')).toBe('');\n });\n\n it('does add RN SAGP', () => {\n const input = `apply plugin: \"com.android.application\"\n\nandroid {\n ndkVersion rootProject.ext.ndkVersion\n\n compileSdkVersion rootProject.ext.compileSdkVersion\n\n namespace \"com.samplenewarchitecture\"\n defaultConfig {\n applicationId \"com.samplenewarchitecture\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n }\n}\n`;\n const expectedOutput = `apply plugin: \"com.android.application\"\n\napply from: new File([\"node\", \"--print\", \"require.resolve('@sentry/react-native/package.json')\"].execute().text.trim(), \"../sentry.gradle\")\nandroid {\n ndkVersion rootProject.ext.ndkVersion\n\n compileSdkVersion rootProject.ext.compileSdkVersion\n\n namespace \"com.samplenewarchitecture\"\n defaultConfig {\n applicationId \"com.samplenewarchitecture\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n }\n}\n`;\n expect(addRNSentryGradlePlugin(input)).toBe(expectedOutput);\n });\n\n it('does add RN SAGP to build gradle with SAGP', () => {\n const input = `apply plugin: \"com.android.application\"\napply plugin: \"io.sentry.android.gradle\"\n\nsentry {\n}\n\nandroid {\n ndkVersion rootProject.ext.ndkVersion\n\n compileSdkVersion rootProject.ext.compileSdkVersion\n\n namespace \"com.samplenewarchitecture\"\n defaultConfig {\n applicationId \"com.samplenewarchitecture\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n }\n}\n`;\n const expectedOutput = `apply plugin: \"com.android.application\"\napply plugin: \"io.sentry.android.gradle\"\n\nsentry {\n}\n\napply from: new File([\"node\", \"--print\", \"require.resolve('@sentry/react-native/package.json')\"].execute().text.trim(), \"../sentry.gradle\")\nandroid {\n ndkVersion rootProject.ext.ndkVersion\n\n compileSdkVersion rootProject.ext.compileSdkVersion\n\n namespace \"com.samplenewarchitecture\"\n defaultConfig {\n applicationId \"com.samplenewarchitecture\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n }\n}\n`;\n expect(addRNSentryGradlePlugin(input)).toBe(expectedOutput);\n });\n });\n\n describe('removeRNSentryGradlePlugin', () => {\n it('does not add nothing to empty file', () => {\n expect(removeRNSentryGradlePlugin('')).toBe('');\n });\n\n it('does not change build gradle without RN SAGP', () => {\n const input = `apply plugin: \"com.android.application\"\napply plugin: \"io.sentry.android.gradle\"\n\nsentry {\n}\n\nandroid {\n ndkVersion rootProject.ext.ndkVersion\n\n compileSdkVersion rootProject.ext.compileSdkVersion\n\n namespace \"com.samplenewarchitecture\"\n defaultConfig {\n applicationId \"com.samplenewarchitecture\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n }\n}\n`;\n\n expect(removeRNSentryGradlePlugin(input)).toBe(input);\n });\n\n it('does remove RN SAGP referenced by node resolved path', () => {\n const input = `apply plugin: \"com.android.application\"\napply plugin: \"io.sentry.android.gradle\"\n\nsentry {\n}\n\napply from: new File([\"node\", \"--print\", \"require.resolve('@sentry/react-native/package.json')\"].execute().text.trim(), \"../sentry.gradle\")\nandroid {\n ndkVersion rootProject.ext.ndkVersion\n\n compileSdkVersion rootProject.ext.compileSdkVersion\n\n namespace \"com.samplenewarchitecture\"\n defaultConfig {\n applicationId \"com.samplenewarchitecture\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n }\n}\n`;\n const output = `apply plugin: \"com.android.application\"\napply plugin: \"io.sentry.android.gradle\"\n\nsentry {\n}\nandroid {\n ndkVersion rootProject.ext.ndkVersion\n\n compileSdkVersion rootProject.ext.compileSdkVersion\n\n namespace \"com.samplenewarchitecture\"\n defaultConfig {\n applicationId \"com.samplenewarchitecture\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n }\n}\n`;\n\n expect(removeRNSentryGradlePlugin(input)).toBe(output);\n });\n\n it('does remove RN SAGP reference by relative path', () => {\n const input = `apply plugin: \"com.android.application\"\napply plugin: \"io.sentry.android.gradle\"\n\nsentry {\n}\n\napply from: \"../../node_modules/@sentry/react-native/sentry.gradle\"\nandroid {\n ndkVersion rootProject.ext.ndkVersion\n\n compileSdkVersion rootProject.ext.compileSdkVersion\n\n namespace \"com.samplenewarchitecture\"\n defaultConfig {\n applicationId \"com.samplenewarchitecture\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n }\n}\n`;\n const output = `apply plugin: \"com.android.application\"\napply plugin: \"io.sentry.android.gradle\"\n\nsentry {\n}\nandroid {\n ndkVersion rootProject.ext.ndkVersion\n\n compileSdkVersion rootProject.ext.compileSdkVersion\n\n namespace \"com.samplenewarchitecture\"\n defaultConfig {\n applicationId \"com.samplenewarchitecture\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n }\n}\n`;\n\n expect(removeRNSentryGradlePlugin(input)).toBe(output);\n });\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"gradle.test.js","sourceRoot":"","sources":["../../../test/react-native/gradle.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, expect, it } from 'vitest';\nimport {\n addRNSentryGradlePlugin,\n doesAppBuildGradleIncludeRNSentryGradlePlugin,\n removeRNSentryGradlePlugin,\n} from '../../src/react-native/gradle';\n\ndescribe('react-native gradle', () => {\n describe('doesAppBuildGradleIncludeSentry', () => {\n it('returns false for empty file', () => {\n expect(doesAppBuildGradleIncludeRNSentryGradlePlugin('')).toBe(false);\n });\n\n it('returns false for minimal app/build.gradle', () => {\n const appBuildGradle = `apply plugin: \"com.android.application\"\n\nandroid {\n ndkVersion rootProject.ext.ndkVersion\n\n compileSdkVersion rootProject.ext.compileSdkVersion\n\n namespace \"com.samplenewarchitecture\"\n defaultConfig {\n applicationId \"com.samplenewarchitecture\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n }\n}\n`;\n expect(\n doesAppBuildGradleIncludeRNSentryGradlePlugin(appBuildGradle),\n ).toBe(false);\n });\n\n it('returns false for app/build.gradle with SAGP', () => {\n const appBuildGradle = `apply plugin: \"com.android.application\"\napply plugin: \"io.sentry.android.gradle\"\n\nsentry {\n}\n\nandroid {\n ndkVersion rootProject.ext.ndkVersion\n\n compileSdkVersion rootProject.ext.compileSdkVersion\n\n namespace \"com.samplenewarchitecture\"\n defaultConfig {\n applicationId \"com.samplenewarchitecture\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n }\n}\n`;\n expect(\n doesAppBuildGradleIncludeRNSentryGradlePlugin(appBuildGradle),\n ).toBe(false);\n });\n\n it('returns true for app/build.gradle with RN SAGP', () => {\n const appBuildGradle = `apply plugin: \"com.android.application\"\napply plugin: \"io.sentry.android.gradle\"\n\nsentry {\n}\n\napply from: new File([\"node\", \"--print\", \"require.resolve('@sentry/react-native/package.json')\"].execute().text.trim(), \"../sentry.gradle\")\n\nandroid {\n ndkVersion rootProject.ext.ndkVersion\n\n compileSdkVersion rootProject.ext.compileSdkVersion\n\n namespace \"com.samplenewarchitecture\"\n defaultConfig {\n applicationId \"com.samplenewarchitecture\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n }\n}\n`;\n expect(\n doesAppBuildGradleIncludeRNSentryGradlePlugin(appBuildGradle),\n ).toBe(true);\n });\n });\n\n describe('addRNSentryGradlePlugin', () => {\n it('does not add nothing to empty file', () => {\n expect(addRNSentryGradlePlugin('')).toBe('');\n });\n\n it('does add RN SAGP', () => {\n const input = `apply plugin: \"com.android.application\"\n\nandroid {\n ndkVersion rootProject.ext.ndkVersion\n\n compileSdkVersion rootProject.ext.compileSdkVersion\n\n namespace \"com.samplenewarchitecture\"\n defaultConfig {\n applicationId \"com.samplenewarchitecture\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n }\n}\n`;\n const expectedOutput = `apply plugin: \"com.android.application\"\n\napply from: new File([\"node\", \"--print\", \"require.resolve('@sentry/react-native/package.json')\"].execute().text.trim(), \"../sentry.gradle\")\nandroid {\n ndkVersion rootProject.ext.ndkVersion\n\n compileSdkVersion rootProject.ext.compileSdkVersion\n\n namespace \"com.samplenewarchitecture\"\n defaultConfig {\n applicationId \"com.samplenewarchitecture\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n }\n}\n`;\n expect(addRNSentryGradlePlugin(input)).toBe(expectedOutput);\n });\n\n it('does add RN SAGP to build gradle with SAGP', () => {\n const input = `apply plugin: \"com.android.application\"\napply plugin: \"io.sentry.android.gradle\"\n\nsentry {\n}\n\nandroid {\n ndkVersion rootProject.ext.ndkVersion\n\n compileSdkVersion rootProject.ext.compileSdkVersion\n\n namespace \"com.samplenewarchitecture\"\n defaultConfig {\n applicationId \"com.samplenewarchitecture\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n }\n}\n`;\n const expectedOutput = `apply plugin: \"com.android.application\"\napply plugin: \"io.sentry.android.gradle\"\n\nsentry {\n}\n\napply from: new File([\"node\", \"--print\", \"require.resolve('@sentry/react-native/package.json')\"].execute().text.trim(), \"../sentry.gradle\")\nandroid {\n ndkVersion rootProject.ext.ndkVersion\n\n compileSdkVersion rootProject.ext.compileSdkVersion\n\n namespace \"com.samplenewarchitecture\"\n defaultConfig {\n applicationId \"com.samplenewarchitecture\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n }\n}\n`;\n expect(addRNSentryGradlePlugin(input)).toBe(expectedOutput);\n });\n });\n\n describe('removeRNSentryGradlePlugin', () => {\n it('does not add nothing to empty file', () => {\n expect(removeRNSentryGradlePlugin('')).toBe('');\n });\n\n it('does not change build gradle without RN SAGP', () => {\n const input = `apply plugin: \"com.android.application\"\napply plugin: \"io.sentry.android.gradle\"\n\nsentry {\n}\n\nandroid {\n ndkVersion rootProject.ext.ndkVersion\n\n compileSdkVersion rootProject.ext.compileSdkVersion\n\n namespace \"com.samplenewarchitecture\"\n defaultConfig {\n applicationId \"com.samplenewarchitecture\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n }\n}\n`;\n\n expect(removeRNSentryGradlePlugin(input)).toBe(input);\n });\n\n it('does remove RN SAGP referenced by node resolved path', () => {\n const input = `apply plugin: \"com.android.application\"\napply plugin: \"io.sentry.android.gradle\"\n\nsentry {\n}\n\napply from: new File([\"node\", \"--print\", \"require.resolve('@sentry/react-native/package.json')\"].execute().text.trim(), \"../sentry.gradle\")\nandroid {\n ndkVersion rootProject.ext.ndkVersion\n\n compileSdkVersion rootProject.ext.compileSdkVersion\n\n namespace \"com.samplenewarchitecture\"\n defaultConfig {\n applicationId \"com.samplenewarchitecture\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n }\n}\n`;\n const output = `apply plugin: \"com.android.application\"\napply plugin: \"io.sentry.android.gradle\"\n\nsentry {\n}\nandroid {\n ndkVersion rootProject.ext.ndkVersion\n\n compileSdkVersion rootProject.ext.compileSdkVersion\n\n namespace \"com.samplenewarchitecture\"\n defaultConfig {\n applicationId \"com.samplenewarchitecture\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n }\n}\n`;\n\n expect(removeRNSentryGradlePlugin(input)).toBe(output);\n });\n\n it('does remove RN SAGP reference by relative path', () => {\n const input = `apply plugin: \"com.android.application\"\napply plugin: \"io.sentry.android.gradle\"\n\nsentry {\n}\n\napply from: \"../../node_modules/@sentry/react-native/sentry.gradle\"\nandroid {\n ndkVersion rootProject.ext.ndkVersion\n\n compileSdkVersion rootProject.ext.compileSdkVersion\n\n namespace \"com.samplenewarchitecture\"\n defaultConfig {\n applicationId \"com.samplenewarchitecture\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n }\n}\n`;\n const output = `apply plugin: \"com.android.application\"\napply plugin: \"io.sentry.android.gradle\"\n\nsentry {\n}\nandroid {\n ndkVersion rootProject.ext.ndkVersion\n\n compileSdkVersion rootProject.ext.compileSdkVersion\n\n namespace \"com.samplenewarchitecture\"\n defaultConfig {\n applicationId \"com.samplenewarchitecture\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n }\n}\n`;\n\n expect(removeRNSentryGradlePlugin(input)).toBe(output);\n });\n });\n});\n"]}
|
|
@@ -3,9 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const javascript_1 = require("../../src/react-native/javascript");
|
|
4
4
|
// @ts-expect-error - magicast is ESM and TS complains about that. It works though
|
|
5
5
|
const magicast_1 = require("magicast");
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
const vitest_1 = require("vitest");
|
|
7
|
+
(0, vitest_1.describe)('react-native javascript', () => {
|
|
8
|
+
(0, vitest_1.describe)('addSentryInitWithSdkImport', () => {
|
|
9
|
+
(0, vitest_1.it)('adds sdk import and sentry init under last import in the file', () => {
|
|
9
10
|
const input = `import * as React from 'react';
|
|
10
11
|
|
|
11
12
|
const test = 'test';
|
|
@@ -44,19 +45,68 @@ const App = () => {
|
|
|
44
45
|
};
|
|
45
46
|
|
|
46
47
|
export default App;`;
|
|
47
|
-
expect((0, javascript_1.addSentryInitWithSdkImport)(input, { dsn: 'dsn' })).toBe(expectedOutput);
|
|
48
|
+
(0, vitest_1.expect)((0, javascript_1.addSentryInitWithSdkImport)(input, { dsn: 'dsn' })).toBe(expectedOutput);
|
|
48
49
|
});
|
|
49
|
-
it('
|
|
50
|
+
(0, vitest_1.it)('adds sdk import and sentry init under last import in the file and enables session replay', () => {
|
|
51
|
+
const input = `import * as React from 'react';
|
|
52
|
+
|
|
53
|
+
const test = 'test';
|
|
54
|
+
|
|
55
|
+
import { View } from 'react-native';
|
|
56
|
+
|
|
57
|
+
const App = () => {
|
|
58
|
+
return (
|
|
59
|
+
<View>
|
|
60
|
+
Test App
|
|
61
|
+
</View>
|
|
62
|
+
);
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export default App;`;
|
|
66
|
+
const expectedOutput = `import * as React from 'react';
|
|
67
|
+
|
|
68
|
+
const test = 'test';
|
|
69
|
+
|
|
70
|
+
import { View } from 'react-native';
|
|
71
|
+
import * as Sentry from '@sentry/react-native';
|
|
72
|
+
|
|
73
|
+
Sentry.init({
|
|
74
|
+
dsn: 'dsn',
|
|
75
|
+
|
|
76
|
+
// Configure Session Replay
|
|
77
|
+
replaysSessionSampleRate: 0.1,
|
|
78
|
+
replaysOnErrorSampleRate: 1,
|
|
79
|
+
integrations: [Sentry.mobileReplayIntegration()],
|
|
80
|
+
|
|
81
|
+
// uncomment the line below to enable Spotlight (https://spotlightjs.com)
|
|
82
|
+
// spotlight: __DEV__,
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
const App = () => {
|
|
86
|
+
return (
|
|
87
|
+
<View>
|
|
88
|
+
Test App
|
|
89
|
+
</View>
|
|
90
|
+
);
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
export default App;`;
|
|
94
|
+
(0, vitest_1.expect)((0, javascript_1.addSentryInitWithSdkImport)(input, {
|
|
95
|
+
dsn: 'dsn',
|
|
96
|
+
enableSessionReplay: true,
|
|
97
|
+
})).toBe(expectedOutput);
|
|
98
|
+
});
|
|
99
|
+
(0, vitest_1.it)('does not add sdk import and sentry init in the file without imports', () => {
|
|
50
100
|
const input = `export const test = 'test';`;
|
|
51
|
-
expect((0, javascript_1.addSentryInitWithSdkImport)(input, { dsn: 'dsn' })).toBe(input);
|
|
101
|
+
(0, vitest_1.expect)((0, javascript_1.addSentryInitWithSdkImport)(input, { dsn: 'dsn' })).toBe(input);
|
|
52
102
|
});
|
|
53
|
-
it('does not add sdk import and sentry init in the empty file', () => {
|
|
103
|
+
(0, vitest_1.it)('does not add sdk import and sentry init in the empty file', () => {
|
|
54
104
|
const input = '';
|
|
55
|
-
expect((0, javascript_1.addSentryInitWithSdkImport)(input, { dsn: 'dsn' })).toBe(input);
|
|
105
|
+
(0, vitest_1.expect)((0, javascript_1.addSentryInitWithSdkImport)(input, { dsn: 'dsn' })).toBe(input);
|
|
56
106
|
});
|
|
57
107
|
});
|
|
58
|
-
describe('doesJsCodeIncludeSdkSentryImport', () => {
|
|
59
|
-
it('returns true if code has sdk import', () => {
|
|
108
|
+
(0, vitest_1.describe)('doesJsCodeIncludeSdkSentryImport', () => {
|
|
109
|
+
(0, vitest_1.it)('returns true if code has sdk import', () => {
|
|
60
110
|
const input = `import * as React from 'react';
|
|
61
111
|
|
|
62
112
|
const test = 'test';
|
|
@@ -73,11 +123,11 @@ const App = () => {
|
|
|
73
123
|
};
|
|
74
124
|
|
|
75
125
|
export default App;`;
|
|
76
|
-
expect((0, javascript_1.doesJsCodeIncludeSdkSentryImport)(input, {
|
|
126
|
+
(0, vitest_1.expect)((0, javascript_1.doesJsCodeIncludeSdkSentryImport)(input, {
|
|
77
127
|
sdkPackageName: '@sentry/react-native',
|
|
78
128
|
})).toBe(true);
|
|
79
129
|
});
|
|
80
|
-
it('returns true if code has sdk require', () => {
|
|
130
|
+
(0, vitest_1.it)('returns true if code has sdk require', () => {
|
|
81
131
|
const input = `import * as React from 'react';
|
|
82
132
|
|
|
83
133
|
const test = 'test';
|
|
@@ -94,25 +144,25 @@ const App = () => {
|
|
|
94
144
|
};
|
|
95
145
|
|
|
96
146
|
export default App;`;
|
|
97
|
-
expect((0, javascript_1.doesJsCodeIncludeSdkSentryImport)(input, {
|
|
147
|
+
(0, vitest_1.expect)((0, javascript_1.doesJsCodeIncludeSdkSentryImport)(input, {
|
|
98
148
|
sdkPackageName: '@sentry/react-native',
|
|
99
149
|
})).toBe(true);
|
|
100
150
|
});
|
|
101
|
-
it('returns false if code does not have sdk import', () => {
|
|
151
|
+
(0, vitest_1.it)('returns false if code does not have sdk import', () => {
|
|
102
152
|
const input = `export const test = 'test';`;
|
|
103
|
-
expect((0, javascript_1.doesJsCodeIncludeSdkSentryImport)(input, {
|
|
153
|
+
(0, vitest_1.expect)((0, javascript_1.doesJsCodeIncludeSdkSentryImport)(input, {
|
|
104
154
|
sdkPackageName: '@sentry/react-native',
|
|
105
155
|
})).toBe(false);
|
|
106
156
|
});
|
|
107
|
-
it('returns false for empty file', () => {
|
|
157
|
+
(0, vitest_1.it)('returns false for empty file', () => {
|
|
108
158
|
const input = '';
|
|
109
|
-
expect((0, javascript_1.doesJsCodeIncludeSdkSentryImport)(input, {
|
|
159
|
+
(0, vitest_1.expect)((0, javascript_1.doesJsCodeIncludeSdkSentryImport)(input, {
|
|
110
160
|
sdkPackageName: '@sentry/react-native',
|
|
111
161
|
})).toBe(false);
|
|
112
162
|
});
|
|
113
163
|
});
|
|
114
|
-
describe('addSentryWrap', () => {
|
|
115
|
-
it('wraps the root app component', () => {
|
|
164
|
+
(0, vitest_1.describe)('addSentryWrap', () => {
|
|
165
|
+
(0, vitest_1.it)('wraps the root app component', () => {
|
|
116
166
|
const mod = (0, magicast_1.parseModule)(`import * as React from 'react';
|
|
117
167
|
import * as Sentry from '@sentry/react-native';
|
|
118
168
|
|
|
@@ -142,10 +192,10 @@ const App = () => {
|
|
|
142
192
|
|
|
143
193
|
export default Sentry.wrap(App);`;
|
|
144
194
|
const result = (0, javascript_1.checkAndWrapRootComponent)(mod);
|
|
145
|
-
expect(result).toBe(javascript_1.SentryWrapResult.Success);
|
|
146
|
-
expect((0, magicast_1.generateCode)(mod.$ast).code).toBe(expectedOutput);
|
|
195
|
+
(0, vitest_1.expect)(result).toBe(javascript_1.SentryWrapResult.Success);
|
|
196
|
+
(0, vitest_1.expect)((0, magicast_1.generateCode)(mod.$ast).code).toBe(expectedOutput);
|
|
147
197
|
});
|
|
148
|
-
it('wraps a wrapped root app component', () => {
|
|
198
|
+
(0, vitest_1.it)('wraps a wrapped root app component', () => {
|
|
149
199
|
const mod = (0, magicast_1.parseModule)(`import * as React from 'react';
|
|
150
200
|
import * as Sentry from '@sentry/react-native';
|
|
151
201
|
|
|
@@ -175,10 +225,10 @@ const App = () => {
|
|
|
175
225
|
|
|
176
226
|
export default Sentry.wrap(AnotheWrapper.wrap(App));`;
|
|
177
227
|
const result = (0, javascript_1.checkAndWrapRootComponent)(mod);
|
|
178
|
-
expect(result).toBe(javascript_1.SentryWrapResult.Success);
|
|
179
|
-
expect((0, magicast_1.generateCode)(mod.$ast).code).toBe(expectedOutput);
|
|
228
|
+
(0, vitest_1.expect)(result).toBe(javascript_1.SentryWrapResult.Success);
|
|
229
|
+
(0, vitest_1.expect)((0, magicast_1.generateCode)(mod.$ast).code).toBe(expectedOutput);
|
|
180
230
|
});
|
|
181
|
-
it('wraps a root app named function', () => {
|
|
231
|
+
(0, vitest_1.it)('wraps a root app named function', () => {
|
|
182
232
|
const mod = (0, magicast_1.parseModule)(`import * as Sentry from '@sentry/react-native';
|
|
183
233
|
|
|
184
234
|
export default function RootLayout() {
|
|
@@ -198,10 +248,10 @@ export default Sentry.wrap(function RootLayout() {
|
|
|
198
248
|
);
|
|
199
249
|
});`;
|
|
200
250
|
const result = (0, javascript_1.checkAndWrapRootComponent)(mod);
|
|
201
|
-
expect(result).toBe(javascript_1.SentryWrapResult.Success);
|
|
202
|
-
expect((0, magicast_1.generateCode)(mod.$ast).code).toBe(expectedOutput);
|
|
251
|
+
(0, vitest_1.expect)(result).toBe(javascript_1.SentryWrapResult.Success);
|
|
252
|
+
(0, vitest_1.expect)((0, magicast_1.generateCode)(mod.$ast).code).toBe(expectedOutput);
|
|
203
253
|
});
|
|
204
|
-
it('wraps a wrapped root app named function', () => {
|
|
254
|
+
(0, vitest_1.it)('wraps a wrapped root app named function', () => {
|
|
205
255
|
const mod = (0, magicast_1.parseModule)(`import * as Sentry from '@sentry/react-native';
|
|
206
256
|
|
|
207
257
|
export default Another.wrapper(function RootLayout() {
|
|
@@ -221,10 +271,10 @@ export default Sentry.wrap(Another.wrapper(function RootLayout() {
|
|
|
221
271
|
);
|
|
222
272
|
}));`;
|
|
223
273
|
const result = (0, javascript_1.checkAndWrapRootComponent)(mod);
|
|
224
|
-
expect(result).toBe(javascript_1.SentryWrapResult.Success);
|
|
225
|
-
expect((0, magicast_1.generateCode)(mod.$ast).code).toBe(expectedOutput);
|
|
274
|
+
(0, vitest_1.expect)(result).toBe(javascript_1.SentryWrapResult.Success);
|
|
275
|
+
(0, vitest_1.expect)((0, magicast_1.generateCode)(mod.$ast).code).toBe(expectedOutput);
|
|
226
276
|
});
|
|
227
|
-
it('wraps a root app anonymous function', () => {
|
|
277
|
+
(0, vitest_1.it)('wraps a root app anonymous function', () => {
|
|
228
278
|
const mod = (0, magicast_1.parseModule)(`import * as Sentry from '@sentry/react-native';
|
|
229
279
|
|
|
230
280
|
export default () => {
|
|
@@ -244,10 +294,10 @@ export default Sentry.wrap(() => {
|
|
|
244
294
|
);
|
|
245
295
|
});`;
|
|
246
296
|
const result = (0, javascript_1.checkAndWrapRootComponent)(mod);
|
|
247
|
-
expect(result).toBe(javascript_1.SentryWrapResult.Success);
|
|
248
|
-
expect((0, magicast_1.generateCode)(mod.$ast).code).toBe(expectedOutput);
|
|
297
|
+
(0, vitest_1.expect)(result).toBe(javascript_1.SentryWrapResult.Success);
|
|
298
|
+
(0, vitest_1.expect)((0, magicast_1.generateCode)(mod.$ast).code).toBe(expectedOutput);
|
|
249
299
|
});
|
|
250
|
-
it('wraps a wrapped root app anonymous function', () => {
|
|
300
|
+
(0, vitest_1.it)('wraps a wrapped root app anonymous function', () => {
|
|
251
301
|
const mod = (0, magicast_1.parseModule)(`import * as Sentry from '@sentry/react-native';
|
|
252
302
|
|
|
253
303
|
export default Another.wrap(() => {
|
|
@@ -267,10 +317,10 @@ export default Sentry.wrap(Another.wrap(() => {
|
|
|
267
317
|
);
|
|
268
318
|
}));`;
|
|
269
319
|
const result = (0, javascript_1.checkAndWrapRootComponent)(mod);
|
|
270
|
-
expect(result).toBe(javascript_1.SentryWrapResult.Success);
|
|
271
|
-
expect((0, magicast_1.generateCode)(mod.$ast).code).toBe(expectedOutput);
|
|
320
|
+
(0, vitest_1.expect)(result).toBe(javascript_1.SentryWrapResult.Success);
|
|
321
|
+
(0, vitest_1.expect)((0, magicast_1.generateCode)(mod.$ast).code).toBe(expectedOutput);
|
|
272
322
|
});
|
|
273
|
-
it('wraps a complex root function', () => {
|
|
323
|
+
(0, vitest_1.it)('wraps a complex root function', () => {
|
|
274
324
|
// This is the default export for a new Expo 52 project
|
|
275
325
|
const mod = (0, magicast_1.parseModule)(`import { DarkTheme, DefaultTheme, ThemeProvider } from '@react-navigation/native';
|
|
276
326
|
import { useFonts } from 'expo-font';
|
|
@@ -368,10 +418,10 @@ export default Sentry.wrap(function RootLayout() {
|
|
|
368
418
|
);
|
|
369
419
|
});`;
|
|
370
420
|
const result = (0, javascript_1.checkAndWrapRootComponent)(mod);
|
|
371
|
-
expect(result).toBe(javascript_1.SentryWrapResult.Success);
|
|
372
|
-
expect((0, magicast_1.generateCode)(mod.$ast).code).toBe(expectedOutput);
|
|
421
|
+
(0, vitest_1.expect)(result).toBe(javascript_1.SentryWrapResult.Success);
|
|
422
|
+
(0, vitest_1.expect)((0, magicast_1.generateCode)(mod.$ast).code).toBe(expectedOutput);
|
|
373
423
|
});
|
|
374
|
-
it('wraps a root app anonymous complex function', () => {
|
|
424
|
+
(0, vitest_1.it)('wraps a root app anonymous complex function', () => {
|
|
375
425
|
const mod = (0, magicast_1.parseModule)(`import * as Sentry from '@sentry/react-native';
|
|
376
426
|
|
|
377
427
|
export default () => {
|
|
@@ -429,10 +479,10 @@ export default Sentry.wrap(() => {
|
|
|
429
479
|
);
|
|
430
480
|
});`;
|
|
431
481
|
const result = (0, javascript_1.checkAndWrapRootComponent)(mod);
|
|
432
|
-
expect(result).toBe(javascript_1.SentryWrapResult.Success);
|
|
433
|
-
expect((0, magicast_1.generateCode)(mod.$ast).code).toBe(expectedOutput);
|
|
482
|
+
(0, vitest_1.expect)(result).toBe(javascript_1.SentryWrapResult.Success);
|
|
483
|
+
(0, vitest_1.expect)((0, magicast_1.generateCode)(mod.$ast).code).toBe(expectedOutput);
|
|
434
484
|
});
|
|
435
|
-
it('wraps a default class export', () => {
|
|
485
|
+
(0, vitest_1.it)('wraps a default class export', () => {
|
|
436
486
|
const mod = (0, magicast_1.parseModule)(`import * as Sentry from '@sentry/react-native';
|
|
437
487
|
|
|
438
488
|
export default class RootLayout extends React.Component {
|
|
@@ -456,10 +506,10 @@ export default Sentry.wrap(class RootLayout extends React.Component {
|
|
|
456
506
|
}
|
|
457
507
|
});`;
|
|
458
508
|
const result = (0, javascript_1.checkAndWrapRootComponent)(mod);
|
|
459
|
-
expect(result).toBe(javascript_1.SentryWrapResult.Success);
|
|
460
|
-
expect((0, magicast_1.generateCode)(mod.$ast).code).toBe(expectedOutput);
|
|
509
|
+
(0, vitest_1.expect)(result).toBe(javascript_1.SentryWrapResult.Success);
|
|
510
|
+
(0, vitest_1.expect)((0, magicast_1.generateCode)(mod.$ast).code).toBe(expectedOutput);
|
|
461
511
|
});
|
|
462
|
-
it('does not wrap a root app component if not found', () => {
|
|
512
|
+
(0, vitest_1.it)('does not wrap a root app component if not found', () => {
|
|
463
513
|
const input = `import * as React from 'react';
|
|
464
514
|
|
|
465
515
|
import { View } from 'react-native';
|
|
@@ -475,10 +525,10 @@ const App = () => {
|
|
|
475
525
|
export { App };`;
|
|
476
526
|
const mod = (0, magicast_1.parseModule)(input);
|
|
477
527
|
const result = (0, javascript_1.checkAndWrapRootComponent)(mod);
|
|
478
|
-
expect(result).toBe(javascript_1.SentryWrapResult.NotFound);
|
|
479
|
-
expect((0, magicast_1.generateCode)(mod.$ast).code).toBe(input);
|
|
528
|
+
(0, vitest_1.expect)(result).toBe(javascript_1.SentryWrapResult.NotFound);
|
|
529
|
+
(0, vitest_1.expect)((0, magicast_1.generateCode)(mod.$ast).code).toBe(input);
|
|
480
530
|
});
|
|
481
|
-
it('does not wrap a root app component if already wrapped', () => {
|
|
531
|
+
(0, vitest_1.it)('does not wrap a root app component if already wrapped', () => {
|
|
482
532
|
const input = `import * as React from 'react';
|
|
483
533
|
import * as Sentry from '@sentry/react-native';
|
|
484
534
|
|
|
@@ -495,25 +545,25 @@ const App = () => {
|
|
|
495
545
|
export default Sentry.wrap(App);`;
|
|
496
546
|
const mod = (0, magicast_1.parseModule)(input);
|
|
497
547
|
const result = (0, javascript_1.checkAndWrapRootComponent)(mod);
|
|
498
|
-
expect(result).toBe(javascript_1.SentryWrapResult.AlreadyWrapped);
|
|
499
|
-
expect((0, magicast_1.generateCode)(mod.$ast).code).toBe(input);
|
|
548
|
+
(0, vitest_1.expect)(result).toBe(javascript_1.SentryWrapResult.AlreadyWrapped);
|
|
549
|
+
(0, vitest_1.expect)((0, magicast_1.generateCode)(mod.$ast).code).toBe(input);
|
|
500
550
|
});
|
|
501
|
-
it('does not wrap the root app component in an empty file', () => {
|
|
551
|
+
(0, vitest_1.it)('does not wrap the root app component in an empty file', () => {
|
|
502
552
|
const mod = (0, magicast_1.parseModule)(``);
|
|
503
553
|
const result = (0, javascript_1.checkAndWrapRootComponent)(mod);
|
|
504
|
-
expect(result).toBe(javascript_1.SentryWrapResult.NotFound);
|
|
505
|
-
expect((0, magicast_1.generateCode)(mod.$ast).code).toBe(``);
|
|
554
|
+
(0, vitest_1.expect)(result).toBe(javascript_1.SentryWrapResult.NotFound);
|
|
555
|
+
(0, vitest_1.expect)((0, magicast_1.generateCode)(mod.$ast).code).toBe(``);
|
|
506
556
|
});
|
|
507
557
|
});
|
|
508
|
-
it('does detect Sentry.wrap if exists', () => {
|
|
558
|
+
(0, vitest_1.it)('does detect Sentry.wrap if exists', () => {
|
|
509
559
|
const mod = (0, magicast_1.parseModule)(`export default Sentry.wrap(App);`);
|
|
510
560
|
const result = (0, javascript_1.doesContainSentryWrap)(mod.$ast);
|
|
511
|
-
expect(result).toBeTruthy();
|
|
561
|
+
(0, vitest_1.expect)(result).toBeTruthy();
|
|
512
562
|
});
|
|
513
|
-
it('does not detect Sentry.wrap if not present', () => {
|
|
563
|
+
(0, vitest_1.it)('does not detect Sentry.wrap if not present', () => {
|
|
514
564
|
const mod = (0, magicast_1.parseModule)(`export default App;`);
|
|
515
565
|
const result = (0, javascript_1.doesContainSentryWrap)(mod.$ast);
|
|
516
|
-
expect(result).toBeFalsy();
|
|
566
|
+
(0, vitest_1.expect)(result).toBeFalsy();
|
|
517
567
|
});
|
|
518
568
|
});
|
|
519
569
|
//# sourceMappingURL=javascript.test.js.map
|