wrangler 0.0.0-e178d6fb → 0.0.0-e1c2f5b9

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.
Files changed (239) hide show
  1. package/README.md +16 -2
  2. package/bin/wrangler.js +31 -11
  3. package/miniflare-dist/index.mjs +1340 -330
  4. package/package.json +40 -13
  5. package/src/__tests__/access.test.ts +25 -0
  6. package/src/__tests__/api-dev.test.ts +238 -0
  7. package/src/__tests__/api-devregistry.test.js +64 -0
  8. package/src/__tests__/api.test.ts +80 -0
  9. package/src/__tests__/configuration.test.ts +683 -470
  10. package/src/__tests__/d1.test.ts +123 -0
  11. package/src/__tests__/delete.test.ts +263 -0
  12. package/src/__tests__/deployments.test.ts +105 -0
  13. package/src/__tests__/dev.test.tsx +453 -70
  14. package/src/__tests__/dialogs.test.tsx +40 -0
  15. package/src/__tests__/generate.test.ts +235 -0
  16. package/src/__tests__/get-host-from-url.test.ts +16 -0
  17. package/src/__tests__/helpers/mock-auth-domain.ts +20 -0
  18. package/src/__tests__/helpers/mock-cfetch.ts +92 -26
  19. package/src/__tests__/helpers/mock-console.ts +11 -2
  20. package/src/__tests__/helpers/mock-dialogs.ts +1 -1
  21. package/src/__tests__/helpers/mock-get-zone-from-host.ts +8 -0
  22. package/src/__tests__/helpers/mock-known-routes.ts +7 -0
  23. package/src/__tests__/helpers/mock-kv.ts +1 -1
  24. package/src/__tests__/helpers/mock-oauth-flow.ts +74 -53
  25. package/src/__tests__/helpers/mock-process.ts +8 -13
  26. package/src/__tests__/helpers/msw/handlers/access.ts +13 -0
  27. package/src/__tests__/helpers/msw/handlers/deployments.ts +59 -0
  28. package/src/__tests__/helpers/msw/handlers/namespaces.ts +104 -0
  29. package/src/__tests__/helpers/msw/handlers/oauth.ts +31 -0
  30. package/src/__tests__/helpers/msw/handlers/r2.ts +80 -0
  31. package/src/__tests__/helpers/msw/handlers/script.ts +75 -0
  32. package/src/__tests__/helpers/msw/handlers/user.ts +63 -0
  33. package/src/__tests__/helpers/msw/handlers/zones.ts +22 -0
  34. package/src/__tests__/helpers/msw/index.ts +21 -0
  35. package/src/__tests__/helpers/worker-scripts/child-wrangler.toml +1 -0
  36. package/src/__tests__/helpers/worker-scripts/hello-world-worker.js +5 -0
  37. package/src/__tests__/helpers/worker-scripts/hello-world-wrangler.toml +1 -0
  38. package/src/__tests__/helpers/worker-scripts/parent-worker.js +8 -0
  39. package/src/__tests__/helpers/worker-scripts/parent-wrangler.toml +5 -0
  40. package/src/__tests__/index.test.ts +103 -97
  41. package/src/__tests__/init.test.ts +1484 -382
  42. package/src/__tests__/jest.setup.ts +88 -5
  43. package/src/__tests__/kv.test.ts +655 -540
  44. package/src/__tests__/logout.test.ts +47 -0
  45. package/src/__tests__/metrics.test.ts +95 -45
  46. package/src/__tests__/middleware.scheduled.test.ts +145 -0
  47. package/src/__tests__/middleware.test.ts +750 -0
  48. package/src/__tests__/pages-deployment-tail.test.ts +884 -0
  49. package/src/__tests__/pages.test.ts +1301 -119
  50. package/src/__tests__/paths.test.ts +39 -0
  51. package/src/__tests__/publish.test.ts +2266 -1180
  52. package/src/__tests__/pubsub.test.ts +211 -88
  53. package/src/__tests__/queues.test.ts +522 -0
  54. package/src/__tests__/r2.test.ts +363 -203
  55. package/src/__tests__/secret.test.ts +261 -59
  56. package/src/__tests__/tail.test.ts +352 -151
  57. package/src/__tests__/test-old-node-version.js +3 -3
  58. package/src/__tests__/tsconfig-sanity.ts +12 -0
  59. package/src/__tests__/tsconfig.json +8 -0
  60. package/src/__tests__/tsconfig.tsbuildinfo +1 -0
  61. package/src/__tests__/type-generation.test.ts +233 -0
  62. package/src/__tests__/user.test.ts +59 -73
  63. package/src/__tests__/utils-collectKeyValues.test.ts +47 -0
  64. package/src/__tests__/validate-dev-props.test.ts +56 -0
  65. package/src/__tests__/whoami.test.tsx +114 -66
  66. package/src/__tests__/worker-namespace.test.ts +154 -155
  67. package/src/api/dev.ts +170 -38
  68. package/src/api/index.ts +1 -0
  69. package/src/bundle-reporter.tsx +41 -2
  70. package/src/bundle.ts +668 -81
  71. package/src/cfetch/index.ts +40 -3
  72. package/src/cfetch/internal.ts +144 -32
  73. package/src/cli.ts +4 -3
  74. package/src/config/config.ts +27 -3
  75. package/src/config/environment.ts +131 -7
  76. package/src/config/index.ts +128 -8
  77. package/src/config/validation-helpers.ts +19 -6
  78. package/src/config/validation.ts +411 -14
  79. package/src/config-cache.ts +3 -2
  80. package/src/create-worker-preview.ts +31 -6
  81. package/src/create-worker-upload-form.ts +84 -22
  82. package/src/d1/backups.tsx +223 -0
  83. package/src/d1/constants.ts +2 -0
  84. package/src/d1/create.tsx +63 -0
  85. package/src/d1/delete.tsx +56 -0
  86. package/src/d1/execute.tsx +352 -0
  87. package/src/d1/formatTimeAgo.ts +14 -0
  88. package/src/d1/index.ts +101 -0
  89. package/src/d1/list.tsx +48 -0
  90. package/src/d1/migrations/apply.tsx +196 -0
  91. package/src/d1/migrations/create.tsx +77 -0
  92. package/src/d1/migrations/helpers.ts +147 -0
  93. package/src/d1/migrations/index.tsx +3 -0
  94. package/src/d1/migrations/list.tsx +79 -0
  95. package/src/d1/migrations/options.ts +18 -0
  96. package/src/d1/options.ts +22 -0
  97. package/src/d1/types.tsx +24 -0
  98. package/src/d1/utils.ts +48 -0
  99. package/src/delete.ts +108 -0
  100. package/src/deployments.ts +83 -0
  101. package/src/deprecated/index.ts +145 -0
  102. package/src/dev/dev-vars.ts +11 -8
  103. package/src/dev/dev.tsx +220 -58
  104. package/src/dev/get-local-persistence-path.tsx +31 -0
  105. package/src/dev/local.tsx +740 -181
  106. package/src/dev/remote.tsx +340 -123
  107. package/src/dev/start-server.ts +543 -0
  108. package/src/dev/use-esbuild.ts +61 -7
  109. package/src/dev/validate-dev-props.ts +31 -0
  110. package/src/dev-registry.tsx +201 -0
  111. package/src/dev.tsx +614 -258
  112. package/src/dialogs.tsx +41 -8
  113. package/src/{worker-namespace.ts → dispatch-namespace.ts} +23 -22
  114. package/src/docs/index.ts +97 -0
  115. package/src/entry.ts +3 -2
  116. package/src/environment-variables/factory.ts +88 -0
  117. package/src/environment-variables/misc-variables.ts +30 -0
  118. package/src/generate/index.ts +300 -0
  119. package/src/git-client.ts +100 -7
  120. package/src/index.tsx +249 -1560
  121. package/src/init.ts +626 -150
  122. package/src/inspect.ts +137 -32
  123. package/src/{metrics/is-ci.ts → is-ci.ts} +0 -0
  124. package/src/is-interactive.ts +4 -0
  125. package/src/jest.d.ts +4 -0
  126. package/src/{kv.ts → kv/helpers.ts} +3 -3
  127. package/src/kv/index.ts +596 -0
  128. package/src/logger.ts +27 -8
  129. package/src/metrics/index.ts +1 -0
  130. package/src/metrics/metrics-config.ts +4 -4
  131. package/src/metrics/metrics-dispatcher.ts +1 -0
  132. package/src/metrics/metrics-usage-headers.ts +24 -0
  133. package/src/metrics/send-event.ts +13 -8
  134. package/src/miniflare-cli/assets.ts +172 -465
  135. package/src/miniflare-cli/index.ts +149 -24
  136. package/src/miniflare-cli/tsconfig.json +9 -0
  137. package/src/miniflare-cli/tsconfig.tsbuildinfo +1 -0
  138. package/src/miniflare-cli/types.ts +11 -0
  139. package/src/module-collection.ts +12 -3
  140. package/src/pages/build.tsx +108 -42
  141. package/src/pages/constants.ts +11 -0
  142. package/src/pages/deployment-tails.tsx +284 -0
  143. package/src/pages/deployments.tsx +9 -31
  144. package/src/pages/dev.tsx +417 -108
  145. package/src/pages/errors.ts +66 -0
  146. package/src/pages/functions/buildPlugin.ts +86 -84
  147. package/src/pages/functions/buildWorker.ts +121 -106
  148. package/src/pages/functions/routes-consolidation.test.ts +250 -0
  149. package/src/pages/functions/routes-consolidation.ts +73 -0
  150. package/src/pages/functions/routes-transformation.test.ts +282 -0
  151. package/src/pages/functions/routes-transformation.ts +115 -0
  152. package/src/pages/functions/routes-validation.test.ts +403 -0
  153. package/src/pages/functions/routes-validation.ts +202 -0
  154. package/src/pages/functions/tsconfig.json +8 -0
  155. package/src/pages/functions/tsconfig.tsbuildinfo +1 -0
  156. package/src/pages/functions.tsx +82 -0
  157. package/src/pages/hash.tsx +13 -0
  158. package/src/pages/index.tsx +73 -55
  159. package/src/pages/projects.tsx +9 -3
  160. package/src/pages/prompt-select-project.tsx +31 -0
  161. package/src/pages/publish.tsx +183 -60
  162. package/src/pages/types.ts +1 -0
  163. package/src/pages/upload.tsx +107 -56
  164. package/src/pages/utils.ts +13 -2
  165. package/src/paths.ts +49 -4
  166. package/src/proxy.ts +375 -157
  167. package/src/publish/index.ts +270 -0
  168. package/src/{publish.ts → publish/publish.ts} +431 -188
  169. package/src/pubsub/pubsub-commands.tsx +4 -3
  170. package/src/queues/cli/commands/consumer/add.ts +71 -0
  171. package/src/queues/cli/commands/consumer/index.ts +22 -0
  172. package/src/queues/cli/commands/consumer/remove.ts +38 -0
  173. package/src/queues/cli/commands/create.ts +25 -0
  174. package/src/queues/cli/commands/delete.ts +26 -0
  175. package/src/queues/cli/commands/index.ts +36 -0
  176. package/src/queues/cli/commands/list.ts +25 -0
  177. package/src/queues/client.ts +135 -0
  178. package/src/queues/utils.ts +18 -0
  179. package/src/r2/constants.ts +4 -0
  180. package/src/r2/helpers.ts +131 -0
  181. package/src/r2/index.ts +289 -0
  182. package/src/routes.ts +140 -0
  183. package/src/secret/index.ts +379 -0
  184. package/src/sites.tsx +3 -3
  185. package/src/tail/createTail.ts +379 -0
  186. package/src/tail/filters.ts +4 -6
  187. package/src/tail/index.ts +199 -284
  188. package/src/tail/printing.ts +43 -3
  189. package/src/tsconfig-sanity.ts +16 -0
  190. package/src/type-generation.ts +181 -0
  191. package/src/user/access.ts +68 -0
  192. package/src/user/auth-variables.ts +113 -0
  193. package/src/user/choose-account.tsx +1 -1
  194. package/src/user/index.ts +0 -1
  195. package/src/user/user.tsx +116 -49
  196. package/src/utils/collectKeyValues.ts +14 -0
  197. package/src/whoami.tsx +80 -2
  198. package/src/worker.ts +69 -9
  199. package/src/yargs-types.ts +24 -0
  200. package/src/zones.ts +124 -9
  201. package/templates/__tests__/pages-dev-util.test.ts +128 -0
  202. package/templates/__tests__/tsconfig-sanity.ts +12 -0
  203. package/templates/__tests__/tsconfig.json +8 -0
  204. package/templates/__tests__/tsconfig.tsbuildinfo +1 -0
  205. package/templates/d1-beta-facade.js +205 -0
  206. package/templates/facade.d.ts +14 -0
  207. package/templates/first-party-worker-module-facade.ts +19 -0
  208. package/templates/format-dev-errors.ts +33 -0
  209. package/templates/init-tests/test-jest-new-worker.js +23 -0
  210. package/templates/init-tests/test-vitest-new-worker.js +24 -0
  211. package/templates/init-tests/test-vitest-new-worker.ts +25 -0
  212. package/templates/middleware/common.ts +62 -0
  213. package/templates/middleware/loader-modules.ts +82 -0
  214. package/templates/middleware/loader-sw.ts +233 -0
  215. package/templates/middleware/middleware-miniflare3-json-error.ts +20 -0
  216. package/templates/middleware/middleware-pretty-error.ts +40 -0
  217. package/templates/middleware/middleware-scheduled.ts +15 -0
  218. package/templates/new-worker.js +1 -1
  219. package/templates/pages-dev-pipeline.ts +31 -0
  220. package/templates/pages-dev-util.ts +52 -0
  221. package/templates/pages-shim.ts +4 -1
  222. package/templates/pages-template-plugin.ts +21 -5
  223. package/templates/pages-template-worker.ts +37 -9
  224. package/templates/{static-asset-facade.js → serve-static-assets.ts} +23 -7
  225. package/templates/service-bindings-module-facade.js +54 -0
  226. package/templates/service-bindings-sw-facade.js +42 -0
  227. package/templates/tsconfig-sanity.ts +11 -0
  228. package/templates/tsconfig.init.json +106 -0
  229. package/templates/tsconfig.json +5 -102
  230. package/templates/tsconfig.tsbuildinfo +1 -0
  231. package/wrangler-dist/cli.d.ts +621 -42
  232. package/wrangler-dist/cli.js +144441 -102606
  233. package/src/environment-variables.ts +0 -35
  234. package/src/faye-websocket.d.ts +0 -6
  235. package/src/generate.ts +0 -33
  236. package/src/miniflare-cli/enum-keys.ts +0 -17
  237. package/src/preview.ts +0 -31
  238. package/src/r2.ts +0 -50
  239. package/src/user/env-vars.ts +0 -46
@@ -1,7 +1,8 @@
1
1
  import * as fs from "node:fs";
2
+ import { writeFileSync } from "node:fs";
2
3
  import * as TOML from "@iarna/toml";
4
+ import { rest } from "msw";
3
5
  import { mockAccountId, mockApiToken } from "./helpers/mock-account-id";
4
- import { setMockResponse, unsetAllMocks } from "./helpers/mock-cfetch";
5
6
  import { mockConsoleMethods } from "./helpers/mock-console";
6
7
  import {
7
8
  mockConfirm,
@@ -9,14 +10,38 @@ import {
9
10
  clearConfirmMocks,
10
11
  clearPromptMocks,
11
12
  } from "./helpers/mock-dialogs";
12
- import {
13
- mockGetMemberships,
14
- mockGetMembershipsFail,
15
- } from "./helpers/mock-oauth-flow";
16
13
  import { useMockStdin } from "./helpers/mock-stdin";
14
+ import { msw } from "./helpers/msw";
17
15
  import { runInTempDir } from "./helpers/run-in-tmp";
18
16
  import { runWrangler } from "./helpers/run-wrangler";
19
17
 
18
+ function createFetchResult(result: unknown, success = true) {
19
+ return {
20
+ success,
21
+ errors: [],
22
+ messages: [],
23
+ result,
24
+ };
25
+ }
26
+
27
+ export function mockGetMembershipsFail() {
28
+ msw.use(
29
+ rest.get("*/memberships", (req, res, ctx) => {
30
+ return res.once(ctx.json(createFetchResult([], false)));
31
+ })
32
+ );
33
+ }
34
+
35
+ export function mockGetMemberships(
36
+ accounts: { id: string; account: { id: string; name: string } }[]
37
+ ) {
38
+ msw.use(
39
+ rest.get("*/memberships", (req, res, ctx) => {
40
+ return res.once(ctx.json(createFetchResult(accounts)));
41
+ })
42
+ );
43
+ }
44
+
20
45
  describe("wrangler secret", () => {
21
46
  const std = mockConsoleMethods();
22
47
 
@@ -25,7 +50,6 @@ describe("wrangler secret", () => {
25
50
  mockApiToken();
26
51
 
27
52
  afterEach(() => {
28
- unsetAllMocks();
29
53
  clearConfirmMocks();
30
54
  clearPromptMocks();
31
55
  });
@@ -38,24 +62,25 @@ describe("wrangler secret", () => {
38
62
  ) {
39
63
  const servicesOrScripts = env && !legacyEnv ? "services" : "scripts";
40
64
  const environment = env && !legacyEnv ? "/environments/:envName" : "";
41
- setMockResponse(
42
- `/accounts/:accountId/workers/${servicesOrScripts}/:scriptName${environment}/secrets`,
43
- "PUT",
44
- ([_url, accountId, scriptName, envName], { body }) => {
45
- expect(accountId).toEqual("some-account-id");
46
- expect(scriptName).toEqual(
47
- legacyEnv && env ? `script-name-${env}` : "script-name"
48
- );
49
- if (!legacyEnv) {
50
- expect(envName).toEqual(env);
51
- }
52
- const { name, text, type } = JSON.parse(body as string);
53
- expect(type).toEqual("secret_text");
54
- expect(name).toEqual(input.name);
55
- expect(text).toEqual(input.text);
65
+ msw.use(
66
+ rest.put(
67
+ `*/accounts/:accountId/workers/${servicesOrScripts}/:scriptName${environment}/secrets`,
68
+ async (req, res, ctx) => {
69
+ expect(req.params.accountId).toEqual("some-account-id");
70
+ expect(req.params.scriptName).toEqual(
71
+ legacyEnv && env ? `script-name-${env}` : "script-name"
72
+ );
73
+ if (!legacyEnv) {
74
+ expect(req.params.envName).toEqual(env);
75
+ }
76
+ const { name, text, type } = await req.json();
77
+ expect(type).toEqual("secret_text");
78
+ expect(name).toEqual(input.name);
79
+ expect(text).toEqual(input.text);
56
80
 
57
- return { name, type };
58
- }
81
+ return res.once(ctx.json(createFetchResult({ name, type })));
82
+ }
83
+ )
59
84
  );
60
85
  }
61
86
 
@@ -95,6 +120,182 @@ describe("wrangler secret", () => {
95
120
  expect(std.err).toMatchInlineSnapshot(`""`);
96
121
  });
97
122
 
123
+ it("should create secret:bulk", async () => {
124
+ writeFileSync(
125
+ "secret.json",
126
+ JSON.stringify({
127
+ "secret-name-1": "secret_text",
128
+ "secret-name-2": "secret_text",
129
+ })
130
+ );
131
+
132
+ // User counter to pass different secrets to the request mock
133
+ let counter = 0;
134
+ msw.use(
135
+ rest.put(
136
+ `*/accounts/:accountId/workers/scripts/:scriptName/secrets`,
137
+ (req, res, ctx) => {
138
+ expect(req.params.accountId).toEqual("some-account-id");
139
+ counter++;
140
+
141
+ return res(
142
+ ctx.json(
143
+ createFetchResult({
144
+ name: `secret-name-${counter}`,
145
+ type: "secret_text",
146
+ })
147
+ )
148
+ );
149
+ }
150
+ )
151
+ );
152
+
153
+ await runWrangler("secret:bulk ./secret.json --name script-name");
154
+
155
+ expect(std.out).toMatchInlineSnapshot(`
156
+ "🌀 Creating the secrets for the Worker \\"script-name\\"
157
+ ✨ Successfully created secret for key: secret-name-1
158
+ ✨ Successfully created secret for key: secret-name-2
159
+
160
+ Finished processing secrets JSON file:
161
+ ✨ 2 secrets successfully uploaded"
162
+ `);
163
+ expect(std.err).toMatchInlineSnapshot(`""`);
164
+ });
165
+
166
+ it("should handle network failure on secret:bulk", async () => {
167
+ writeFileSync(
168
+ "secret.json",
169
+ JSON.stringify({
170
+ "secret-name-1": "secret_text",
171
+ "secret-name-2": "secret_text",
172
+ })
173
+ );
174
+
175
+ // User counter to pass different secrets to the request mock
176
+ let counter = 0;
177
+ msw.use(
178
+ rest.put(
179
+ `*/accounts/:accountId/workers/scripts/:scriptName/secrets`,
180
+ (req, res) => {
181
+ expect(req.params.accountId).toEqual("some-account-id");
182
+ counter++;
183
+
184
+ return res.networkError(`Failed to create secret ${counter}`);
185
+ }
186
+ )
187
+ );
188
+
189
+ await runWrangler("secret:bulk ./secret.json --name script-name");
190
+
191
+ expect(std.out).toMatchInlineSnapshot(`
192
+ "🌀 Creating the secrets for the Worker \\"script-name\\"
193
+
194
+ Finished processing secrets JSON file:
195
+ ✨ 0 secrets successfully uploaded
196
+ 🚨 2 secrets failed to upload"
197
+ `);
198
+ expect(std.err).toMatchInlineSnapshot(`
199
+ "X [ERROR] 🚨 Error uploading secret for key: secret-name-1:
200
+
201
+ request to
202
+ https://api.cloudflare.com/client/v4/accounts/some-account-id/workers/scripts/script-name/secrets
203
+ failed, reason: Failed to create secret 1
204
+
205
+
206
+ X [ERROR] 🚨 Error uploading secret for key: secret-name-2:
207
+
208
+ request to
209
+ https://api.cloudflare.com/client/v4/accounts/some-account-id/workers/scripts/script-name/secrets
210
+ failed, reason: Failed to create secret 2
211
+
212
+ "
213
+ `);
214
+ });
215
+
216
+ it("should count success and network failure on secret:bulk", async () => {
217
+ writeFileSync(
218
+ "secret.json",
219
+ JSON.stringify({
220
+ "secret-name-1": "secret_text",
221
+ "secret-name-2": "secret_text",
222
+ "secret-name-3": "secret_text",
223
+ "secret-name-4": "secret_text",
224
+ "secret-name-5": "secret_text",
225
+ "secret-name-6": "secret_text",
226
+ "secret-name-7": "secret_text",
227
+ })
228
+ );
229
+
230
+ // User counter to pass different secrets to the request mock
231
+ let counter = 0;
232
+ msw.use(
233
+ rest.put(
234
+ `*/accounts/:accountId/workers/scripts/:scriptName/secrets`,
235
+ (req, res, ctx) => {
236
+ expect(req.params.accountId).toEqual("some-account-id");
237
+ counter++;
238
+
239
+ if (counter % 2 === 0) {
240
+ return res(
241
+ ctx.json(
242
+ createFetchResult({
243
+ name: `secret-name-${counter}`,
244
+ type: "secret_text",
245
+ })
246
+ )
247
+ );
248
+ } else {
249
+ return res.networkError(`Failed to create secret ${counter}`);
250
+ }
251
+ }
252
+ )
253
+ );
254
+
255
+ await runWrangler("secret:bulk ./secret.json --name script-name");
256
+
257
+ expect(std.out).toMatchInlineSnapshot(`
258
+ "🌀 Creating the secrets for the Worker \\"script-name\\"
259
+ ✨ Successfully created secret for key: secret-name-2
260
+ ✨ Successfully created secret for key: secret-name-4
261
+ ✨ Successfully created secret for key: secret-name-6
262
+
263
+ Finished processing secrets JSON file:
264
+ ✨ 3 secrets successfully uploaded
265
+ 🚨 4 secrets failed to upload"
266
+ `);
267
+ expect(std.err).toMatchInlineSnapshot(`
268
+ "X [ERROR] 🚨 Error uploading secret for key: secret-name-1:
269
+
270
+ request to
271
+ https://api.cloudflare.com/client/v4/accounts/some-account-id/workers/scripts/script-name/secrets
272
+ failed, reason: Failed to create secret 1
273
+
274
+
275
+ X [ERROR] 🚨 Error uploading secret for key: secret-name-3:
276
+
277
+ request to
278
+ https://api.cloudflare.com/client/v4/accounts/some-account-id/workers/scripts/script-name/secrets
279
+ failed, reason: Failed to create secret 3
280
+
281
+
282
+ X [ERROR] 🚨 Error uploading secret for key: secret-name-5:
283
+
284
+ request to
285
+ https://api.cloudflare.com/client/v4/accounts/some-account-id/workers/scripts/script-name/secrets
286
+ failed, reason: Failed to create secret 5
287
+
288
+
289
+ X [ERROR] 🚨 Error uploading secret for key: secret-name-7:
290
+
291
+ request to
292
+ https://api.cloudflare.com/client/v4/accounts/some-account-id/workers/scripts/script-name/secrets
293
+ failed, reason: Failed to create secret 7
294
+
295
+ "
296
+ `);
297
+ });
298
+
98
299
  it("should create a secret: legacy envs", async () => {
99
300
  mockPrompt({
100
301
  text: "Enter a secret value:",
@@ -294,26 +495,22 @@ describe("wrangler secret", () => {
294
495
  ) {
295
496
  const servicesOrScripts = env && !legacyEnv ? "services" : "scripts";
296
497
  const environment = env && !legacyEnv ? "/environments/:envName" : "";
297
- setMockResponse(
298
- `/accounts/:accountId/workers/${servicesOrScripts}/:scriptName${environment}/secrets/:secretName`,
299
- "DELETE",
300
- ([_url, accountId, scriptName, envOrSecretName, secretName]) => {
301
- expect(accountId).toEqual("some-account-id");
302
- expect(scriptName).toEqual(
303
- legacyEnv && env ? `script-name-${env}` : "script-name"
304
- );
305
- if (!legacyEnv) {
306
- if (env) {
307
- expect(envOrSecretName).toEqual(env);
308
- expect(secretName).toEqual(input.secretName);
309
- } else {
310
- expect(envOrSecretName).toEqual(input.secretName);
498
+ msw.use(
499
+ rest.delete(
500
+ `*/accounts/:accountId/workers/${servicesOrScripts}/:scriptName${environment}/secrets/:secretName`,
501
+ (req, res, ctx) => {
502
+ expect(req.params.accountId).toEqual("some-account-id");
503
+ expect(req.params.scriptName).toEqual(
504
+ legacyEnv && env ? `script-name-${env}` : "script-name"
505
+ );
506
+ if (!legacyEnv) {
507
+ if (env) {
508
+ expect(req.params.secretName).toEqual(input.secretName);
509
+ }
311
510
  }
312
- } else {
313
- expect(envOrSecretName).toEqual(input.secretName);
511
+ return res.once(ctx.json(createFetchResult(null)));
314
512
  }
315
- return null;
316
- }
513
+ )
317
514
  );
318
515
  }
319
516
  it("should delete a secret", async () => {
@@ -400,25 +597,30 @@ describe("wrangler secret", () => {
400
597
  ) {
401
598
  const servicesOrScripts = env && !legacyEnv ? "services" : "scripts";
402
599
  const environment = env && !legacyEnv ? "/environments/:envName" : "";
403
- setMockResponse(
404
- `/accounts/:accountId/workers/${servicesOrScripts}/:scriptName${environment}/secrets`,
405
- "GET",
406
- ([_url, accountId, scriptName, envName]) => {
407
- expect(accountId).toEqual("some-account-id");
408
- expect(scriptName).toEqual(
409
- legacyEnv && env ? `script-name-${env}` : "script-name"
410
- );
411
- if (!legacyEnv) {
412
- expect(envName).toEqual(env);
413
- }
600
+ msw.use(
601
+ rest.get(
602
+ `*/accounts/:accountId/workers/${servicesOrScripts}/:scriptName${environment}/secrets`,
603
+ (req, res, ctx) => {
604
+ expect(req.params.accountId).toEqual("some-account-id");
605
+ expect(req.params.scriptName).toEqual(
606
+ legacyEnv && env ? `script-name-${env}` : "script-name"
607
+ );
608
+ if (!legacyEnv) {
609
+ expect(req.params.envName).toEqual(env);
610
+ }
414
611
 
415
- return [
416
- {
417
- name: "the-secret-name",
418
- type: "secret_text",
419
- },
420
- ];
421
- }
612
+ return res.once(
613
+ ctx.json(
614
+ createFetchResult([
615
+ {
616
+ name: "the-secret-name",
617
+ type: "secret_text",
618
+ },
619
+ ])
620
+ )
621
+ );
622
+ }
623
+ )
422
624
  );
423
625
  }
424
626