@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
|
@@ -28,15 +28,16 @@ const os = __importStar(require("node:os"));
|
|
|
28
28
|
const path = __importStar(require("node:path"));
|
|
29
29
|
const templates_1 = require("../../src/apple/templates");
|
|
30
30
|
const xcode_manager_1 = require("../../src/apple/xcode-manager");
|
|
31
|
-
|
|
31
|
+
const vitest_1 = require("vitest");
|
|
32
|
+
vitest_1.vi.mock('node:fs', async () => ({
|
|
32
33
|
__esModule: true,
|
|
33
|
-
...
|
|
34
|
+
...(await vitest_1.vi.importActual('node:fs')),
|
|
34
35
|
}));
|
|
35
|
-
|
|
36
|
+
vitest_1.vi.mock('@clack/prompts', () => ({
|
|
36
37
|
log: {
|
|
37
|
-
info:
|
|
38
|
-
success:
|
|
39
|
-
step:
|
|
38
|
+
info: vitest_1.vi.fn(),
|
|
39
|
+
success: vitest_1.vi.fn(),
|
|
40
|
+
step: vitest_1.vi.fn(),
|
|
40
41
|
},
|
|
41
42
|
}));
|
|
42
43
|
const appleProjectsPath = path.resolve(__dirname, '../../fixtures/test-applications/apple');
|
|
@@ -54,65 +55,65 @@ const projectData = {
|
|
|
54
55
|
},
|
|
55
56
|
keys: [{ dsn: { public: 'https://sentry.io/1234567890' } }],
|
|
56
57
|
};
|
|
57
|
-
describe('XcodeManager', () => {
|
|
58
|
-
afterEach(() => {
|
|
59
|
-
|
|
58
|
+
(0, vitest_1.describe)('XcodeManager', () => {
|
|
59
|
+
(0, vitest_1.afterEach)(() => {
|
|
60
|
+
vitest_1.vi.clearAllMocks();
|
|
60
61
|
});
|
|
61
|
-
describe('XcodeProject', () => {
|
|
62
|
-
describe('getAllTargets', () => {
|
|
63
|
-
describe('single target', () => {
|
|
64
|
-
it('should return all targets', () => {
|
|
62
|
+
(0, vitest_1.describe)('XcodeProject', () => {
|
|
63
|
+
(0, vitest_1.describe)('getAllTargets', () => {
|
|
64
|
+
(0, vitest_1.describe)('single target', () => {
|
|
65
|
+
(0, vitest_1.it)('should return all targets', () => {
|
|
65
66
|
// -- Arrange --
|
|
66
67
|
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
67
68
|
// -- Act --
|
|
68
69
|
const targets = xcodeProject.getAllTargets();
|
|
69
70
|
// -- Assert --
|
|
70
|
-
expect(targets).toEqual(['Project']);
|
|
71
|
+
(0, vitest_1.expect)(targets).toEqual(['Project']);
|
|
71
72
|
});
|
|
72
73
|
});
|
|
73
|
-
describe('multiple targets', () => {
|
|
74
|
-
it('should return all targets', () => {
|
|
74
|
+
(0, vitest_1.describe)('multiple targets', () => {
|
|
75
|
+
(0, vitest_1.it)('should return all targets', () => {
|
|
75
76
|
// -- Arrange --
|
|
76
77
|
const xcodeProject = new xcode_manager_1.XcodeProject(multiTargetProjectPath);
|
|
77
78
|
// -- Act --
|
|
78
79
|
const targets = xcodeProject.getAllTargets();
|
|
79
80
|
// -- Assert --
|
|
80
|
-
expect(targets).toEqual(['Project1', 'Project2']);
|
|
81
|
+
(0, vitest_1.expect)(targets).toEqual(['Project1', 'Project2']);
|
|
81
82
|
});
|
|
82
83
|
});
|
|
83
|
-
describe('no targets', () => {
|
|
84
|
-
it('should return an empty array', () => {
|
|
84
|
+
(0, vitest_1.describe)('no targets', () => {
|
|
85
|
+
(0, vitest_1.it)('should return an empty array', () => {
|
|
85
86
|
// -- Arrange --
|
|
86
87
|
const xcodeProject = new xcode_manager_1.XcodeProject(noTargetsProjectPath);
|
|
87
88
|
// -- Act --
|
|
88
89
|
const targets = xcodeProject.getAllTargets();
|
|
89
90
|
// -- Assert --
|
|
90
|
-
expect(targets).toEqual([]);
|
|
91
|
+
(0, vitest_1.expect)(targets).toEqual([]);
|
|
91
92
|
});
|
|
92
93
|
});
|
|
93
|
-
describe('project with missing configuration list', () => {
|
|
94
|
-
it('should return an empty array', () => {
|
|
94
|
+
(0, vitest_1.describe)('project with missing configuration list', () => {
|
|
95
|
+
(0, vitest_1.it)('should return an empty array', () => {
|
|
95
96
|
// -- Arrange --
|
|
96
97
|
const xcodeProject = new xcode_manager_1.XcodeProject(damagedProjectPath);
|
|
97
98
|
// -- Act --
|
|
98
99
|
const targets = xcodeProject.getAllTargets();
|
|
99
100
|
// -- Assert --
|
|
100
|
-
expect(targets).toEqual([]);
|
|
101
|
+
(0, vitest_1.expect)(targets).toEqual([]);
|
|
101
102
|
});
|
|
102
103
|
});
|
|
103
104
|
});
|
|
104
|
-
describe('updateXcodeProject', () => {
|
|
105
|
+
(0, vitest_1.describe)('updateXcodeProject', () => {
|
|
105
106
|
let sourceProjectPath;
|
|
106
107
|
let tempProjectPath;
|
|
107
108
|
let xcodeProject;
|
|
108
|
-
beforeEach(() => {
|
|
109
|
+
(0, vitest_1.beforeEach)(() => {
|
|
109
110
|
const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'update-xcode-project'));
|
|
110
111
|
sourceProjectPath = singleTargetProjectPath;
|
|
111
112
|
tempProjectPath = path.resolve(tempDir, 'project.pbxproj');
|
|
112
113
|
fs.copyFileSync(sourceProjectPath, tempProjectPath);
|
|
113
114
|
xcodeProject = new xcode_manager_1.XcodeProject(tempProjectPath);
|
|
114
115
|
});
|
|
115
|
-
describe('upload symbols script', () => {
|
|
116
|
+
(0, vitest_1.describe)('upload symbols script', () => {
|
|
116
117
|
const scriptVariants = [
|
|
117
118
|
{
|
|
118
119
|
uploadSource: true,
|
|
@@ -132,16 +133,14 @@ describe('XcodeManager', () => {
|
|
|
132
133
|
},
|
|
133
134
|
];
|
|
134
135
|
for (const variant of scriptVariants) {
|
|
135
|
-
describe(`upload source = ${variant.uploadSource?.toString()} and include homebrew path = ${variant.includeHomebrewPath.toString()}`, () => {
|
|
136
|
-
beforeEach(() => {
|
|
137
|
-
|
|
138
|
-
.spyOn(fs, 'existsSync')
|
|
139
|
-
.mockReturnValue(variant.includeHomebrewPath);
|
|
136
|
+
(0, vitest_1.describe)(`upload source = ${variant.uploadSource?.toString()} and include homebrew path = ${variant.includeHomebrewPath.toString()}`, () => {
|
|
137
|
+
(0, vitest_1.beforeEach)(() => {
|
|
138
|
+
vitest_1.vi.spyOn(fs, 'existsSync').mockReturnValue(variant.includeHomebrewPath);
|
|
140
139
|
});
|
|
141
|
-
afterEach(() => {
|
|
142
|
-
|
|
140
|
+
(0, vitest_1.afterEach)(() => {
|
|
141
|
+
vitest_1.vi.restoreAllMocks();
|
|
143
142
|
});
|
|
144
|
-
it('should add the upload symbols script to the target', () => {
|
|
143
|
+
(0, vitest_1.it)('should add the upload symbols script to the target', () => {
|
|
145
144
|
// -- Arrange --
|
|
146
145
|
const generatedShellScript = (0, templates_1.getRunScriptTemplate)(projectData.organization.slug, projectData.slug, variant.uploadSource, variant.includeHomebrewPath);
|
|
147
146
|
const expectedShellScript = `"${generatedShellScript.replace(/"/g, '\\"')}"`;
|
|
@@ -152,92 +151,92 @@ describe('XcodeManager', () => {
|
|
|
152
151
|
const updatedXcodeProject = new xcode_manager_1.XcodeProject(tempProjectPath);
|
|
153
152
|
// Expect the upload symbols script to be added
|
|
154
153
|
const scriptObjects = updatedXcodeProject.objects.PBXShellScriptBuildPhase;
|
|
155
|
-
expect(scriptObjects).toBeDefined();
|
|
154
|
+
(0, vitest_1.expect)(scriptObjects).toBeDefined();
|
|
156
155
|
if (!scriptObjects) {
|
|
157
156
|
throw new Error('Script objects not found');
|
|
158
157
|
}
|
|
159
158
|
const scriptKeys = Object.keys(scriptObjects);
|
|
160
|
-
expect(scriptKeys).toHaveLength(2);
|
|
159
|
+
(0, vitest_1.expect)(scriptKeys).toHaveLength(2);
|
|
161
160
|
// Find the script ID
|
|
162
161
|
const scriptId = scriptKeys.find((key) => !key.endsWith('_comment'));
|
|
163
|
-
expect(scriptId).toBeDefined();
|
|
162
|
+
(0, vitest_1.expect)(scriptId).toBeDefined();
|
|
164
163
|
if (!scriptId) {
|
|
165
164
|
throw new Error('Script ID not found');
|
|
166
165
|
}
|
|
167
|
-
expect(scriptId).toMatch(/^[A-F0-9]{24}$/i);
|
|
166
|
+
(0, vitest_1.expect)(scriptId).toMatch(/^[A-F0-9]{24}$/i);
|
|
168
167
|
// Expect the script to be added
|
|
169
168
|
const script = scriptObjects[scriptId];
|
|
170
|
-
expect(script).toBeDefined();
|
|
171
|
-
expect(typeof script).not.toBe('string');
|
|
172
|
-
expect(script.inputPaths).toEqual([
|
|
169
|
+
(0, vitest_1.expect)(script).toBeDefined();
|
|
170
|
+
(0, vitest_1.expect)(typeof script).not.toBe('string');
|
|
171
|
+
(0, vitest_1.expect)(script.inputPaths).toEqual([
|
|
173
172
|
'"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}"',
|
|
174
173
|
]);
|
|
175
|
-
expect(script.outputPaths).toEqual([]);
|
|
176
|
-
expect(script.shellPath).toBe('/bin/sh');
|
|
177
|
-
expect(script.shellScript).toEqual(expectedShellScript);
|
|
174
|
+
(0, vitest_1.expect)(script.outputPaths).toEqual([]);
|
|
175
|
+
(0, vitest_1.expect)(script.shellPath).toBe('/bin/sh');
|
|
176
|
+
(0, vitest_1.expect)(script.shellScript).toEqual(expectedShellScript);
|
|
178
177
|
const commentKey = `${scriptId}_comment`;
|
|
179
|
-
expect(scriptKeys).toContain(commentKey);
|
|
180
|
-
expect(scriptObjects[commentKey]).toBe('Upload Debug Symbols to Sentry');
|
|
178
|
+
(0, vitest_1.expect)(scriptKeys).toContain(commentKey);
|
|
179
|
+
(0, vitest_1.expect)(scriptObjects[commentKey]).toBe('Upload Debug Symbols to Sentry');
|
|
181
180
|
});
|
|
182
181
|
});
|
|
183
182
|
}
|
|
184
183
|
});
|
|
185
|
-
describe('debug information format and sandbox', () => {
|
|
186
|
-
describe('upload source is false', () => {
|
|
187
|
-
it('should not update the Xcode project', () => {
|
|
184
|
+
(0, vitest_1.describe)('debug information format and sandbox', () => {
|
|
185
|
+
(0, vitest_1.describe)('upload source is false', () => {
|
|
186
|
+
(0, vitest_1.it)('should not update the Xcode project', () => {
|
|
188
187
|
// -- Act --
|
|
189
188
|
xcodeProject.updateXcodeProject(projectData, 'Project', false, // Ignore SPM reference
|
|
190
189
|
false);
|
|
191
190
|
// -- Assert --
|
|
192
191
|
const expectedXcodeProject = new xcode_manager_1.XcodeProject(sourceProjectPath);
|
|
193
|
-
expect(xcodeProject.objects.XCBuildConfiguration).toEqual(expectedXcodeProject.objects.XCBuildConfiguration);
|
|
192
|
+
(0, vitest_1.expect)(xcodeProject.objects.XCBuildConfiguration).toEqual(expectedXcodeProject.objects.XCBuildConfiguration);
|
|
194
193
|
});
|
|
195
194
|
});
|
|
196
|
-
describe('upload source is true', () => {
|
|
195
|
+
(0, vitest_1.describe)('upload source is true', () => {
|
|
197
196
|
const uploadSource = true;
|
|
198
|
-
describe('named target not found', () => {
|
|
199
|
-
it('should not update the flags in the Xcode project', () => {
|
|
197
|
+
(0, vitest_1.describe)('named target not found', () => {
|
|
198
|
+
(0, vitest_1.it)('should not update the flags in the Xcode project', () => {
|
|
200
199
|
// -- Act --
|
|
201
200
|
xcodeProject.updateXcodeProject(projectData, 'Invalid Target Name', false, // Ignore SPM reference
|
|
202
201
|
uploadSource);
|
|
203
202
|
// -- Assert --
|
|
204
203
|
const originalXcodeProject = new xcode_manager_1.XcodeProject(sourceProjectPath);
|
|
205
|
-
expect(xcodeProject.objects.XCBuildConfiguration).toEqual(originalXcodeProject.objects.XCBuildConfiguration);
|
|
204
|
+
(0, vitest_1.expect)(xcodeProject.objects.XCBuildConfiguration).toEqual(originalXcodeProject.objects.XCBuildConfiguration);
|
|
206
205
|
});
|
|
207
206
|
});
|
|
208
|
-
describe('named target found', () => {
|
|
209
|
-
describe('build configurations is undefined', () => {
|
|
210
|
-
it('should not update the Xcode project', () => {
|
|
207
|
+
(0, vitest_1.describe)('named target found', () => {
|
|
208
|
+
(0, vitest_1.describe)('build configurations is undefined', () => {
|
|
209
|
+
(0, vitest_1.it)('should not update the Xcode project', () => {
|
|
211
210
|
// -- Act --
|
|
212
211
|
xcodeProject.updateXcodeProject(projectData, 'Invalid Target Name', false, // Ignore SPM reference
|
|
213
212
|
uploadSource);
|
|
214
213
|
// -- Assert --
|
|
215
214
|
const originalXcodeProject = new xcode_manager_1.XcodeProject(sourceProjectPath);
|
|
216
|
-
expect(xcodeProject.objects.XCBuildConfiguration).toEqual(originalXcodeProject.objects.XCBuildConfiguration);
|
|
215
|
+
(0, vitest_1.expect)(xcodeProject.objects.XCBuildConfiguration).toEqual(originalXcodeProject.objects.XCBuildConfiguration);
|
|
217
216
|
});
|
|
218
217
|
});
|
|
219
|
-
describe('no build configurations found', () => {
|
|
220
|
-
it('should not update the Xcode project', () => {
|
|
218
|
+
(0, vitest_1.describe)('no build configurations found', () => {
|
|
219
|
+
(0, vitest_1.it)('should not update the Xcode project', () => {
|
|
221
220
|
// -- Arrange --
|
|
222
221
|
xcodeProject.objects.XCBuildConfiguration = {};
|
|
223
222
|
// -- Act --
|
|
224
223
|
xcodeProject.updateXcodeProject(projectData, 'Invalid Target Name', false, // Ignore SPM reference
|
|
225
224
|
uploadSource);
|
|
226
225
|
// -- Assert --
|
|
227
|
-
expect(xcodeProject.objects.XCBuildConfiguration).toEqual({});
|
|
226
|
+
(0, vitest_1.expect)(xcodeProject.objects.XCBuildConfiguration).toEqual({});
|
|
228
227
|
});
|
|
229
228
|
});
|
|
230
|
-
describe('build configurations found', () => {
|
|
229
|
+
(0, vitest_1.describe)('build configurations found', () => {
|
|
231
230
|
const debugProjectBuildConfigurationListId = 'D4E604DA2D50CEEE00CAB00F';
|
|
232
231
|
const releaseProjectBuildConfigurationListId = 'D4E604DB2D50CEEE00CAB00F';
|
|
233
232
|
const debugTargetBuildConfigurationListId = 'D4E604DD2D50CEEE00CAB00F';
|
|
234
233
|
const releaseTargetBuildConfigurationListId = 'D4E604DE2D50CEEE00CAB00F';
|
|
235
|
-
it('should update the target configuration lists', () => {
|
|
234
|
+
(0, vitest_1.it)('should update the target configuration lists', () => {
|
|
236
235
|
// -- Act --
|
|
237
236
|
xcodeProject.updateXcodeProject(projectData, 'Project', false, // Ignore SPM reference
|
|
238
237
|
uploadSource);
|
|
239
238
|
// -- Assert --
|
|
240
|
-
expect(xcodeProject.objects.XCBuildConfiguration).toBeDefined();
|
|
239
|
+
(0, vitest_1.expect)(xcodeProject.objects.XCBuildConfiguration).toBeDefined();
|
|
241
240
|
// Both Debug and Release are configured equally
|
|
242
241
|
const expectedConfigKeys = [
|
|
243
242
|
debugTargetBuildConfigurationListId,
|
|
@@ -246,46 +245,46 @@ describe('XcodeManager', () => {
|
|
|
246
245
|
for (const key of expectedConfigKeys) {
|
|
247
246
|
const buildConfiguration = xcodeProject.objects
|
|
248
247
|
.XCBuildConfiguration?.[key];
|
|
249
|
-
expect(buildConfiguration).toBeDefined();
|
|
250
|
-
expect(typeof buildConfiguration).not.toBe('string');
|
|
248
|
+
(0, vitest_1.expect)(buildConfiguration).toBeDefined();
|
|
249
|
+
(0, vitest_1.expect)(typeof buildConfiguration).not.toBe('string');
|
|
251
250
|
const buildSettings = buildConfiguration.buildSettings ?? {};
|
|
252
|
-
expect(buildSettings.DEBUG_INFORMATION_FORMAT).toBe('"dwarf-with-dsym"');
|
|
253
|
-
expect(buildSettings.ENABLE_USER_SCRIPT_SANDBOXING).toBe('"NO"');
|
|
251
|
+
(0, vitest_1.expect)(buildSettings.DEBUG_INFORMATION_FORMAT).toBe('"dwarf-with-dsym"');
|
|
252
|
+
(0, vitest_1.expect)(buildSettings.ENABLE_USER_SCRIPT_SANDBOXING).toBe('"NO"');
|
|
254
253
|
}
|
|
255
254
|
});
|
|
256
|
-
it('should not update the project configuration lists', () => {
|
|
255
|
+
(0, vitest_1.it)('should not update the project configuration lists', () => {
|
|
257
256
|
// -- Act --
|
|
258
257
|
xcodeProject.updateXcodeProject(projectData, 'Project', false, // Ignore SPM reference
|
|
259
258
|
uploadSource);
|
|
260
259
|
// -- Assert --
|
|
261
|
-
expect(xcodeProject.objects.XCBuildConfiguration).toBeDefined();
|
|
260
|
+
(0, vitest_1.expect)(xcodeProject.objects.XCBuildConfiguration).toBeDefined();
|
|
262
261
|
// Check project build configurations 'Debug'
|
|
263
262
|
const debugBuildConfiguration = xcodeProject.objects
|
|
264
263
|
.XCBuildConfiguration?.[debugProjectBuildConfigurationListId];
|
|
265
|
-
expect(debugBuildConfiguration).toBeDefined();
|
|
266
|
-
expect(typeof debugBuildConfiguration).not.toBe('string');
|
|
267
|
-
expect(debugBuildConfiguration.buildSettings
|
|
264
|
+
(0, vitest_1.expect)(debugBuildConfiguration).toBeDefined();
|
|
265
|
+
(0, vitest_1.expect)(typeof debugBuildConfiguration).not.toBe('string');
|
|
266
|
+
(0, vitest_1.expect)(debugBuildConfiguration.buildSettings
|
|
268
267
|
?.DEBUG_INFORMATION_FORMAT).toBe('dwarf');
|
|
269
|
-
expect(debugBuildConfiguration.buildSettings
|
|
268
|
+
(0, vitest_1.expect)(debugBuildConfiguration.buildSettings
|
|
270
269
|
?.ENABLE_USER_SCRIPT_SANDBOXING).toBe('YES');
|
|
271
270
|
// Check project build configurations 'Release'
|
|
272
271
|
const releaseBuildConfiguration = xcodeProject.objects
|
|
273
272
|
.XCBuildConfiguration?.[releaseProjectBuildConfigurationListId];
|
|
274
|
-
expect(releaseBuildConfiguration).toBeDefined();
|
|
275
|
-
expect(typeof releaseBuildConfiguration).not.toBe('string');
|
|
276
|
-
expect(releaseBuildConfiguration.buildSettings
|
|
273
|
+
(0, vitest_1.expect)(releaseBuildConfiguration).toBeDefined();
|
|
274
|
+
(0, vitest_1.expect)(typeof releaseBuildConfiguration).not.toBe('string');
|
|
275
|
+
(0, vitest_1.expect)(releaseBuildConfiguration.buildSettings
|
|
277
276
|
?.DEBUG_INFORMATION_FORMAT).toBe('"dwarf-with-dsym"');
|
|
278
|
-
expect(releaseBuildConfiguration.buildSettings
|
|
277
|
+
(0, vitest_1.expect)(releaseBuildConfiguration.buildSettings
|
|
279
278
|
?.ENABLE_USER_SCRIPT_SANDBOXING).toBe('YES');
|
|
280
279
|
});
|
|
281
280
|
});
|
|
282
281
|
});
|
|
283
282
|
});
|
|
284
283
|
});
|
|
285
|
-
describe('add SPM reference', () => {
|
|
284
|
+
(0, vitest_1.describe)('add SPM reference', () => {
|
|
286
285
|
const addSPMReference = true;
|
|
287
|
-
describe('framework build phase already contains Sentry', () => {
|
|
288
|
-
it('should not update the Xcode project', () => {
|
|
286
|
+
(0, vitest_1.describe)('framework build phase already contains Sentry', () => {
|
|
287
|
+
(0, vitest_1.it)('should not update the Xcode project', () => {
|
|
289
288
|
// -- Arrange --
|
|
290
289
|
xcodeProject.objects.PBXFrameworksBuildPhase = {
|
|
291
290
|
'framework-id': {
|
|
@@ -313,41 +312,41 @@ describe('XcodeManager', () => {
|
|
|
313
312
|
],
|
|
314
313
|
},
|
|
315
314
|
};
|
|
316
|
-
expect(xcodeProject.objects.PBXFrameworksBuildPhase).toEqual(expectedXcodeProject.objects.PBXFrameworksBuildPhase);
|
|
317
|
-
expect(xcodeProject.objects.XCRemoteSwiftPackageReference).toEqual(expectedXcodeProject.objects.XCRemoteSwiftPackageReference);
|
|
318
|
-
expect(xcodeProject.objects.XCSwiftPackageProductDependency).toEqual(expectedXcodeProject.objects.XCSwiftPackageProductDependency);
|
|
315
|
+
(0, vitest_1.expect)(xcodeProject.objects.PBXFrameworksBuildPhase).toEqual(expectedXcodeProject.objects.PBXFrameworksBuildPhase);
|
|
316
|
+
(0, vitest_1.expect)(xcodeProject.objects.XCRemoteSwiftPackageReference).toEqual(expectedXcodeProject.objects.XCRemoteSwiftPackageReference);
|
|
317
|
+
(0, vitest_1.expect)(xcodeProject.objects.XCSwiftPackageProductDependency).toEqual(expectedXcodeProject.objects.XCSwiftPackageProductDependency);
|
|
319
318
|
});
|
|
320
319
|
});
|
|
321
|
-
it('should add the SPM reference to the target', () => {
|
|
320
|
+
(0, vitest_1.it)('should add the SPM reference to the target', () => {
|
|
322
321
|
// -- Act --
|
|
323
322
|
xcodeProject.updateXcodeProject(projectData, 'Project', addSPMReference);
|
|
324
323
|
// -- Assert --
|
|
325
324
|
// Get the target
|
|
326
325
|
const target = xcodeProject.objects.PBXNativeTarget?.['D4E604CC2D50CEEC00CAB00F'];
|
|
327
|
-
expect(target).toBeDefined();
|
|
326
|
+
(0, vitest_1.expect)(target).toBeDefined();
|
|
328
327
|
if (!target) {
|
|
329
328
|
throw new Error('Target is undefined');
|
|
330
329
|
}
|
|
331
330
|
// Check the SPM dependency is added to the target
|
|
332
|
-
expect(target.packageProductDependencies).toEqual([
|
|
333
|
-
expect.objectContaining({
|
|
334
|
-
value: expect.any(String),
|
|
331
|
+
(0, vitest_1.expect)(target.packageProductDependencies).toEqual([
|
|
332
|
+
vitest_1.expect.objectContaining({
|
|
333
|
+
value: vitest_1.expect.any(String),
|
|
335
334
|
comment: 'Sentry',
|
|
336
335
|
}),
|
|
337
336
|
]);
|
|
338
337
|
// Check the SPM package reference object is added to the project
|
|
339
338
|
const remoteSwiftPackageReferences = xcodeProject.objects.XCRemoteSwiftPackageReference;
|
|
340
|
-
expect(remoteSwiftPackageReferences).toBeDefined();
|
|
339
|
+
(0, vitest_1.expect)(remoteSwiftPackageReferences).toBeDefined();
|
|
341
340
|
if (!remoteSwiftPackageReferences) {
|
|
342
341
|
throw new Error('XCRemoteSwiftPackageReference is undefined');
|
|
343
342
|
}
|
|
344
343
|
const rspRefKeys = Object.keys(remoteSwiftPackageReferences);
|
|
345
|
-
expect(rspRefKeys).toHaveLength(2);
|
|
344
|
+
(0, vitest_1.expect)(rspRefKeys).toHaveLength(2);
|
|
346
345
|
// First key is expected to be the UUID of the SPM package reference
|
|
347
|
-
expect(rspRefKeys[0]).toMatch(/^[A-F0-9]{24}$/i);
|
|
346
|
+
(0, vitest_1.expect)(rspRefKeys[0]).toMatch(/^[A-F0-9]{24}$/i);
|
|
348
347
|
// Second key is expected to be the UUID of the SPM package reference with _comment suffix
|
|
349
|
-
expect(rspRefKeys[1]).toMatch(/^[A-F0-9]{24}_comment$/i);
|
|
350
|
-
expect(remoteSwiftPackageReferences?.[rspRefKeys[0]]).toEqual({
|
|
348
|
+
(0, vitest_1.expect)(rspRefKeys[1]).toMatch(/^[A-F0-9]{24}_comment$/i);
|
|
349
|
+
(0, vitest_1.expect)(remoteSwiftPackageReferences?.[rspRefKeys[0]]).toEqual({
|
|
351
350
|
isa: 'XCRemoteSwiftPackageReference',
|
|
352
351
|
repositoryURL: '"https://github.com/getsentry/sentry-cocoa/"',
|
|
353
352
|
requirement: {
|
|
@@ -355,20 +354,20 @@ describe('XcodeManager', () => {
|
|
|
355
354
|
minimumVersion: '8.0.0',
|
|
356
355
|
},
|
|
357
356
|
});
|
|
358
|
-
expect(remoteSwiftPackageReferences?.[rspRefKeys[1]]).toBe('XCRemoteSwiftPackageReference "sentry-cocoa"');
|
|
357
|
+
(0, vitest_1.expect)(remoteSwiftPackageReferences?.[rspRefKeys[1]]).toBe('XCRemoteSwiftPackageReference "sentry-cocoa"');
|
|
359
358
|
// Check the SPM package is a dependency of the target
|
|
360
359
|
const packageProductDependencies = xcodeProject.objects.XCSwiftPackageProductDependency;
|
|
361
|
-
expect(packageProductDependencies).toBeDefined();
|
|
360
|
+
(0, vitest_1.expect)(packageProductDependencies).toBeDefined();
|
|
362
361
|
if (!packageProductDependencies) {
|
|
363
362
|
throw new Error('XCSwiftPackageProductDependency is undefined');
|
|
364
363
|
}
|
|
365
364
|
const ppDepKeys = Object.keys(packageProductDependencies);
|
|
366
|
-
expect(ppDepKeys).toHaveLength(2);
|
|
365
|
+
(0, vitest_1.expect)(ppDepKeys).toHaveLength(2);
|
|
367
366
|
// First key is expected to be the UUID of the SPM package dependency
|
|
368
|
-
expect(ppDepKeys[0]).toMatch(/^[A-F0-9]{24}$/i);
|
|
367
|
+
(0, vitest_1.expect)(ppDepKeys[0]).toMatch(/^[A-F0-9]{24}$/i);
|
|
369
368
|
// Second key is expected to be the UUID of the SPM package dependency with _comment suffix
|
|
370
|
-
expect(ppDepKeys[1]).toMatch(/^[A-F0-9]{24}_comment$/i);
|
|
371
|
-
expect(packageProductDependencies?.[ppDepKeys[0]]).toEqual({
|
|
369
|
+
(0, vitest_1.expect)(ppDepKeys[1]).toMatch(/^[A-F0-9]{24}_comment$/i);
|
|
370
|
+
(0, vitest_1.expect)(packageProductDependencies?.[ppDepKeys[0]]).toEqual({
|
|
372
371
|
isa: 'XCSwiftPackageProductDependency',
|
|
373
372
|
package: rspRefKeys[0],
|
|
374
373
|
package_comment: 'XCRemoteSwiftPackageReference "sentry-cocoa"',
|
|
@@ -378,30 +377,30 @@ describe('XcodeManager', () => {
|
|
|
378
377
|
});
|
|
379
378
|
});
|
|
380
379
|
});
|
|
381
|
-
describe('filesForTarget', () => {
|
|
382
|
-
describe('targets are undefined', () => {
|
|
383
|
-
it('should return undefined', () => {
|
|
380
|
+
(0, vitest_1.describe)('filesForTarget', () => {
|
|
381
|
+
(0, vitest_1.describe)('targets are undefined', () => {
|
|
382
|
+
(0, vitest_1.it)('should return undefined', () => {
|
|
384
383
|
// -- Arrange --
|
|
385
384
|
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
386
385
|
xcodeProject.objects.PBXNativeTarget = undefined;
|
|
387
386
|
// -- Act --
|
|
388
387
|
const files = xcodeProject.filesForTarget('Project');
|
|
389
388
|
// -- Assert --
|
|
390
|
-
expect(files).toBeUndefined();
|
|
389
|
+
(0, vitest_1.expect)(files).toBeUndefined();
|
|
391
390
|
});
|
|
392
391
|
});
|
|
393
|
-
describe('target not found', () => {
|
|
394
|
-
it('should return undefined', () => {
|
|
392
|
+
(0, vitest_1.describe)('target not found', () => {
|
|
393
|
+
(0, vitest_1.it)('should return undefined', () => {
|
|
395
394
|
// -- Arrange --
|
|
396
395
|
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
397
396
|
// -- Act --
|
|
398
397
|
const files = xcodeProject.filesForTarget('NonExistentTarget');
|
|
399
398
|
// -- Assert --
|
|
400
|
-
expect(files).toBeUndefined();
|
|
399
|
+
(0, vitest_1.expect)(files).toBeUndefined();
|
|
401
400
|
});
|
|
402
401
|
});
|
|
403
|
-
describe('target build phases are undefined', () => {
|
|
404
|
-
it('should return undefined', () => {
|
|
402
|
+
(0, vitest_1.describe)('target build phases are undefined', () => {
|
|
403
|
+
(0, vitest_1.it)('should return undefined', () => {
|
|
405
404
|
// -- Arrange --
|
|
406
405
|
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
407
406
|
xcodeProject.objects.PBXNativeTarget = {
|
|
@@ -414,11 +413,11 @@ describe('XcodeManager', () => {
|
|
|
414
413
|
// -- Act --
|
|
415
414
|
const files = xcodeProject.filesForTarget('Project');
|
|
416
415
|
// -- Assert --
|
|
417
|
-
expect(files).toBeUndefined();
|
|
416
|
+
(0, vitest_1.expect)(files).toBeUndefined();
|
|
418
417
|
});
|
|
419
418
|
});
|
|
420
|
-
describe('build phases are undefined', () => {
|
|
421
|
-
it('should return undefined', () => {
|
|
419
|
+
(0, vitest_1.describe)('build phases are undefined', () => {
|
|
420
|
+
(0, vitest_1.it)('should return undefined', () => {
|
|
422
421
|
// -- Arrange --
|
|
423
422
|
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
424
423
|
xcodeProject.objects.PBXNativeTarget = {
|
|
@@ -432,11 +431,11 @@ describe('XcodeManager', () => {
|
|
|
432
431
|
// -- Act --
|
|
433
432
|
const files = xcodeProject.filesForTarget('Project');
|
|
434
433
|
// -- Assert --
|
|
435
|
-
expect(files).toBeUndefined();
|
|
434
|
+
(0, vitest_1.expect)(files).toBeUndefined();
|
|
436
435
|
});
|
|
437
436
|
});
|
|
438
|
-
describe('referenced build phase is undefined', () => {
|
|
439
|
-
it('should return undefined', () => {
|
|
437
|
+
(0, vitest_1.describe)('referenced build phase is undefined', () => {
|
|
438
|
+
(0, vitest_1.it)('should return undefined', () => {
|
|
440
439
|
// -- Arrange --
|
|
441
440
|
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
442
441
|
xcodeProject.objects.PBXNativeTarget = {
|
|
@@ -453,11 +452,11 @@ describe('XcodeManager', () => {
|
|
|
453
452
|
// -- Act --
|
|
454
453
|
const files = xcodeProject.filesForTarget('Project');
|
|
455
454
|
// -- Assert --
|
|
456
|
-
expect(files).toBeUndefined();
|
|
455
|
+
(0, vitest_1.expect)(files).toBeUndefined();
|
|
457
456
|
});
|
|
458
457
|
});
|
|
459
|
-
describe('build phase files are undefined', () => {
|
|
460
|
-
it('should return empty array', () => {
|
|
458
|
+
(0, vitest_1.describe)('build phase files are undefined', () => {
|
|
459
|
+
(0, vitest_1.it)('should return empty array', () => {
|
|
461
460
|
// -- Arrange --
|
|
462
461
|
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
463
462
|
xcodeProject.objects.PBXNativeTarget = {
|
|
@@ -480,22 +479,22 @@ describe('XcodeManager', () => {
|
|
|
480
479
|
// -- Act --
|
|
481
480
|
const files = xcodeProject.filesForTarget('Project');
|
|
482
481
|
// -- Assert --
|
|
483
|
-
expect(files).toEqual([]);
|
|
482
|
+
(0, vitest_1.expect)(files).toEqual([]);
|
|
484
483
|
});
|
|
485
484
|
});
|
|
486
|
-
describe('build phase has no files', () => {
|
|
487
|
-
it('should return empty array', () => {
|
|
485
|
+
(0, vitest_1.describe)('build phase has no files', () => {
|
|
486
|
+
(0, vitest_1.it)('should return empty array', () => {
|
|
488
487
|
// -- Arrange --
|
|
489
488
|
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
490
489
|
// -- Act --
|
|
491
490
|
const files = xcodeProject.filesForTarget('Project');
|
|
492
491
|
// -- Assert --
|
|
493
|
-
expect(files).toEqual([]);
|
|
492
|
+
(0, vitest_1.expect)(files).toEqual([]);
|
|
494
493
|
});
|
|
495
494
|
});
|
|
496
|
-
describe('build phase with files', () => {
|
|
495
|
+
(0, vitest_1.describe)('build phase with files', () => {
|
|
497
496
|
let xcodeProject;
|
|
498
|
-
beforeEach(() => {
|
|
497
|
+
(0, vitest_1.beforeEach)(() => {
|
|
499
498
|
xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
500
499
|
xcodeProject.objects.PBXNativeTarget = {
|
|
501
500
|
'some-target': {
|
|
@@ -531,62 +530,62 @@ describe('XcodeManager', () => {
|
|
|
531
530
|
},
|
|
532
531
|
];
|
|
533
532
|
});
|
|
534
|
-
describe('build file objects are not defined', () => {
|
|
535
|
-
it('should return empty array', () => {
|
|
533
|
+
(0, vitest_1.describe)('build file objects are not defined', () => {
|
|
534
|
+
(0, vitest_1.it)('should return empty array', () => {
|
|
536
535
|
// -- Arrange --
|
|
537
536
|
xcodeProject.objects.PBXBuildFile = undefined;
|
|
538
537
|
// -- Act --
|
|
539
538
|
const files = xcodeProject.filesForTarget('some-target');
|
|
540
539
|
// -- Assert --
|
|
541
|
-
expect(files).toEqual([]);
|
|
540
|
+
(0, vitest_1.expect)(files).toEqual([]);
|
|
542
541
|
});
|
|
543
542
|
});
|
|
544
|
-
describe('build file object is not found', () => {
|
|
545
|
-
it('should return empty array', () => {
|
|
543
|
+
(0, vitest_1.describe)('build file object is not found', () => {
|
|
544
|
+
(0, vitest_1.it)('should return empty array', () => {
|
|
546
545
|
// -- Arrange --
|
|
547
546
|
xcodeProject.objects.PBXBuildFile = {};
|
|
548
547
|
// -- Act --
|
|
549
548
|
const files = xcodeProject.filesForTarget('some-target');
|
|
550
549
|
// -- Assert --
|
|
551
|
-
expect(files).toEqual([]);
|
|
550
|
+
(0, vitest_1.expect)(files).toEqual([]);
|
|
552
551
|
});
|
|
553
552
|
});
|
|
554
|
-
describe('build file object exists', () => {
|
|
555
|
-
describe('file reference is undefined', () => {
|
|
556
|
-
it('should ignore the file', () => {
|
|
553
|
+
(0, vitest_1.describe)('build file object exists', () => {
|
|
554
|
+
(0, vitest_1.describe)('file reference is undefined', () => {
|
|
555
|
+
(0, vitest_1.it)('should ignore the file', () => {
|
|
557
556
|
// -- Arrange --
|
|
558
557
|
xcodeProject.files = [];
|
|
559
558
|
// -- Act --
|
|
560
559
|
const files = xcodeProject.filesForTarget('some-target');
|
|
561
560
|
// -- Assert --
|
|
562
|
-
expect(files).toEqual([]);
|
|
561
|
+
(0, vitest_1.expect)(files).toEqual([]);
|
|
563
562
|
});
|
|
564
563
|
});
|
|
565
|
-
it('should return array of file paths', () => {
|
|
564
|
+
(0, vitest_1.it)('should return array of file paths', () => {
|
|
566
565
|
// -- Act --
|
|
567
566
|
const files = xcodeProject.filesForTarget('some-target');
|
|
568
567
|
// -- Assert --
|
|
569
|
-
expect(files).toEqual([
|
|
568
|
+
(0, vitest_1.expect)(files).toEqual([
|
|
570
569
|
path.join(appleProjectsPath, 'spm-swiftui-single-target', 'file-path'),
|
|
571
570
|
]);
|
|
572
571
|
});
|
|
573
572
|
});
|
|
574
573
|
});
|
|
575
574
|
});
|
|
576
|
-
describe('projectFiles', () => {
|
|
577
|
-
describe('no groups in project', () => {
|
|
578
|
-
it('should return empty array', () => {
|
|
575
|
+
(0, vitest_1.describe)('projectFiles', () => {
|
|
576
|
+
(0, vitest_1.describe)('no groups in project', () => {
|
|
577
|
+
(0, vitest_1.it)('should return empty array', () => {
|
|
579
578
|
// -- Arrange --
|
|
580
579
|
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
581
580
|
xcodeProject.objects.PBXGroup = undefined;
|
|
582
581
|
// -- Act --
|
|
583
582
|
const files = xcodeProject.projectFiles();
|
|
584
583
|
// -- Assert --
|
|
585
|
-
expect(files).toEqual([]);
|
|
584
|
+
(0, vitest_1.expect)(files).toEqual([]);
|
|
586
585
|
});
|
|
587
586
|
});
|
|
588
|
-
describe('main group not found', () => {
|
|
589
|
-
it('should return empty array', () => {
|
|
587
|
+
(0, vitest_1.describe)('main group not found', () => {
|
|
588
|
+
(0, vitest_1.it)('should return empty array', () => {
|
|
590
589
|
// -- Arrange --
|
|
591
590
|
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
592
591
|
const project = xcodeProject.objects.PBXProject?.['D4E604C52D50CEEC00CAB00F'];
|
|
@@ -596,39 +595,39 @@ describe('XcodeManager', () => {
|
|
|
596
595
|
// -- Act --
|
|
597
596
|
const files = xcodeProject.projectFiles();
|
|
598
597
|
// -- Assert --
|
|
599
|
-
expect(files).toEqual([]);
|
|
598
|
+
(0, vitest_1.expect)(files).toEqual([]);
|
|
600
599
|
});
|
|
601
600
|
});
|
|
602
|
-
describe('main group found', () => {
|
|
603
|
-
it('should return array of file paths', () => {
|
|
601
|
+
(0, vitest_1.describe)('main group found', () => {
|
|
602
|
+
(0, vitest_1.it)('should return array of file paths', () => {
|
|
604
603
|
// -- Arrange --
|
|
605
604
|
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
606
605
|
// -- Act --
|
|
607
606
|
const files = xcodeProject.projectFiles();
|
|
608
607
|
// -- Assert --
|
|
609
|
-
expect(files).toEqual([
|
|
608
|
+
(0, vitest_1.expect)(files).toEqual([
|
|
610
609
|
{
|
|
611
610
|
key: 'D4E604CD2D50CEEC00CAB00F',
|
|
612
611
|
path: 'Project.app',
|
|
613
612
|
},
|
|
614
613
|
]);
|
|
615
614
|
});
|
|
616
|
-
it('should cache the result', () => {
|
|
615
|
+
(0, vitest_1.it)('should cache the result', () => {
|
|
617
616
|
// -- Arrange --
|
|
618
617
|
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
619
618
|
// Smoke test
|
|
620
|
-
expect(xcodeProject.files).toBeUndefined();
|
|
619
|
+
(0, vitest_1.expect)(xcodeProject.files).toBeUndefined();
|
|
621
620
|
// -- Act --
|
|
622
621
|
const files = xcodeProject.projectFiles();
|
|
623
622
|
// -- Assert --
|
|
624
|
-
expect(xcodeProject.files).toBeDefined();
|
|
625
|
-
expect(xcodeProject.files).toEqual(files);
|
|
623
|
+
(0, vitest_1.expect)(xcodeProject.files).toBeDefined();
|
|
624
|
+
(0, vitest_1.expect)(xcodeProject.files).toEqual(files);
|
|
626
625
|
});
|
|
627
626
|
});
|
|
628
627
|
});
|
|
629
|
-
describe('buildGroup', () => {
|
|
630
|
-
describe('group has undefined children', () => {
|
|
631
|
-
it('should return empty array', () => {
|
|
628
|
+
(0, vitest_1.describe)('buildGroup', () => {
|
|
629
|
+
(0, vitest_1.describe)('group has undefined children', () => {
|
|
630
|
+
(0, vitest_1.it)('should return empty array', () => {
|
|
632
631
|
// -- Arrange --
|
|
633
632
|
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
634
633
|
const group = {
|
|
@@ -639,11 +638,11 @@ describe('XcodeManager', () => {
|
|
|
639
638
|
// -- Act --
|
|
640
639
|
const files = xcodeProject.buildGroup(group);
|
|
641
640
|
// -- Assert --
|
|
642
|
-
expect(files).toEqual([]);
|
|
641
|
+
(0, vitest_1.expect)(files).toEqual([]);
|
|
643
642
|
});
|
|
644
643
|
});
|
|
645
|
-
describe('group has no children', () => {
|
|
646
|
-
it('should return empty array', () => {
|
|
644
|
+
(0, vitest_1.describe)('group has no children', () => {
|
|
645
|
+
(0, vitest_1.it)('should return empty array', () => {
|
|
647
646
|
// -- Arrange --
|
|
648
647
|
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
649
648
|
const group = {
|
|
@@ -652,10 +651,10 @@ describe('XcodeManager', () => {
|
|
|
652
651
|
// -- Act --
|
|
653
652
|
const files = xcodeProject.buildGroup(group);
|
|
654
653
|
// -- Assert --
|
|
655
|
-
expect(files).toEqual([]);
|
|
654
|
+
(0, vitest_1.expect)(files).toEqual([]);
|
|
656
655
|
});
|
|
657
656
|
});
|
|
658
|
-
describe('group child is file reference', () => {
|
|
657
|
+
(0, vitest_1.describe)('group child is file reference', () => {
|
|
659
658
|
const group = {
|
|
660
659
|
isa: 'PBXGroup',
|
|
661
660
|
children: [
|
|
@@ -665,19 +664,19 @@ describe('XcodeManager', () => {
|
|
|
665
664
|
],
|
|
666
665
|
path: '',
|
|
667
666
|
};
|
|
668
|
-
describe('file references are undefined', () => {
|
|
669
|
-
it('should return empty array', () => {
|
|
667
|
+
(0, vitest_1.describe)('file references are undefined', () => {
|
|
668
|
+
(0, vitest_1.it)('should return empty array', () => {
|
|
670
669
|
// -- Arrange --
|
|
671
670
|
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
672
671
|
xcodeProject.objects.PBXFileReference = undefined;
|
|
673
672
|
// -- Act --
|
|
674
673
|
const files = xcodeProject.buildGroup(group);
|
|
675
674
|
// -- Assert --
|
|
676
|
-
expect(files).toEqual([]);
|
|
675
|
+
(0, vitest_1.expect)(files).toEqual([]);
|
|
677
676
|
});
|
|
678
677
|
});
|
|
679
|
-
describe('file reference is string', () => {
|
|
680
|
-
it('should be ignored', () => {
|
|
678
|
+
(0, vitest_1.describe)('file reference is string', () => {
|
|
679
|
+
(0, vitest_1.it)('should be ignored', () => {
|
|
681
680
|
// -- Arrange --
|
|
682
681
|
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
683
682
|
const group = {
|
|
@@ -692,11 +691,11 @@ describe('XcodeManager', () => {
|
|
|
692
691
|
// -- Act --
|
|
693
692
|
const files = xcodeProject.buildGroup(group);
|
|
694
693
|
// -- Assert --
|
|
695
|
-
expect(files).toEqual([]);
|
|
694
|
+
(0, vitest_1.expect)(files).toEqual([]);
|
|
696
695
|
});
|
|
697
696
|
});
|
|
698
|
-
describe('file reference is valid', () => {
|
|
699
|
-
it('should return array of escaped paths', () => {
|
|
697
|
+
(0, vitest_1.describe)('file reference is valid', () => {
|
|
698
|
+
(0, vitest_1.it)('should return array of escaped paths', () => {
|
|
700
699
|
// -- Arrange --
|
|
701
700
|
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
702
701
|
xcodeProject.objects.PBXFileReference = {
|
|
@@ -718,7 +717,7 @@ describe('XcodeManager', () => {
|
|
|
718
717
|
// -- Act --
|
|
719
718
|
const files = xcodeProject.buildGroup(group);
|
|
720
719
|
// -- Assert --
|
|
721
|
-
expect(files).toEqual([
|
|
720
|
+
(0, vitest_1.expect)(files).toEqual([
|
|
722
721
|
{
|
|
723
722
|
key: 'D4E604CD2D50CEEC00CAB00F',
|
|
724
723
|
path: 'some/path/to/file.swift',
|
|
@@ -727,7 +726,7 @@ describe('XcodeManager', () => {
|
|
|
727
726
|
});
|
|
728
727
|
});
|
|
729
728
|
});
|
|
730
|
-
describe('group child is group reference', () => {
|
|
729
|
+
(0, vitest_1.describe)('group child is group reference', () => {
|
|
731
730
|
const group = {
|
|
732
731
|
isa: 'PBXGroup',
|
|
733
732
|
children: [
|
|
@@ -737,19 +736,19 @@ describe('XcodeManager', () => {
|
|
|
737
736
|
],
|
|
738
737
|
path: '',
|
|
739
738
|
};
|
|
740
|
-
describe('groups are undefined', () => {
|
|
741
|
-
it('should return empty array', () => {
|
|
739
|
+
(0, vitest_1.describe)('groups are undefined', () => {
|
|
740
|
+
(0, vitest_1.it)('should return empty array', () => {
|
|
742
741
|
// -- Arrange --
|
|
743
742
|
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
744
743
|
xcodeProject.objects.PBXGroup = undefined;
|
|
745
744
|
// -- Act --
|
|
746
745
|
const files = xcodeProject.buildGroup(group);
|
|
747
746
|
// -- Assert --
|
|
748
|
-
expect(files).toEqual([]);
|
|
747
|
+
(0, vitest_1.expect)(files).toEqual([]);
|
|
749
748
|
});
|
|
750
749
|
});
|
|
751
|
-
describe('group reference is string', () => {
|
|
752
|
-
it('should return array of file paths', () => {
|
|
750
|
+
(0, vitest_1.describe)('group reference is string', () => {
|
|
751
|
+
(0, vitest_1.it)('should return array of file paths', () => {
|
|
753
752
|
// -- Arrange --
|
|
754
753
|
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
755
754
|
const group = {
|
|
@@ -764,17 +763,17 @@ describe('XcodeManager', () => {
|
|
|
764
763
|
// -- Act --
|
|
765
764
|
const files = xcodeProject.buildGroup(group);
|
|
766
765
|
// -- Assert --
|
|
767
|
-
expect(files).toEqual([]);
|
|
766
|
+
(0, vitest_1.expect)(files).toEqual([]);
|
|
768
767
|
});
|
|
769
768
|
});
|
|
770
|
-
describe('group reference is valid', () => {
|
|
771
|
-
it('should return array of file paths', () => {
|
|
769
|
+
(0, vitest_1.describe)('group reference is valid', () => {
|
|
770
|
+
(0, vitest_1.it)('should return array of file paths', () => {
|
|
772
771
|
// -- Arrange --
|
|
773
772
|
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
774
773
|
// -- Act --
|
|
775
774
|
const files = xcodeProject.buildGroup(group);
|
|
776
775
|
// -- Assert --
|
|
777
|
-
expect(files).toEqual([
|
|
776
|
+
(0, vitest_1.expect)(files).toEqual([
|
|
778
777
|
{
|
|
779
778
|
key: 'D4E604CD2D50CEEC00CAB00F',
|
|
780
779
|
path: 'Project.app',
|
|
@@ -782,8 +781,8 @@ describe('XcodeManager', () => {
|
|
|
782
781
|
]);
|
|
783
782
|
});
|
|
784
783
|
});
|
|
785
|
-
describe('group reference has path', () => {
|
|
786
|
-
it('should append the path to the file paths', () => {
|
|
784
|
+
(0, vitest_1.describe)('group reference has path', () => {
|
|
785
|
+
(0, vitest_1.it)('should append the path to the file paths', () => {
|
|
787
786
|
// -- Arrange --
|
|
788
787
|
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
789
788
|
const group = {
|
|
@@ -818,7 +817,7 @@ describe('XcodeManager', () => {
|
|
|
818
817
|
// -- Act --
|
|
819
818
|
const files = xcodeProject.buildGroup(group);
|
|
820
819
|
// -- Assert --
|
|
821
|
-
expect(files).toEqual([
|
|
820
|
+
(0, vitest_1.expect)(files).toEqual([
|
|
822
821
|
{
|
|
823
822
|
key: 'file-at-path',
|
|
824
823
|
path: 'some/file/at/path.swift',
|
|
@@ -827,8 +826,8 @@ describe('XcodeManager', () => {
|
|
|
827
826
|
});
|
|
828
827
|
});
|
|
829
828
|
});
|
|
830
|
-
describe('group child is not a file reference or group', () => {
|
|
831
|
-
it('should be ignored', () => {
|
|
829
|
+
(0, vitest_1.describe)('group child is not a file reference or group', () => {
|
|
830
|
+
(0, vitest_1.it)('should be ignored', () => {
|
|
832
831
|
// -- Arrange --
|
|
833
832
|
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
834
833
|
xcodeProject.objects.PBXGroup = {};
|
|
@@ -845,7 +844,7 @@ describe('XcodeManager', () => {
|
|
|
845
844
|
// -- Act --
|
|
846
845
|
const files = xcodeProject.buildGroup(group);
|
|
847
846
|
// -- Assert --
|
|
848
|
-
expect(files).toEqual([]);
|
|
847
|
+
(0, vitest_1.expect)(files).toEqual([]);
|
|
849
848
|
});
|
|
850
849
|
});
|
|
851
850
|
});
|