wrangler 2.4.3 → 2.5.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,14 +1,10 @@
1
- import { type QueueResponse, type PostConsumerBody } from "../queues/client";
1
+ import { rest } from "msw";
2
2
  import { mockAccountId, mockApiToken } from "./helpers/mock-account-id";
3
- import {
4
- createFetchResult,
5
- setMockRawResponse,
6
- setMockResponse,
7
- unsetAllMocks,
8
- } from "./helpers/mock-cfetch";
9
3
  import { mockConsoleMethods } from "./helpers/mock-console";
4
+ import { msw } from "./helpers/msw";
10
5
  import { runInTempDir } from "./helpers/run-in-tmp";
11
6
  import { runWrangler } from "./helpers/run-wrangler";
7
+ import type { QueueResponse, PostConsumerBody } from "../queues/client";
12
8
 
13
9
  describe("wrangler", () => {
14
10
  mockAccountId();
@@ -16,10 +12,6 @@ describe("wrangler", () => {
16
12
  runInTempDir();
17
13
  const std = mockConsoleMethods();
18
14
 
19
- afterEach(() => {
20
- unsetAllMocks();
21
- });
22
-
23
15
  describe("queues", () => {
24
16
  it("should show the correct help text", async () => {
25
17
  await runWrangler("queues --help");
@@ -46,15 +38,24 @@ describe("wrangler", () => {
46
38
  describe("list", () => {
47
39
  function mockListRequest(queues: QueueResponse[], page: number) {
48
40
  const requests = { count: 0 };
49
- setMockResponse(
50
- "/accounts/:accountId/workers/queues",
51
- ([_url, accountId], init, params) => {
52
- requests.count++;
53
- expect(params.get("page")).toEqual((page || 1).toString());
54
- expect(accountId).toEqual("some-account-id");
55
- expect(init).toEqual({});
56
- return queues;
57
- }
41
+ msw.use(
42
+ rest.get(
43
+ "*/accounts/:accountId/workers/queues?*",
44
+ async (request, response, context) => {
45
+ requests.count += 1;
46
+ const query = request.url.searchParams;
47
+ expect(Number(query.get("page"))).toEqual(page);
48
+ expect(await request.text()).toEqual("");
49
+ return response.once(
50
+ context.json({
51
+ success: true,
52
+ errors: [],
53
+ messages: [],
54
+ result: queues,
55
+ })
56
+ );
57
+ }
58
+ )
58
59
  );
59
60
  return requests;
60
61
  }
@@ -121,15 +122,30 @@ describe("wrangler", () => {
121
122
  describe("create", () => {
122
123
  function mockCreateRequest(expectedQueueName: string) {
123
124
  const requests = { count: 0 };
124
- setMockResponse(
125
- "/accounts/:accountId/workers/queues",
126
- "POST",
127
- ([_url, accountId], { body }) => {
128
- expect(accountId).toEqual("some-account-id");
129
- const queueName = JSON.parse(body as string).queue_name;
130
- expect(queueName).toEqual(expectedQueueName);
131
- requests.count += 1;
132
- }
125
+
126
+ msw.use(
127
+ rest.post(
128
+ "*/accounts/:accountId/workers/queues",
129
+ async (request, response, context) => {
130
+ requests.count += 1;
131
+ const body = (await request.json()) as {
132
+ queue_name: string;
133
+ };
134
+ expect(body.queue_name).toEqual(expectedQueueName);
135
+ return response.once(
136
+ context.json({
137
+ success: true,
138
+ errors: [],
139
+ messages: [],
140
+ result: {
141
+ queue_name: expectedQueueName,
142
+ created_on: "01-01-2001",
143
+ modified_on: "01-01-2001",
144
+ },
145
+ })
146
+ );
147
+ }
148
+ )
133
149
  );
134
150
  return requests;
135
151
  }
@@ -165,15 +181,25 @@ describe("wrangler", () => {
165
181
 
166
182
  it("should show link to dash when not enabled", async () => {
167
183
  const queueName = "testQueue";
168
- setMockRawResponse(
169
- "/accounts/:accountId/workers/queues",
170
- ([_url, accountId]) => {
171
- expect(accountId).toEqual("some-account-id");
172
- return createFetchResult(null, false, [
173
- { message: "workers.api.error.unauthorized", code: 10023 },
174
- ]);
175
- }
184
+ msw.use(
185
+ rest.post(
186
+ "*/accounts/:accountId/workers/queues",
187
+ async (request, response, context) => {
188
+ expect(request.params.accountId).toEqual("some-account-id");
189
+ return response.once(
190
+ context.status(403),
191
+ context.json({
192
+ success: false,
193
+ errors: [
194
+ { message: "workers.api.error.unauthorized", code: 10023 },
195
+ ],
196
+ messages: [],
197
+ })
198
+ );
199
+ }
200
+ )
176
201
  );
202
+
177
203
  await expect(
178
204
  runWrangler(`queues create ${queueName}`)
179
205
  ).rejects.toThrowError();
@@ -196,13 +222,23 @@ describe("wrangler", () => {
196
222
  describe("delete", () => {
197
223
  function mockDeleteRequest(expectedQueueName: string) {
198
224
  const requests = { count: 0 };
199
- setMockResponse(
200
- `/accounts/:accountId/workers/queues/${expectedQueueName}`,
201
- "DELETE",
202
- ([_url, accountId]) => {
203
- expect(accountId).toEqual("some-account-id");
204
- requests.count += 1;
205
- }
225
+ msw.use(
226
+ rest.delete(
227
+ "*/accounts/:accountId/workers/queues/:queueName",
228
+ async (request, response, context) => {
229
+ requests.count += 1;
230
+ expect(request.params.queueName).toEqual(expectedQueueName);
231
+ expect(request.params.accountId).toEqual("some-account-id");
232
+ return response.once(
233
+ context.json({
234
+ success: true,
235
+ errors: [],
236
+ messages: [],
237
+ result: {},
238
+ })
239
+ );
240
+ }
241
+ )
206
242
  );
207
243
  return requests;
208
244
  }
@@ -265,14 +301,24 @@ describe("wrangler", () => {
265
301
  expectedBody: PostConsumerBody
266
302
  ) {
267
303
  const requests = { count: 0 };
268
- setMockResponse(
269
- `/accounts/:accountId/workers/queues/${expectedQueueName}/consumers`,
270
- "POST",
271
- ([_url, accountId], { body }) => {
272
- expect(accountId).toEqual("some-account-id");
273
- expect(JSON.parse(body as string)).toEqual(expectedBody);
274
- requests.count += 1;
275
- }
304
+ msw.use(
305
+ rest.post(
306
+ "*/accounts/:accountId/workers/queues/:queueName/consumers",
307
+ async (request, response, context) => {
308
+ requests.count += 1;
309
+ expect(request.params.queueName).toEqual(expectedQueueName);
310
+ expect(request.params.accountId).toEqual("some-account-id");
311
+ expect(await request.json()).toEqual(expectedBody);
312
+ return response.once(
313
+ context.json({
314
+ success: true,
315
+ errors: [],
316
+ messages: [],
317
+ result: {},
318
+ })
319
+ );
320
+ }
321
+ )
276
322
  );
277
323
  return requests;
278
324
  }
@@ -346,15 +392,30 @@ describe("wrangler", () => {
346
392
 
347
393
  it("should show link to dash when not enabled", async () => {
348
394
  const queueName = "testQueue";
349
- setMockRawResponse(
350
- `/accounts/:accountId/workers/queues/${queueName}/consumers`,
351
- ([_url, accountId]) => {
352
- expect(accountId).toEqual("some-account-id");
353
- return createFetchResult(null, false, [
354
- { message: "workers.api.error.unauthorized", code: 10023 },
355
- ]);
356
- }
395
+ msw.use(
396
+ rest.post(
397
+ "*/accounts/:accountId/workers/queues/:queueName/consumers",
398
+ async (request, response, context) => {
399
+ expect(request.params.queueName).toEqual(queueName);
400
+ expect(request.params.accountId).toEqual("some-account-id");
401
+ return response.once(
402
+ context.status(403),
403
+ context.json({
404
+ success: false,
405
+ errors: [
406
+ {
407
+ code: 10023,
408
+ message: "workers.api.error.unauthorized",
409
+ },
410
+ ],
411
+ messages: [],
412
+ result: {},
413
+ })
414
+ );
415
+ }
416
+ )
357
417
  );
418
+
358
419
  await expect(
359
420
  runWrangler(`queues consumer add ${queueName} testScript`)
360
421
  ).rejects.toThrowError();
@@ -380,13 +441,32 @@ describe("wrangler", () => {
380
441
  expectedScriptName: string,
381
442
  expectedEnvName?: string
382
443
  ) {
383
- let resource = `/accounts/:accountId/workers/queues/${expectedQueueName}/consumers/${expectedScriptName}`;
444
+ const requests = { count: 0 };
445
+ let resource = `accounts/:accountId/workers/queues/:expectedQueueName/consumers/:expectedScriptName`;
384
446
  if (expectedEnvName !== undefined) {
385
- resource += `/environments/${expectedEnvName}`;
447
+ resource += `/environments/:expectedEnvName`;
386
448
  }
387
- setMockResponse(resource, "DELETE", ([_url, accountId]) => {
388
- expect(accountId).toEqual("some-account-id");
389
- });
449
+ msw.use(
450
+ rest.delete(`*/${resource}`, async (request, response, context) => {
451
+ requests.count++;
452
+ expect(request.params.accountId).toBe("some-account-id");
453
+ expect(request.params.expectedQueueName).toBe(expectedQueueName);
454
+ expect(request.params.expectedScriptName).toBe(
455
+ expectedScriptName
456
+ );
457
+ return response.once(
458
+ context.status(200),
459
+ context.json({
460
+ success: true,
461
+ errors: [],
462
+ messages: [],
463
+ result: {},
464
+ })
465
+ );
466
+ })
467
+ );
468
+
469
+ return requests;
390
470
  }
391
471
 
392
472
  it("should show the correct help text", async () => {
@@ -410,8 +490,10 @@ describe("wrangler", () => {
410
490
  });
411
491
 
412
492
  it("should delete a consumer with no --env", async () => {
413
- mockDeleteRequest("testQueue", "testScript");
493
+ const requests = mockDeleteRequest("testQueue", "testScript");
414
494
  await runWrangler("queues consumer remove testQueue testScript");
495
+
496
+ expect(requests.count).toEqual(1);
415
497
  expect(std.out).toMatchInlineSnapshot(`
416
498
  "Removing consumer from queue testQueue.
417
499
  Removed consumer from queue testQueue."
@@ -419,10 +501,16 @@ describe("wrangler", () => {
419
501
  });
420
502
 
421
503
  it("should delete a consumer with --env", async () => {
422
- mockDeleteRequest("testQueue", "testScript", "myEnv");
504
+ const requests = mockDeleteRequest(
505
+ "testQueue",
506
+ "testScript",
507
+ "myEnv"
508
+ );
423
509
  await runWrangler(
424
510
  "queues consumer remove testQueue testScript --env myEnv"
425
511
  );
512
+
513
+ expect(requests.count).toEqual(1);
426
514
  expect(std.out).toMatchInlineSnapshot(`
427
515
  "Removing consumer from queue testQueue.
428
516
  Removed consumer from queue testQueue."