wrangler 0.0.0-e61907d → 0.0.0-e64812e
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/Cloudflare_CA.pem +18 -0
- package/README.md +64 -0
- package/bin/wrangler.js +80 -2
- package/import_meta_url.js +3 -0
- package/miniflare-dist/index.mjs +4886 -0
- package/package.json +98 -28
- package/pages/functions/buildPlugin.ts +105 -0
- package/pages/functions/buildWorker.ts +151 -0
- package/pages/functions/filepath-routing.test.ts +234 -0
- package/pages/functions/filepath-routing.ts +189 -0
- package/pages/functions/identifiers.ts +78 -0
- package/pages/functions/routes.ts +156 -0
- package/pages/functions/template-plugin.ts +147 -0
- package/pages/functions/template-worker.ts +143 -0
- package/src/__tests__/config-cache.test.ts +36 -0
- package/src/__tests__/configuration.test.ts +3374 -0
- package/src/__tests__/dev.test.tsx +980 -0
- package/src/__tests__/guess-worker-format.test.ts +85 -0
- package/src/__tests__/helpers/clipboardy-mock.js +4 -0
- package/src/__tests__/helpers/cmd-shim.d.ts +11 -0
- package/src/__tests__/helpers/faye-websocket.d.ts +6 -0
- package/src/__tests__/helpers/mock-account-id.ts +48 -0
- package/src/__tests__/helpers/mock-bin.ts +36 -0
- package/src/__tests__/helpers/mock-cfetch.ts +211 -0
- package/src/__tests__/helpers/mock-console.ts +87 -0
- package/src/__tests__/helpers/mock-dialogs.ts +130 -0
- package/src/__tests__/helpers/mock-http-server.ts +46 -0
- package/src/__tests__/helpers/mock-istty.ts +27 -0
- package/src/__tests__/helpers/mock-kv.ts +33 -0
- package/src/__tests__/helpers/mock-oauth-flow.ts +255 -0
- package/src/__tests__/helpers/mock-stdin.ts +103 -0
- package/src/__tests__/helpers/mock-web-socket.ts +29 -0
- package/src/__tests__/helpers/run-in-tmp.ts +39 -0
- package/src/__tests__/helpers/run-wrangler.ts +16 -0
- package/src/__tests__/helpers/write-worker-source.ts +31 -0
- package/src/__tests__/helpers/write-wrangler-toml.ts +17 -0
- package/src/__tests__/https-options.test.ts +130 -0
- package/src/__tests__/index.test.ts +256 -0
- package/src/__tests__/init.test.ts +1634 -0
- package/src/__tests__/jest.setup.ts +77 -0
- package/src/__tests__/kv.test.ts +1481 -0
- package/src/__tests__/logger.test.ts +115 -0
- package/src/__tests__/package-manager.test.ts +353 -0
- package/src/__tests__/pages.test.ts +754 -0
- package/src/__tests__/parse.test.ts +330 -0
- package/src/__tests__/publish.test.ts +5468 -0
- package/src/__tests__/r2.test.ts +233 -0
- package/src/__tests__/route.test.ts +45 -0
- package/src/__tests__/secret.test.ts +481 -0
- package/src/__tests__/tail.test.ts +690 -0
- package/src/__tests__/user.test.ts +131 -0
- package/src/__tests__/whoami.test.tsx +105 -0
- package/src/abort.d.ts +3 -0
- package/src/bundle.ts +200 -0
- package/src/cfetch/index.ts +121 -0
- package/src/cfetch/internal.ts +145 -0
- package/src/cli.ts +13 -0
- package/src/config/README.md +107 -0
- package/src/config/config.ts +234 -0
- package/src/config/diagnostics.ts +80 -0
- package/src/config/environment.ts +420 -0
- package/src/config/index.ts +225 -0
- package/src/config/validation-helpers.ts +575 -0
- package/src/config/validation.ts +1539 -0
- package/src/config-cache.ts +45 -0
- package/src/create-worker-preview.ts +185 -0
- package/src/create-worker-upload-form.ts +254 -0
- package/src/dev/dev-vars.ts +36 -0
- package/src/dev/dev.tsx +419 -0
- package/src/dev/local.tsx +318 -0
- package/src/dev/remote.tsx +227 -0
- package/src/dev/use-esbuild.ts +118 -0
- package/src/dialogs.tsx +135 -0
- package/src/durable.ts +102 -0
- package/src/entry.ts +322 -0
- package/src/environment-variables.ts +35 -0
- package/src/errors.ts +11 -0
- package/src/https-options.ts +123 -0
- package/src/index.tsx +2864 -0
- package/src/inspect.ts +662 -0
- package/src/intl-polyfill.d.ts +139 -0
- package/src/kv.ts +408 -0
- package/src/logger.ts +66 -0
- package/src/miniflare-cli/README.md +30 -0
- package/src/miniflare-cli/enum-keys.ts +17 -0
- package/src/miniflare-cli/index.ts +41 -0
- package/src/miniflare-cli/request-context.ts +40 -0
- package/src/module-collection.ts +258 -0
- package/src/open-in-browser.ts +19 -0
- package/src/package-manager.ts +174 -0
- package/src/pages.tsx +2038 -0
- package/src/parse.ts +202 -0
- package/src/paths.ts +26 -0
- package/src/proxy.ts +465 -0
- package/src/publish.ts +583 -0
- package/src/r2.ts +50 -0
- package/src/selfsigned.d.ts +29 -0
- package/src/sites.tsx +295 -0
- package/src/tail/filters.ts +279 -0
- package/src/tail/index.ts +299 -0
- package/src/tail/printing.ts +67 -0
- package/src/update-check.ts +19 -0
- package/src/user.tsx +1203 -0
- package/src/whoami.tsx +70 -0
- package/src/worker.ts +180 -0
- package/templates/gitignore +171 -0
- package/templates/new-worker-scheduled.js +17 -0
- package/templates/new-worker-scheduled.ts +32 -0
- package/templates/new-worker.js +15 -0
- package/templates/new-worker.ts +30 -0
- package/{static-asset-facade.js → templates/static-asset-facade.js} +1 -1
- package/templates/tsconfig.json +105 -0
- package/wrangler-dist/cli.js +126702 -0
- package/wrangler-dist/index_node.js +0 -102507
- package/wrangler-dist/index_node.js.map +0 -7
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { logger } from "../logger";
|
|
2
|
+
import { mockConsoleMethods } from "./helpers/mock-console";
|
|
3
|
+
|
|
4
|
+
describe("logger", () => {
|
|
5
|
+
const std = mockConsoleMethods();
|
|
6
|
+
|
|
7
|
+
it("should add colored markers to error and warning messages", () => {
|
|
8
|
+
logger.loggerLevel = "debug";
|
|
9
|
+
logger.debug("This is a debug message");
|
|
10
|
+
logger.log("This is a log message");
|
|
11
|
+
logger.warn("This is a warn message");
|
|
12
|
+
logger.error("This is a error message");
|
|
13
|
+
|
|
14
|
+
expect(std.debug).toMatchInlineSnapshot(`"This is a debug message"`);
|
|
15
|
+
expect(std.out).toMatchInlineSnapshot(`"This is a log message"`);
|
|
16
|
+
expect(std.warn).toMatchInlineSnapshot(`
|
|
17
|
+
"[33m▲ [43;33m[[43;30mWARNING[43;33m][0m [1mThis is a warn message[0m
|
|
18
|
+
|
|
19
|
+
"
|
|
20
|
+
`);
|
|
21
|
+
expect(std.err).toMatchInlineSnapshot(`
|
|
22
|
+
"[31mX [41;31m[[41;97mERROR[41;31m][0m [1mThis is a error message[0m
|
|
23
|
+
|
|
24
|
+
"
|
|
25
|
+
`);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
describe("loggerLevel=debug", () => {
|
|
29
|
+
it("should render messages that are at or above the log level set in the logger", () => {
|
|
30
|
+
logger.loggerLevel = "debug";
|
|
31
|
+
logger.debug("This is a debug message");
|
|
32
|
+
logger.log("This is a log message");
|
|
33
|
+
logger.warn("This is a warn message");
|
|
34
|
+
logger.error("This is a error message");
|
|
35
|
+
|
|
36
|
+
expect(std.debug).toMatchInlineSnapshot(`"This is a debug message"`);
|
|
37
|
+
expect(std.out).toMatchInlineSnapshot(`"This is a log message"`);
|
|
38
|
+
expect(std.warn).toMatchInlineSnapshot(`
|
|
39
|
+
"[33m▲ [43;33m[[43;30mWARNING[43;33m][0m [1mThis is a warn message[0m
|
|
40
|
+
|
|
41
|
+
"
|
|
42
|
+
`);
|
|
43
|
+
expect(std.err).toMatchInlineSnapshot(`
|
|
44
|
+
"[31mX [41;31m[[41;97mERROR[41;31m][0m [1mThis is a error message[0m
|
|
45
|
+
|
|
46
|
+
"
|
|
47
|
+
`);
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
describe("loggerLevel=log", () => {
|
|
52
|
+
it("should render messages that are at or above the log level set in the logger", () => {
|
|
53
|
+
logger.loggerLevel = "log";
|
|
54
|
+
logger.debug("This is a debug message");
|
|
55
|
+
logger.log("This is a log message");
|
|
56
|
+
logger.warn("This is a warn message");
|
|
57
|
+
logger.error("This is a error message");
|
|
58
|
+
|
|
59
|
+
expect(std.debug).toMatchInlineSnapshot(`""`);
|
|
60
|
+
expect(std.out).toMatchInlineSnapshot(`"This is a log message"`);
|
|
61
|
+
expect(std.warn).toMatchInlineSnapshot(`
|
|
62
|
+
"[33m▲ [43;33m[[43;30mWARNING[43;33m][0m [1mThis is a warn message[0m
|
|
63
|
+
|
|
64
|
+
"
|
|
65
|
+
`);
|
|
66
|
+
expect(std.err).toMatchInlineSnapshot(`
|
|
67
|
+
"[31mX [41;31m[[41;97mERROR[41;31m][0m [1mThis is a error message[0m
|
|
68
|
+
|
|
69
|
+
"
|
|
70
|
+
`);
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
describe("loggerLevel=warn", () => {
|
|
75
|
+
it("should render messages that are at or above the log level set in the logger", () => {
|
|
76
|
+
logger.loggerLevel = "warn";
|
|
77
|
+
logger.debug("This is a debug message");
|
|
78
|
+
logger.log("This is a log message");
|
|
79
|
+
logger.warn("This is a warn message");
|
|
80
|
+
logger.error("This is a error message");
|
|
81
|
+
|
|
82
|
+
expect(std.debug).toMatchInlineSnapshot(`""`);
|
|
83
|
+
expect(std.out).toMatchInlineSnapshot(`""`);
|
|
84
|
+
expect(std.warn).toMatchInlineSnapshot(`
|
|
85
|
+
"[33m▲ [43;33m[[43;30mWARNING[43;33m][0m [1mThis is a warn message[0m
|
|
86
|
+
|
|
87
|
+
"
|
|
88
|
+
`);
|
|
89
|
+
expect(std.err).toMatchInlineSnapshot(`
|
|
90
|
+
"[31mX [41;31m[[41;97mERROR[41;31m][0m [1mThis is a error message[0m
|
|
91
|
+
|
|
92
|
+
"
|
|
93
|
+
`);
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
describe("loggerLevel=error", () => {
|
|
98
|
+
it("should render messages that are at or above the log level set in the logger", () => {
|
|
99
|
+
logger.loggerLevel = "error";
|
|
100
|
+
logger.debug("This is a debug message");
|
|
101
|
+
logger.log("This is a log message");
|
|
102
|
+
logger.warn("This is a warn message");
|
|
103
|
+
logger.error("This is a error message");
|
|
104
|
+
|
|
105
|
+
expect(std.debug).toMatchInlineSnapshot(`""`);
|
|
106
|
+
expect(std.out).toMatchInlineSnapshot(`""`);
|
|
107
|
+
expect(std.warn).toMatchInlineSnapshot(`""`);
|
|
108
|
+
expect(std.err).toMatchInlineSnapshot(`
|
|
109
|
+
"[31mX [41;31m[[41;97mERROR[41;31m][0m [1mThis is a error message[0m
|
|
110
|
+
|
|
111
|
+
"
|
|
112
|
+
`);
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
});
|
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
import { writeFileSync } from "node:fs";
|
|
2
|
+
import { mockBinary } from "./helpers/mock-bin";
|
|
3
|
+
import { mockConsoleMethods } from "./helpers/mock-console";
|
|
4
|
+
import { runInTempDir } from "./helpers/run-in-tmp";
|
|
5
|
+
|
|
6
|
+
const { getPackageManager, getPackageManagerName } =
|
|
7
|
+
jest.requireActual("../package-manager");
|
|
8
|
+
interface TestCase {
|
|
9
|
+
npm: boolean;
|
|
10
|
+
pnpm: boolean;
|
|
11
|
+
yarn: boolean;
|
|
12
|
+
npmLockFile: boolean;
|
|
13
|
+
yarnLockFile: boolean;
|
|
14
|
+
pnpmLockFile: boolean;
|
|
15
|
+
expectedPackageManager: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const testCases: TestCase[] = [
|
|
19
|
+
// npm binary only
|
|
20
|
+
{
|
|
21
|
+
npm: true,
|
|
22
|
+
yarn: false,
|
|
23
|
+
pnpm: false,
|
|
24
|
+
npmLockFile: false,
|
|
25
|
+
yarnLockFile: false,
|
|
26
|
+
pnpmLockFile: false,
|
|
27
|
+
expectedPackageManager: "npm",
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
npm: true,
|
|
31
|
+
yarn: false,
|
|
32
|
+
pnpm: false,
|
|
33
|
+
npmLockFile: true,
|
|
34
|
+
yarnLockFile: false,
|
|
35
|
+
pnpmLockFile: false,
|
|
36
|
+
expectedPackageManager: "npm",
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
npm: true,
|
|
40
|
+
yarn: false,
|
|
41
|
+
pnpm: false,
|
|
42
|
+
npmLockFile: false,
|
|
43
|
+
yarnLockFile: true,
|
|
44
|
+
pnpmLockFile: false,
|
|
45
|
+
expectedPackageManager: "npm",
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
npm: true,
|
|
49
|
+
yarn: false,
|
|
50
|
+
pnpm: false,
|
|
51
|
+
npmLockFile: true,
|
|
52
|
+
yarnLockFile: true,
|
|
53
|
+
pnpmLockFile: false,
|
|
54
|
+
expectedPackageManager: "npm",
|
|
55
|
+
},
|
|
56
|
+
|
|
57
|
+
// yarn binary only
|
|
58
|
+
{
|
|
59
|
+
npm: false,
|
|
60
|
+
yarn: true,
|
|
61
|
+
pnpm: false,
|
|
62
|
+
npmLockFile: false,
|
|
63
|
+
yarnLockFile: false,
|
|
64
|
+
pnpmLockFile: false,
|
|
65
|
+
expectedPackageManager: "yarn",
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
npm: false,
|
|
69
|
+
yarn: true,
|
|
70
|
+
pnpm: false,
|
|
71
|
+
npmLockFile: true,
|
|
72
|
+
yarnLockFile: false,
|
|
73
|
+
pnpmLockFile: false,
|
|
74
|
+
expectedPackageManager: "yarn",
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
npm: false,
|
|
78
|
+
yarn: true,
|
|
79
|
+
pnpm: false,
|
|
80
|
+
npmLockFile: false,
|
|
81
|
+
yarnLockFile: true,
|
|
82
|
+
pnpmLockFile: false,
|
|
83
|
+
expectedPackageManager: "yarn",
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
npm: false,
|
|
87
|
+
yarn: true,
|
|
88
|
+
pnpm: false,
|
|
89
|
+
npmLockFile: true,
|
|
90
|
+
yarnLockFile: true,
|
|
91
|
+
pnpmLockFile: false,
|
|
92
|
+
expectedPackageManager: "yarn",
|
|
93
|
+
},
|
|
94
|
+
|
|
95
|
+
// pnpm binary only
|
|
96
|
+
{
|
|
97
|
+
npm: false,
|
|
98
|
+
yarn: false,
|
|
99
|
+
pnpm: true,
|
|
100
|
+
npmLockFile: false,
|
|
101
|
+
yarnLockFile: false,
|
|
102
|
+
pnpmLockFile: true,
|
|
103
|
+
expectedPackageManager: "pnpm",
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
npm: false,
|
|
107
|
+
yarn: false,
|
|
108
|
+
pnpm: true,
|
|
109
|
+
npmLockFile: true,
|
|
110
|
+
yarnLockFile: false,
|
|
111
|
+
pnpmLockFile: false,
|
|
112
|
+
expectedPackageManager: "pnpm",
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
npm: false,
|
|
116
|
+
yarn: false,
|
|
117
|
+
pnpm: true,
|
|
118
|
+
npmLockFile: false,
|
|
119
|
+
yarnLockFile: true,
|
|
120
|
+
pnpmLockFile: false,
|
|
121
|
+
expectedPackageManager: "pnpm",
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
npm: false,
|
|
125
|
+
yarn: false,
|
|
126
|
+
pnpm: true,
|
|
127
|
+
npmLockFile: true,
|
|
128
|
+
yarnLockFile: true,
|
|
129
|
+
pnpmLockFile: true,
|
|
130
|
+
expectedPackageManager: "pnpm",
|
|
131
|
+
},
|
|
132
|
+
|
|
133
|
+
// npm and yarn binaries
|
|
134
|
+
{
|
|
135
|
+
npm: true,
|
|
136
|
+
yarn: true,
|
|
137
|
+
pnpm: false,
|
|
138
|
+
npmLockFile: false,
|
|
139
|
+
yarnLockFile: false,
|
|
140
|
+
pnpmLockFile: false,
|
|
141
|
+
expectedPackageManager: "npm",
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
npm: true,
|
|
145
|
+
yarn: true,
|
|
146
|
+
pnpm: false,
|
|
147
|
+
npmLockFile: true,
|
|
148
|
+
yarnLockFile: false,
|
|
149
|
+
pnpmLockFile: false,
|
|
150
|
+
expectedPackageManager: "npm",
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
npm: true,
|
|
154
|
+
yarn: true,
|
|
155
|
+
pnpm: false,
|
|
156
|
+
npmLockFile: false,
|
|
157
|
+
yarnLockFile: true,
|
|
158
|
+
pnpmLockFile: false,
|
|
159
|
+
expectedPackageManager: "yarn",
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
npm: true,
|
|
163
|
+
yarn: true,
|
|
164
|
+
pnpm: false,
|
|
165
|
+
npmLockFile: true,
|
|
166
|
+
yarnLockFile: true,
|
|
167
|
+
pnpmLockFile: false,
|
|
168
|
+
expectedPackageManager: "npm",
|
|
169
|
+
},
|
|
170
|
+
// npm, yarn and pnpm binaries
|
|
171
|
+
{
|
|
172
|
+
npm: true,
|
|
173
|
+
yarn: true,
|
|
174
|
+
pnpm: true,
|
|
175
|
+
npmLockFile: false,
|
|
176
|
+
yarnLockFile: false,
|
|
177
|
+
pnpmLockFile: false,
|
|
178
|
+
expectedPackageManager: "npm",
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
npm: true,
|
|
182
|
+
yarn: true,
|
|
183
|
+
pnpm: true,
|
|
184
|
+
npmLockFile: true,
|
|
185
|
+
yarnLockFile: false,
|
|
186
|
+
pnpmLockFile: false,
|
|
187
|
+
expectedPackageManager: "npm",
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
npm: true,
|
|
191
|
+
yarn: true,
|
|
192
|
+
pnpm: true,
|
|
193
|
+
npmLockFile: false,
|
|
194
|
+
yarnLockFile: true,
|
|
195
|
+
pnpmLockFile: false,
|
|
196
|
+
expectedPackageManager: "yarn",
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
npm: true,
|
|
200
|
+
yarn: true,
|
|
201
|
+
pnpm: true,
|
|
202
|
+
npmLockFile: false,
|
|
203
|
+
yarnLockFile: false,
|
|
204
|
+
pnpmLockFile: true,
|
|
205
|
+
expectedPackageManager: "pnpm",
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
npm: true,
|
|
209
|
+
yarn: true,
|
|
210
|
+
pnpm: true,
|
|
211
|
+
npmLockFile: true,
|
|
212
|
+
yarnLockFile: true,
|
|
213
|
+
pnpmLockFile: true,
|
|
214
|
+
expectedPackageManager: "npm",
|
|
215
|
+
},
|
|
216
|
+
];
|
|
217
|
+
|
|
218
|
+
describe("getPackageManager()", () => {
|
|
219
|
+
runInTempDir();
|
|
220
|
+
mockConsoleMethods();
|
|
221
|
+
|
|
222
|
+
describe("no supported package manager", () => {
|
|
223
|
+
mockYarn(false);
|
|
224
|
+
mockNpm(false);
|
|
225
|
+
mockPnpm(false);
|
|
226
|
+
|
|
227
|
+
it("should throw an error", async () => {
|
|
228
|
+
await expect(() =>
|
|
229
|
+
getPackageManager(process.cwd())
|
|
230
|
+
).rejects.toThrowErrorMatchingInlineSnapshot(
|
|
231
|
+
`"Unable to find a package manager. Supported managers are: npm, yarn, and pnpm."`
|
|
232
|
+
);
|
|
233
|
+
});
|
|
234
|
+
});
|
|
235
|
+
|
|
236
|
+
for (const {
|
|
237
|
+
npm,
|
|
238
|
+
yarn,
|
|
239
|
+
pnpm,
|
|
240
|
+
npmLockFile,
|
|
241
|
+
yarnLockFile,
|
|
242
|
+
pnpmLockFile,
|
|
243
|
+
expectedPackageManager,
|
|
244
|
+
} of testCases) {
|
|
245
|
+
describe(
|
|
246
|
+
getTestCaseDescription(
|
|
247
|
+
npm,
|
|
248
|
+
yarn,
|
|
249
|
+
pnpm,
|
|
250
|
+
npmLockFile,
|
|
251
|
+
yarnLockFile,
|
|
252
|
+
pnpmLockFile
|
|
253
|
+
),
|
|
254
|
+
() => {
|
|
255
|
+
mockYarn(yarn);
|
|
256
|
+
mockNpm(npm);
|
|
257
|
+
mockPnpm(pnpm);
|
|
258
|
+
mockLockFiles(npmLockFile, yarnLockFile, pnpmLockFile);
|
|
259
|
+
|
|
260
|
+
it(`should return the ${expectedPackageManager} package manager`, async () => {
|
|
261
|
+
const actualPackageManager = await getPackageManager(process.cwd());
|
|
262
|
+
expect(getPackageManagerName(actualPackageManager)).toEqual(
|
|
263
|
+
expectedPackageManager
|
|
264
|
+
);
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
);
|
|
268
|
+
}
|
|
269
|
+
});
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* Create a fake yarn binary
|
|
273
|
+
*/
|
|
274
|
+
function mockYarn(succeed: boolean): void {
|
|
275
|
+
let unMock: () => void;
|
|
276
|
+
beforeEach(async () => {
|
|
277
|
+
unMock = await mockBinary("yarn", `process.exit(${succeed ? 0 : 1})`);
|
|
278
|
+
});
|
|
279
|
+
afterEach(() => unMock());
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* Create a fake npm binary
|
|
284
|
+
*/
|
|
285
|
+
function mockNpm(succeed: boolean): void {
|
|
286
|
+
let unMock: () => void;
|
|
287
|
+
beforeEach(async () => {
|
|
288
|
+
unMock = await mockBinary("npm", `process.exit(${succeed ? 0 : 1})`);
|
|
289
|
+
});
|
|
290
|
+
afterEach(() => unMock());
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* Create a fake pnpm binary
|
|
295
|
+
*/
|
|
296
|
+
function mockPnpm(succeed: boolean): void {
|
|
297
|
+
let unMock: () => void;
|
|
298
|
+
beforeEach(async () => {
|
|
299
|
+
unMock = await mockBinary("pnpm", `process.exit(${succeed ? 0 : 1})`);
|
|
300
|
+
});
|
|
301
|
+
afterEach(() => unMock());
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* Create a fake lock files.
|
|
306
|
+
*/
|
|
307
|
+
function mockLockFiles(
|
|
308
|
+
npmLockFile: boolean,
|
|
309
|
+
yarnLockFile: boolean,
|
|
310
|
+
pnpmLockFile: boolean
|
|
311
|
+
) {
|
|
312
|
+
beforeEach(() => {
|
|
313
|
+
if (npmLockFile) {
|
|
314
|
+
writeFileSync("package-lock.json", "");
|
|
315
|
+
}
|
|
316
|
+
if (yarnLockFile) {
|
|
317
|
+
writeFileSync("yarn.lock", "");
|
|
318
|
+
}
|
|
319
|
+
if (pnpmLockFile) {
|
|
320
|
+
writeFileSync("pnpm-lock.yaml", "");
|
|
321
|
+
}
|
|
322
|
+
});
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
function getTestCaseDescription(
|
|
326
|
+
npm: boolean,
|
|
327
|
+
yarn: boolean,
|
|
328
|
+
pnpm: boolean,
|
|
329
|
+
npmLockFile: boolean,
|
|
330
|
+
yarnLockFile: boolean,
|
|
331
|
+
pnpmLockFile: boolean
|
|
332
|
+
): string {
|
|
333
|
+
const criteria: string[] = [];
|
|
334
|
+
if (npm) {
|
|
335
|
+
criteria.push("npm");
|
|
336
|
+
}
|
|
337
|
+
if (npmLockFile) {
|
|
338
|
+
criteria.push("package-lock.json");
|
|
339
|
+
}
|
|
340
|
+
if (yarn) {
|
|
341
|
+
criteria.push("yarn");
|
|
342
|
+
}
|
|
343
|
+
if (yarnLockFile) {
|
|
344
|
+
criteria.push("yarn.lock");
|
|
345
|
+
}
|
|
346
|
+
if (pnpm) {
|
|
347
|
+
criteria.push("pnpm");
|
|
348
|
+
}
|
|
349
|
+
if (pnpmLockFile) {
|
|
350
|
+
criteria.push("pnpm-lock.yaml");
|
|
351
|
+
}
|
|
352
|
+
return "using " + criteria.join("; ");
|
|
353
|
+
}
|