isolate-package 1.29.0-0 → 1.29.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.
@@ -1,238 +0,0 @@
1
- import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
2
- import { processLockfile } from "./process-lockfile";
3
- import type { IsolateConfigResolved } from "../config";
4
-
5
- /** Mock the package manager detection */
6
- vi.mock("~/lib/package-manager", () => ({
7
- usePackageManager: vi.fn(),
8
- }));
9
-
10
- /** Mock all lockfile generators */
11
- vi.mock("./helpers", () => ({
12
- generateBunLockfile: vi.fn(),
13
- generateNpmLockfile: vi.fn(),
14
- generatePnpmLockfile: vi.fn(),
15
- generateYarnLockfile: vi.fn(),
16
- }));
17
-
18
- const { usePackageManager } = vi.mocked(await import("~/lib/package-manager"));
19
- const {
20
- generateBunLockfile,
21
- generateNpmLockfile,
22
- generatePnpmLockfile,
23
- generateYarnLockfile,
24
- } = vi.mocked(await import("./helpers"));
25
-
26
- /** Minimal config for testing */
27
- function createConfig(
28
- overrides?: Partial<IsolateConfigResolved>,
29
- ): IsolateConfigResolved {
30
- return {
31
- buildDirName: "dist",
32
- forceNpm: false,
33
- includeDevDependencies: false,
34
- isolateDirName: "isolate",
35
- logLevel: "info",
36
- omitPackageManager: false,
37
- tsconfigPath: undefined,
38
- workspacePackages: undefined,
39
- workspaceRoot: undefined,
40
- ...overrides,
41
- } as IsolateConfigResolved;
42
- }
43
-
44
- describe("processLockfile", () => {
45
- beforeEach(() => {
46
- vi.clearAllMocks();
47
- });
48
-
49
- afterEach(() => {
50
- vi.restoreAllMocks();
51
- });
52
-
53
- it("should route to npm generator for npm package manager", async () => {
54
- usePackageManager.mockReturnValue({
55
- name: "npm",
56
- majorVersion: 10,
57
- version: "10.0.0",
58
- packageManagerString: "npm@10.0.0",
59
- });
60
-
61
- const result = await processLockfile({
62
- workspaceRootDir: "/workspace",
63
- isolateDir: "/workspace/apps/my-app/isolate",
64
- packagesRegistry: {},
65
- internalDepPackageNames: [],
66
- targetPackageDir: "/workspace/apps/my-app",
67
- targetPackageName: "my-app",
68
- targetPackageManifest: { name: "my-app", version: "1.0.0" },
69
- config: createConfig(),
70
- });
71
-
72
- expect(generateNpmLockfile).toHaveBeenCalledWith({
73
- workspaceRootDir: "/workspace",
74
- isolateDir: "/workspace/apps/my-app/isolate",
75
- });
76
- expect(result).toBe(false);
77
- });
78
-
79
- it("should route to pnpm generator for pnpm package manager", async () => {
80
- usePackageManager.mockReturnValue({
81
- name: "pnpm",
82
- majorVersion: 9,
83
- version: "9.0.0",
84
- packageManagerString: "pnpm@9.0.0",
85
- });
86
-
87
- const config = createConfig({ includeDevDependencies: true });
88
-
89
- await processLockfile({
90
- workspaceRootDir: "/workspace",
91
- isolateDir: "/workspace/apps/my-app/isolate",
92
- packagesRegistry: { shared: {} as never },
93
- internalDepPackageNames: ["shared"],
94
- targetPackageDir: "/workspace/apps/my-app",
95
- targetPackageName: "my-app",
96
- targetPackageManifest: { name: "my-app", version: "1.0.0" },
97
- config,
98
- });
99
-
100
- expect(generatePnpmLockfile).toHaveBeenCalledWith({
101
- workspaceRootDir: "/workspace",
102
- targetPackageDir: "/workspace/apps/my-app",
103
- isolateDir: "/workspace/apps/my-app/isolate",
104
- internalDepPackageNames: ["shared"],
105
- packagesRegistry: { shared: {} as never },
106
- targetPackageManifest: { name: "my-app", version: "1.0.0" },
107
- majorVersion: 9,
108
- includeDevDependencies: true,
109
- patchedDependencies: undefined,
110
- });
111
- });
112
-
113
- it("should route to yarn generator for yarn v1", async () => {
114
- usePackageManager.mockReturnValue({
115
- name: "yarn",
116
- majorVersion: 1,
117
- version: "1.22.0",
118
- packageManagerString: "yarn@1.22.0",
119
- });
120
-
121
- const result = await processLockfile({
122
- workspaceRootDir: "/workspace",
123
- isolateDir: "/workspace/apps/my-app/isolate",
124
- packagesRegistry: {},
125
- internalDepPackageNames: [],
126
- targetPackageDir: "/workspace/apps/my-app",
127
- targetPackageName: "my-app",
128
- targetPackageManifest: { name: "my-app", version: "1.0.0" },
129
- config: createConfig(),
130
- });
131
-
132
- expect(generateYarnLockfile).toHaveBeenCalledWith({
133
- workspaceRootDir: "/workspace",
134
- isolateDir: "/workspace/apps/my-app/isolate",
135
- });
136
- expect(result).toBe(false);
137
- });
138
-
139
- it("should fall back to npm for modern yarn (v2+)", async () => {
140
- usePackageManager.mockReturnValue({
141
- name: "yarn",
142
- majorVersion: 4,
143
- version: "4.0.0",
144
- packageManagerString: "yarn@4.0.0",
145
- });
146
-
147
- const result = await processLockfile({
148
- workspaceRootDir: "/workspace",
149
- isolateDir: "/workspace/apps/my-app/isolate",
150
- packagesRegistry: {},
151
- internalDepPackageNames: [],
152
- targetPackageDir: "/workspace/apps/my-app",
153
- targetPackageName: "my-app",
154
- targetPackageManifest: { name: "my-app", version: "1.0.0" },
155
- config: createConfig(),
156
- });
157
-
158
- expect(generateNpmLockfile).toHaveBeenCalled();
159
- expect(result).toBe(true);
160
- });
161
-
162
- it("should route to bun generator for bun package manager", async () => {
163
- usePackageManager.mockReturnValue({
164
- name: "bun",
165
- majorVersion: 1,
166
- version: "1.2.0",
167
- packageManagerString: "bun@1.2.0",
168
- });
169
-
170
- const result = await processLockfile({
171
- workspaceRootDir: "/workspace",
172
- isolateDir: "/workspace/apps/my-app/isolate",
173
- packagesRegistry: {},
174
- internalDepPackageNames: ["shared"],
175
- targetPackageDir: "/workspace/apps/my-app",
176
- targetPackageName: "my-app",
177
- targetPackageManifest: { name: "my-app", version: "1.0.0" },
178
- config: createConfig(),
179
- });
180
-
181
- expect(generateBunLockfile).toHaveBeenCalledWith({
182
- workspaceRootDir: "/workspace",
183
- targetPackageDir: "/workspace/apps/my-app",
184
- isolateDir: "/workspace/apps/my-app/isolate",
185
- internalDepPackageNames: ["shared"],
186
- packagesRegistry: {},
187
- includeDevDependencies: false,
188
- });
189
- expect(result).toBe(false);
190
- });
191
-
192
- it("should use npm when forceNpm is true regardless of package manager", async () => {
193
- usePackageManager.mockReturnValue({
194
- name: "pnpm",
195
- majorVersion: 9,
196
- version: "9.0.0",
197
- packageManagerString: "pnpm@9.0.0",
198
- });
199
-
200
- const result = await processLockfile({
201
- workspaceRootDir: "/workspace",
202
- isolateDir: "/workspace/apps/my-app/isolate",
203
- packagesRegistry: {},
204
- internalDepPackageNames: [],
205
- targetPackageDir: "/workspace/apps/my-app",
206
- targetPackageName: "my-app",
207
- targetPackageManifest: { name: "my-app", version: "1.0.0" },
208
- config: createConfig({ forceNpm: true }),
209
- });
210
-
211
- expect(generateNpmLockfile).toHaveBeenCalled();
212
- expect(generatePnpmLockfile).not.toHaveBeenCalled();
213
- expect(result).toBe(true);
214
- });
215
-
216
- it("should fall back to npm for unknown package manager", async () => {
217
- usePackageManager.mockReturnValue({
218
- name: "unknown" as never,
219
- majorVersion: 1,
220
- version: "1.0.0",
221
- packageManagerString: "unknown@1.0.0",
222
- });
223
-
224
- const result = await processLockfile({
225
- workspaceRootDir: "/workspace",
226
- isolateDir: "/workspace/apps/my-app/isolate",
227
- packagesRegistry: {},
228
- internalDepPackageNames: [],
229
- targetPackageDir: "/workspace/apps/my-app",
230
- targetPackageName: "my-app",
231
- targetPackageManifest: { name: "my-app", version: "1.0.0" },
232
- config: createConfig(),
233
- });
234
-
235
- expect(generateNpmLockfile).toHaveBeenCalled();
236
- expect(result).toBe(true);
237
- });
238
- });
@@ -1,13 +0,0 @@
1
- import { vi } from "vitest";
2
-
3
- /** Mock the logger for all tests to prevent console output during tests */
4
- vi.mock("~/lib/logger", () => ({
5
- useLogger: () => ({
6
- debug: vi.fn(),
7
- info: vi.fn(),
8
- warn: vi.fn(),
9
- error: vi.fn(),
10
- }),
11
- setLogLevel: vi.fn(),
12
- setLogger: vi.fn(),
13
- }));