wrangler 0.0.0-e41c7e41 → 0.0.0-e44afaf79

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 (275) hide show
  1. package/README.md +35 -45
  2. package/bin/wrangler.js +27 -102
  3. package/config-schema.json +2487 -0
  4. package/package.json +179 -192
  5. package/templates/__tests__/tsconfig-sanity.ts +12 -0
  6. package/templates/__tests__/tsconfig.json +8 -0
  7. package/templates/checked-fetch.js +19 -6
  8. package/templates/facade.d.ts +19 -0
  9. package/templates/gitignore +2 -3
  10. package/templates/init-tests/test-jest-new-worker.js +3 -5
  11. package/templates/init-tests/test-vitest-new-worker.js +4 -6
  12. package/templates/init-tests/test-vitest-new-worker.ts +25 -0
  13. package/templates/middleware/common.ts +9 -4
  14. package/templates/middleware/loader-modules.ts +94 -44
  15. package/templates/middleware/loader-sw.ts +6 -4
  16. package/templates/middleware/middleware-ensure-req-body-drained.ts +18 -0
  17. package/templates/middleware/middleware-miniflare3-json-error.ts +17 -5
  18. package/templates/middleware/middleware-patch-console-prefix.d.ts +3 -0
  19. package/templates/middleware/middleware-patch-console-prefix.ts +21 -0
  20. package/templates/middleware/middleware-scheduled.ts +15 -1
  21. package/templates/mixedMode/proxyServerWorker/index.ts +40 -0
  22. package/templates/mixedMode/proxyServerWorker/wrangler.jsonc +4 -0
  23. package/templates/modules-watch-stub.js +4 -0
  24. package/templates/new-worker-scheduled.ts +1 -1
  25. package/templates/new-worker.ts +4 -1
  26. package/templates/pages-dev-pipeline.ts +8 -3
  27. package/templates/pages-dev-util.ts +4 -1
  28. package/templates/pages-shim.ts +1 -1
  29. package/templates/pages-template-plugin.ts +33 -14
  30. package/templates/pages-template-worker.ts +12 -3
  31. package/templates/startDevWorker/InspectorProxyWorker.ts +679 -0
  32. package/templates/startDevWorker/ProxyWorker.ts +336 -0
  33. package/templates/strip-cf-connecting-ip-header.js +13 -0
  34. package/templates/tsconfig-sanity.ts +11 -0
  35. package/templates/tsconfig.init.json +22 -0
  36. package/templates/tsconfig.json +12 -103
  37. package/templates/tsconfig.tsbuildinfo +1 -0
  38. package/wrangler-dist/InspectorProxyWorker.js +471 -0
  39. package/wrangler-dist/InspectorProxyWorker.js.map +6 -0
  40. package/wrangler-dist/ProxyWorker.js +238 -0
  41. package/wrangler-dist/ProxyWorker.js.map +6 -0
  42. package/wrangler-dist/cli.d.ts +2054 -512
  43. package/wrangler-dist/cli.js +172903 -159717
  44. package/wrangler-dist/cli.js.map +1 -0
  45. package/wrangler-dist/metafile-cjs.json +1 -0
  46. package/Cloudflare_CA.pem +0 -18
  47. package/import_meta_url.js +0 -3
  48. package/miniflare-config-stubs/.env.empty +0 -0
  49. package/miniflare-config-stubs/package.empty.json +0 -1
  50. package/miniflare-config-stubs/wrangler.empty.toml +0 -0
  51. package/miniflare-dist/index.mjs +0 -6316
  52. package/src/__tests__/access.test.ts +0 -25
  53. package/src/__tests__/api-dev.test.ts +0 -209
  54. package/src/__tests__/api-devregistry.test.js +0 -56
  55. package/src/__tests__/api.test.ts +0 -80
  56. package/src/__tests__/config-cache-without-cache-dir.test.ts +0 -38
  57. package/src/__tests__/config-cache.test.ts +0 -42
  58. package/src/__tests__/configuration.test.ts +0 -3981
  59. package/src/__tests__/d1.test.ts +0 -80
  60. package/src/__tests__/delete.test.ts +0 -230
  61. package/src/__tests__/deployments.test.ts +0 -91
  62. package/src/__tests__/dev.test.tsx +0 -1536
  63. package/src/__tests__/dialogs.test.tsx +0 -40
  64. package/src/__tests__/generate.test.ts +0 -235
  65. package/src/__tests__/get-host-from-url.test.ts +0 -16
  66. package/src/__tests__/guess-worker-format.test.ts +0 -85
  67. package/src/__tests__/helpers/clipboardy-mock.js +0 -4
  68. package/src/__tests__/helpers/cmd-shim.d.ts +0 -11
  69. package/src/__tests__/helpers/mock-account-id.ts +0 -48
  70. package/src/__tests__/helpers/mock-bin.ts +0 -36
  71. package/src/__tests__/helpers/mock-cfetch.ts +0 -333
  72. package/src/__tests__/helpers/mock-console.ts +0 -106
  73. package/src/__tests__/helpers/mock-dialogs.ts +0 -153
  74. package/src/__tests__/helpers/mock-get-zone-from-host.ts +0 -8
  75. package/src/__tests__/helpers/mock-http-server.ts +0 -46
  76. package/src/__tests__/helpers/mock-istty.ts +0 -74
  77. package/src/__tests__/helpers/mock-known-routes.ts +0 -7
  78. package/src/__tests__/helpers/mock-kv.ts +0 -33
  79. package/src/__tests__/helpers/mock-oauth-flow.ts +0 -252
  80. package/src/__tests__/helpers/mock-process.ts +0 -39
  81. package/src/__tests__/helpers/mock-stdin.ts +0 -108
  82. package/src/__tests__/helpers/mock-web-socket.ts +0 -29
  83. package/src/__tests__/helpers/msw/handlers/access.ts +0 -13
  84. package/src/__tests__/helpers/msw/handlers/deployments.ts +0 -59
  85. package/src/__tests__/helpers/msw/handlers/namespaces.ts +0 -104
  86. package/src/__tests__/helpers/msw/handlers/oauth.ts +0 -36
  87. package/src/__tests__/helpers/msw/handlers/r2.ts +0 -80
  88. package/src/__tests__/helpers/msw/handlers/script.ts +0 -75
  89. package/src/__tests__/helpers/msw/handlers/user.ts +0 -63
  90. package/src/__tests__/helpers/msw/handlers/zones.ts +0 -22
  91. package/src/__tests__/helpers/msw/index.ts +0 -21
  92. package/src/__tests__/helpers/run-in-tmp.ts +0 -38
  93. package/src/__tests__/helpers/run-wrangler.ts +0 -16
  94. package/src/__tests__/helpers/worker-scripts/child-wrangler.toml +0 -1
  95. package/src/__tests__/helpers/worker-scripts/hello-world-worker.js +0 -5
  96. package/src/__tests__/helpers/worker-scripts/hello-world-wrangler.toml +0 -1
  97. package/src/__tests__/helpers/worker-scripts/parent-worker.js +0 -8
  98. package/src/__tests__/helpers/worker-scripts/parent-wrangler.toml +0 -5
  99. package/src/__tests__/helpers/write-worker-source.ts +0 -31
  100. package/src/__tests__/helpers/write-wrangler-toml.ts +0 -17
  101. package/src/__tests__/https-options.test.ts +0 -163
  102. package/src/__tests__/index.test.ts +0 -264
  103. package/src/__tests__/init.test.ts +0 -2900
  104. package/src/__tests__/jest.setup.ts +0 -202
  105. package/src/__tests__/kv.test.ts +0 -1675
  106. package/src/__tests__/logger.test.ts +0 -141
  107. package/src/__tests__/metrics.test.ts +0 -450
  108. package/src/__tests__/middleware.scheduled.test.ts +0 -135
  109. package/src/__tests__/middleware.test.ts +0 -726
  110. package/src/__tests__/package-manager.test.ts +0 -353
  111. package/src/__tests__/pages-deployment-tail.test.ts +0 -820
  112. package/src/__tests__/pages.test.ts +0 -2442
  113. package/src/__tests__/parse.test.ts +0 -330
  114. package/src/__tests__/paths.test.ts +0 -39
  115. package/src/__tests__/publish.test.ts +0 -7633
  116. package/src/__tests__/pubsub.test.ts +0 -370
  117. package/src/__tests__/queues.test.ts +0 -371
  118. package/src/__tests__/r2.test.ts +0 -393
  119. package/src/__tests__/route.test.ts +0 -45
  120. package/src/__tests__/secret.test.ts +0 -644
  121. package/src/__tests__/tail.test.ts +0 -800
  122. package/src/__tests__/test-old-node-version.js +0 -31
  123. package/src/__tests__/type-generation.test.ts +0 -226
  124. package/src/__tests__/user.test.ts +0 -155
  125. package/src/__tests__/utils-collectKeyValues.test.ts +0 -47
  126. package/src/__tests__/validate-dev-props.test.ts +0 -56
  127. package/src/__tests__/version.test.ts +0 -35
  128. package/src/__tests__/whoami.test.tsx +0 -278
  129. package/src/__tests__/worker-namespace.test.ts +0 -326
  130. package/src/abort.d.ts +0 -3
  131. package/src/api/dev.ts +0 -210
  132. package/src/api/index.ts +0 -2
  133. package/src/bundle-reporter.tsx +0 -68
  134. package/src/bundle.ts +0 -823
  135. package/src/cfetch/index.ts +0 -160
  136. package/src/cfetch/internal.ts +0 -263
  137. package/src/cli.ts +0 -28
  138. package/src/config/README.md +0 -107
  139. package/src/config/config.ts +0 -275
  140. package/src/config/diagnostics.ts +0 -80
  141. package/src/config/environment.ts +0 -561
  142. package/src/config/index.ts +0 -334
  143. package/src/config/validation-helpers.ts +0 -597
  144. package/src/config/validation.ts +0 -2103
  145. package/src/config-cache.ts +0 -85
  146. package/src/create-worker-preview.ts +0 -282
  147. package/src/create-worker-upload-form.ts +0 -316
  148. package/src/d1/backups.tsx +0 -218
  149. package/src/d1/constants.ts +0 -2
  150. package/src/d1/create.tsx +0 -63
  151. package/src/d1/delete.tsx +0 -56
  152. package/src/d1/execute.tsx +0 -352
  153. package/src/d1/formatTimeAgo.ts +0 -14
  154. package/src/d1/index.ts +0 -99
  155. package/src/d1/list.tsx +0 -48
  156. package/src/d1/migrations.tsx +0 -446
  157. package/src/d1/options.ts +0 -22
  158. package/src/d1/types.tsx +0 -24
  159. package/src/d1/utils.ts +0 -48
  160. package/src/delete.ts +0 -108
  161. package/src/deployments.ts +0 -77
  162. package/src/deprecated/index.ts +0 -438
  163. package/src/dev/dev-vars.ts +0 -39
  164. package/src/dev/dev.tsx +0 -590
  165. package/src/dev/get-local-persistence-path.tsx +0 -31
  166. package/src/dev/local.tsx +0 -886
  167. package/src/dev/remote.tsx +0 -603
  168. package/src/dev/start-server.ts +0 -538
  169. package/src/dev/use-esbuild.ts +0 -204
  170. package/src/dev/validate-dev-props.ts +0 -31
  171. package/src/dev-registry.tsx +0 -201
  172. package/src/dev.tsx +0 -905
  173. package/src/dialogs.tsx +0 -168
  174. package/src/dispatch-namespace.ts +0 -207
  175. package/src/durable.ts +0 -102
  176. package/src/entry.ts +0 -329
  177. package/src/environment-variables.ts +0 -50
  178. package/src/errors.ts +0 -11
  179. package/src/git-client.ts +0 -124
  180. package/src/global-wrangler-config-path.ts +0 -26
  181. package/src/https-options.ts +0 -127
  182. package/src/index.tsx +0 -682
  183. package/src/init.ts +0 -970
  184. package/src/inspect.ts +0 -767
  185. package/src/intl-polyfill.d.ts +0 -139
  186. package/src/is-ci.ts +0 -14
  187. package/src/is-interactive.ts +0 -16
  188. package/src/kv/helpers.ts +0 -430
  189. package/src/kv/index.ts +0 -596
  190. package/src/logger.ts +0 -92
  191. package/src/metrics/index.ts +0 -5
  192. package/src/metrics/metrics-config.ts +0 -239
  193. package/src/metrics/metrics-dispatcher.ts +0 -96
  194. package/src/metrics/metrics-usage-headers.ts +0 -24
  195. package/src/metrics/send-event.ts +0 -96
  196. package/src/miniflare-cli/README.md +0 -30
  197. package/src/miniflare-cli/assets.ts +0 -215
  198. package/src/miniflare-cli/index.ts +0 -213
  199. package/src/miniflare-cli/request-context.ts +0 -40
  200. package/src/module-collection.ts +0 -267
  201. package/src/open-in-browser.ts +0 -17
  202. package/src/package-manager.ts +0 -219
  203. package/src/pages/build.tsx +0 -270
  204. package/src/pages/constants.ts +0 -18
  205. package/src/pages/deployment-tails.tsx +0 -284
  206. package/src/pages/deployments.tsx +0 -84
  207. package/src/pages/dev.tsx +0 -708
  208. package/src/pages/errors.ts +0 -66
  209. package/src/pages/functions/buildPlugin.ts +0 -107
  210. package/src/pages/functions/buildWorker.ts +0 -166
  211. package/src/pages/functions/filepath-routing.test.ts +0 -234
  212. package/src/pages/functions/filepath-routing.ts +0 -189
  213. package/src/pages/functions/identifiers.ts +0 -78
  214. package/src/pages/functions/routes-consolidation.test.ts +0 -250
  215. package/src/pages/functions/routes-consolidation.ts +0 -73
  216. package/src/pages/functions/routes-transformation.test.ts +0 -282
  217. package/src/pages/functions/routes-transformation.ts +0 -115
  218. package/src/pages/functions/routes-validation.test.ts +0 -403
  219. package/src/pages/functions/routes-validation.ts +0 -202
  220. package/src/pages/functions/routes.ts +0 -151
  221. package/src/pages/functions.tsx +0 -82
  222. package/src/pages/hash.tsx +0 -13
  223. package/src/pages/index.tsx +0 -102
  224. package/src/pages/projects.tsx +0 -169
  225. package/src/pages/prompt-select-project.tsx +0 -31
  226. package/src/pages/publish.tsx +0 -451
  227. package/src/pages/types.ts +0 -41
  228. package/src/pages/upload.tsx +0 -426
  229. package/src/pages/utils.ts +0 -23
  230. package/src/parse.ts +0 -286
  231. package/src/paths.ts +0 -71
  232. package/src/proxy.ts +0 -689
  233. package/src/publish/index.ts +0 -270
  234. package/src/publish/publish.ts +0 -1035
  235. package/src/pubsub/index.ts +0 -286
  236. package/src/pubsub/pubsub-commands.tsx +0 -624
  237. package/src/queues/cli/commands/consumer/add.ts +0 -71
  238. package/src/queues/cli/commands/consumer/index.ts +0 -22
  239. package/src/queues/cli/commands/consumer/remove.ts +0 -38
  240. package/src/queues/cli/commands/create.ts +0 -25
  241. package/src/queues/cli/commands/delete.ts +0 -26
  242. package/src/queues/cli/commands/index.ts +0 -33
  243. package/src/queues/cli/commands/list.ts +0 -25
  244. package/src/queues/client.ts +0 -135
  245. package/src/r2/constants.ts +0 -4
  246. package/src/r2/helpers.ts +0 -131
  247. package/src/r2/index.ts +0 -289
  248. package/src/routes.ts +0 -140
  249. package/src/secret/index.ts +0 -378
  250. package/src/selfsigned.d.ts +0 -29
  251. package/src/sites.tsx +0 -372
  252. package/src/tail/createTail.ts +0 -379
  253. package/src/tail/filters.ts +0 -277
  254. package/src/tail/index.ts +0 -214
  255. package/src/tail/printing.ts +0 -107
  256. package/src/type-generation.ts +0 -173
  257. package/src/update-check.ts +0 -19
  258. package/src/user/access.ts +0 -69
  259. package/src/user/choose-account.tsx +0 -69
  260. package/src/user/env-vars.ts +0 -46
  261. package/src/user/generate-auth-url.ts +0 -33
  262. package/src/user/generate-random-state.ts +0 -16
  263. package/src/user/index.ts +0 -3
  264. package/src/user/user.tsx +0 -1192
  265. package/src/utils/collectKeyValues.ts +0 -14
  266. package/src/whoami.tsx +0 -169
  267. package/src/worker.ts +0 -245
  268. package/src/yargs-types.ts +0 -24
  269. package/src/zones.ts +0 -191
  270. package/templates/d1-beta-facade.js +0 -205
  271. package/templates/first-party-worker-module-facade.ts +0 -18
  272. package/templates/format-dev-errors.ts +0 -32
  273. package/templates/serve-static-assets.ts +0 -63
  274. package/templates/service-bindings-module-facade.js +0 -54
  275. package/templates/service-bindings-sw-facade.js +0 -42
@@ -1,370 +0,0 @@
1
- import { mockAccountId, mockApiToken } from "./helpers/mock-account-id";
2
- import { setMockResponse, unsetAllMocks } from "./helpers/mock-cfetch";
3
- import { mockConsoleMethods } from "./helpers/mock-console";
4
- import { runInTempDir } from "./helpers/run-in-tmp";
5
- import { runWrangler } from "./helpers/run-wrangler";
6
- import type {
7
- PubSubNamespace,
8
- PubSubBroker,
9
- PubSubBrokerUpdate,
10
- PubSubBrokerOnPublish,
11
- } from "../pubsub";
12
-
13
- describe("wrangler", () => {
14
- mockAccountId();
15
- mockApiToken();
16
- runInTempDir();
17
- const std = mockConsoleMethods();
18
-
19
- afterEach(() => {
20
- unsetAllMocks();
21
- });
22
-
23
- describe("pubsub", () => {
24
- describe("help menu", () => {
25
- it("shows usage details", async () => {
26
- await runWrangler("pubsub --help");
27
- expect(std).toMatchInlineSnapshot(`
28
- Object {
29
- "debug": "",
30
- "err": "",
31
- "out": "wrangler pubsub
32
-
33
- 📮 Interact and manage Pub/Sub Brokers
34
-
35
- Commands:
36
- wrangler pubsub namespace Manage your Pub/Sub Namespaces
37
- wrangler pubsub broker Interact with your Pub/Sub Brokers
38
-
39
- Flags:
40
- -c, --config Path to .toml configuration file [string]
41
- -e, --env Environment to use for operations and .env files [string]
42
- -h, --help Show help [boolean]
43
- -v, --version Show version number [boolean]
44
-
45
- 👷🏽 'wrangler pubsub ...' commands are currently in private beta. If your account isn't authorized, commands will fail. Visit the Pub/Sub docs for more info: https://developers.cloudflare.com/pub-sub/",
46
- "warn": "",
47
- }
48
- `);
49
- });
50
- });
51
-
52
- describe("namespaces", () => {
53
- describe("help menu", () => {
54
- it("shows usage details", async () => {
55
- await runWrangler("pubsub namespace --help");
56
- expect(std).toMatchInlineSnapshot(`
57
- Object {
58
- "debug": "",
59
- "err": "",
60
- "out": "wrangler pubsub namespace
61
-
62
- Manage your Pub/Sub Namespaces
63
-
64
- Commands:
65
- wrangler pubsub namespace create <name> Create a new Pub/Sub Namespace
66
- wrangler pubsub namespace list List your existing Pub/Sub Namespaces
67
- wrangler pubsub namespace delete <name> Delete a Pub/Sub Namespace
68
- wrangler pubsub namespace describe <name> Describe a Pub/Sub Namespace
69
-
70
- Flags:
71
- -c, --config Path to .toml configuration file [string]
72
- -e, --env Environment to use for operations and .env files [string]
73
- -h, --help Show help [boolean]
74
- -v, --version Show version number [boolean]
75
-
76
- 👷🏽 'wrangler pubsub ...' commands are currently in private beta. If your account isn't authorized, commands will fail. Visit the Pub/Sub docs for more info: https://developers.cloudflare.com/pub-sub/",
77
- "warn": "",
78
- }
79
- `);
80
- });
81
- });
82
-
83
- describe("create", () => {
84
- function mockCreateRequest(expectedNamespaceName: string) {
85
- const requests = { count: 0 };
86
- setMockResponse(
87
- "/accounts/:accountId/pubsub/namespaces",
88
- "POST",
89
- ([_url, accountId], { body }) => {
90
- expect(accountId).toEqual("some-account-id");
91
- const namespaceName = JSON.parse(body as string).name;
92
- expect(namespaceName).toEqual(expectedNamespaceName);
93
- requests.count += 1;
94
- }
95
- );
96
- return requests;
97
- }
98
-
99
- it("should create a namespace", async () => {
100
- const requests = mockCreateRequest("my-namespace");
101
- await runWrangler("pubsub namespace create my-namespace");
102
- // TODO: check returned object
103
- expect(requests.count).toEqual(1);
104
- });
105
- });
106
-
107
- describe("list", () => {
108
- function mockListRequest(namespaces: PubSubNamespace[]) {
109
- const requests = { count: 0 };
110
- setMockResponse(
111
- "/accounts/:accountId/pubsub/namespaces",
112
- ([_url, accountId], init) => {
113
- requests.count++;
114
- expect(accountId).toEqual("some-account-id");
115
- expect(init).toEqual({});
116
- return { namespaces };
117
- }
118
- );
119
- return requests;
120
- }
121
-
122
- it("should list namespaces", async () => {
123
- const expectedNamespaces: PubSubNamespace[] = [
124
- { name: "namespace-1", created_on: "01-01-2001" },
125
- { name: "namespace-2", created_on: "01-01-2001" },
126
- ];
127
- const requests = mockListRequest(expectedNamespaces);
128
- await runWrangler("pubsub namespace list");
129
-
130
- expect(std.err).toMatchInlineSnapshot(`""`);
131
- // TODO(elithrar): check returned object
132
- expect(requests.count).toEqual(1);
133
- });
134
- });
135
- });
136
-
137
- describe("brokers", () => {
138
- describe("help menu", () => {
139
- it("shows usage details", async () => {
140
- await runWrangler("pubsub broker --help");
141
- expect(std).toMatchInlineSnapshot(`
142
- Object {
143
- "debug": "",
144
- "err": "",
145
- "out": "wrangler pubsub broker
146
-
147
- Interact with your Pub/Sub Brokers
148
-
149
- Commands:
150
- wrangler pubsub broker create <name> Create a new Pub/Sub Broker
151
- wrangler pubsub broker update <name> Update an existing Pub/Sub Broker's configuration.
152
- wrangler pubsub broker list List the Pub/Sub Brokers within a Namespace
153
- wrangler pubsub broker delete <name> Delete an existing Pub/Sub Broker
154
- wrangler pubsub broker describe <name> Describe an existing Pub/Sub Broker.
155
- wrangler pubsub broker issue <name> Issue new client credentials for a specific Pub/Sub Broker.
156
- wrangler pubsub broker revoke <name> Revoke a set of active client credentials associated with the given Broker
157
- wrangler pubsub broker unrevoke <name> Restore access to a set of previously revoked client credentials.
158
- wrangler pubsub broker show-revocations <name> Show all previously revoked client credentials.
159
- wrangler pubsub broker public-keys <name> Show the public keys used for verifying on-publish hooks and credentials for a Broker.
160
-
161
- Flags:
162
- -c, --config Path to .toml configuration file [string]
163
- -e, --env Environment to use for operations and .env files [string]
164
- -h, --help Show help [boolean]
165
- -v, --version Show version number [boolean]
166
-
167
- 👷🏽 'wrangler pubsub ...' commands are currently in private beta. If your account isn't authorized, commands will fail. Visit the Pub/Sub docs for more info: https://developers.cloudflare.com/pub-sub/",
168
- "warn": "",
169
- }
170
- `);
171
- });
172
- });
173
-
174
- describe("create", () => {
175
- function mockCreateRequest(expectedBrokerName: string) {
176
- const requests = { count: 0 };
177
- setMockResponse(
178
- "/accounts/:accountId/pubsub/namespaces/:namespaceName/brokers",
179
- "POST",
180
- ([_url, accountId, namespaceName], { body }) => {
181
- expect(accountId).toEqual("some-account-id");
182
- expect(namespaceName).toEqual("some-namespace");
183
- const brokerName = JSON.parse(body as string).name;
184
- expect(brokerName).toEqual(expectedBrokerName);
185
- requests.count += 1;
186
- }
187
- );
188
- return requests;
189
- }
190
-
191
- it("should create a broker", async () => {
192
- const requests = mockCreateRequest("my-broker");
193
- await runWrangler(
194
- "pubsub broker create my-broker --namespace=some-namespace"
195
- );
196
-
197
- // TODO: check returned object
198
- expect(requests.count).toEqual(1);
199
- });
200
-
201
- it("fail to create broker when no namespace is set", async () => {
202
- await expect(
203
- runWrangler("pubsub broker create my-broker")
204
- ).rejects.toThrowErrorMatchingInlineSnapshot(
205
- `"Missing required argument: namespace"`
206
- );
207
- });
208
- });
209
-
210
- describe("update", () => {
211
- function mockUpdateRequest(
212
- expectedBrokerName: string,
213
- expectedExpiration: number,
214
- expectedDescription: string,
215
- expectedOnPublishConfig: PubSubBrokerOnPublish
216
- ) {
217
- const requests = { count: 0 };
218
- setMockResponse(
219
- "/accounts/:accountId/pubsub/namespaces/:namespaceName/brokers/:brokerName",
220
- "PATCH",
221
- ([_url, accountId, namespaceName, brokerName], { body }) => {
222
- expect(accountId).toEqual("some-account-id");
223
- expect(namespaceName).toEqual("some-namespace");
224
- expect(brokerName).toEqual(expectedBrokerName);
225
-
226
- const patchBody: PubSubBrokerUpdate = JSON.parse(body as string);
227
- expect(patchBody.expiration).toEqual(expectedExpiration);
228
- expect(patchBody.description).toEqual(expectedDescription);
229
- expect(patchBody.on_publish).toEqual(expectedOnPublishConfig);
230
-
231
- requests.count += 1;
232
- }
233
- );
234
- return requests;
235
- }
236
-
237
- it("should update a broker's properties", async () => {
238
- const expectedOnPublish: PubSubBrokerOnPublish = {
239
- url: "https://foo.bar.example.com",
240
- };
241
- const requests = mockUpdateRequest(
242
- "my-broker",
243
- 86400,
244
- "hello",
245
- expectedOnPublish
246
- );
247
- await runWrangler(
248
- "pubsub broker update my-broker --namespace=some-namespace --expiration=24h --description='hello' --on-publish-url='https://foo.bar.example.com'"
249
- );
250
-
251
- expect(std.err).toMatchInlineSnapshot(`""`);
252
- // TODO(elithrar): check returned object
253
- expect(requests.count).toEqual(1);
254
- });
255
- });
256
-
257
- describe("list", () => {
258
- function mockListRequest(brokers: PubSubBroker[]) {
259
- const requests = { count: 0 };
260
- setMockResponse(
261
- "/accounts/:accountId/pubsub/namespaces/:namespaceName/brokers",
262
- ([_url, accountId, namespaceName], init) => {
263
- requests.count++;
264
- expect(accountId).toEqual("some-account-id");
265
- expect(namespaceName).toEqual("some-namespace");
266
- expect(init).toEqual({});
267
- return { brokers };
268
- }
269
- );
270
- return requests;
271
- }
272
-
273
- it("should list brokers", async () => {
274
- const expectedBrokers: PubSubBroker[] = [
275
- { name: "broker-1", created_on: "01-01-2001" },
276
- { name: "broker-2", created_on: "01-01-2001" },
277
- ];
278
- const requests = mockListRequest(expectedBrokers);
279
- await runWrangler("pubsub broker list --namespace=some-namespace");
280
-
281
- expect(std.err).toMatchInlineSnapshot(`""`);
282
- // TODO(elithrar): check returned object
283
- expect(requests.count).toEqual(1);
284
- });
285
- });
286
-
287
- describe("describe", () => {
288
- function mockGetRequest(broker: PubSubBroker) {
289
- const requests = { count: 0 };
290
- setMockResponse(
291
- "/accounts/:accountId/pubsub/namespaces/:namespaceName/brokers/:brokerName",
292
- ([_url, accountId, namespaceName, brokerName]) => {
293
- requests.count++;
294
- expect(accountId).toEqual("some-account-id");
295
- expect(namespaceName).toEqual("some-namespace");
296
- expect(brokerName).toEqual(broker.name);
297
- return { result: broker };
298
- }
299
- );
300
- return requests;
301
- }
302
-
303
- it("should describe a single broker", async () => {
304
- const requests = mockGetRequest({ id: "1234", name: "my-broker" });
305
- await runWrangler(
306
- "pubsub broker describe my-broker --namespace=some-namespace"
307
- );
308
-
309
- expect(std.err).toMatchInlineSnapshot(`""`);
310
- // TODO(elithrar): check returned object
311
- expect(requests.count).toEqual(1);
312
- });
313
- });
314
-
315
- describe("issue", () => {
316
- function mockIssueRequest(expectedBrokerName: string) {
317
- const requests = { count: 0 };
318
- setMockResponse(
319
- "/accounts/:accountId/pubsub/namespaces/:namespaceName/brokers/:brokerName/credentials",
320
- ([_url, accountId, namespaceName, brokerName]) => {
321
- expect(accountId).toEqual("some-account-id");
322
- expect(namespaceName).toEqual("some-namespace");
323
- expect(brokerName).toEqual(expectedBrokerName);
324
- requests.count += 1;
325
- }
326
- );
327
- return requests;
328
- }
329
-
330
- it("should issue a token for the broker", async () => {
331
- const requests = mockIssueRequest("my-broker");
332
- await runWrangler(
333
- "pubsub broker issue my-broker --namespace=some-namespace"
334
- );
335
-
336
- expect(std.err).toMatchInlineSnapshot(`""`);
337
- // TODO(elithrar): check returned object
338
- expect(requests.count).toEqual(1);
339
- });
340
- });
341
-
342
- describe("public-keys", () => {
343
- function mockIssueRequest(expectedBrokerName: string) {
344
- const requests = { count: 0 };
345
- setMockResponse(
346
- "/accounts/:accountId/pubsub/namespaces/:namespaceName/brokers/:brokerName/publickeys",
347
- ([_url, accountId, namespaceName, brokerName]) => {
348
- expect(accountId).toEqual("some-account-id");
349
- expect(namespaceName).toEqual("some-namespace");
350
- expect(brokerName).toEqual(expectedBrokerName);
351
- requests.count += 1;
352
- }
353
- );
354
- return requests;
355
- }
356
-
357
- it("should return the public keys for a broker", async () => {
358
- const requests = mockIssueRequest("my-broker");
359
- await runWrangler(
360
- "pubsub broker public-keys my-broker --namespace=some-namespace"
361
- );
362
-
363
- expect(std.err).toMatchInlineSnapshot(`""`);
364
- // TODO(elithrar): check returned object
365
- expect(requests.count).toEqual(1);
366
- });
367
- });
368
- });
369
- });
370
- });