@northern.tech/testing 0.19.2 → 0.19.3

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 (67) hide show
  1. package/dist/public/baseTestConfig.json +3 -0
  2. package/dist/requestHandlers/deploymentHandlers.d.ts +1 -1
  3. package/dist/requestHandlers/deploymentHandlers.js +1 -1
  4. package/dist/requestHandlers/deploymentHandlers.js.map +1 -1
  5. package/dist/requestHandlers/deviceHandlers.d.ts +1 -1
  6. package/dist/requestHandlers/deviceHandlers.js +1 -1
  7. package/dist/requestHandlers/deviceHandlers.js.map +1 -1
  8. package/dist/requestHandlers/monitorHandlers.d.ts +1 -1
  9. package/dist/requestHandlers/monitorHandlers.js +1 -1
  10. package/dist/requestHandlers/monitorHandlers.js.map +1 -1
  11. package/dist/requestHandlers/organizationHandlers.d.ts +1 -1
  12. package/dist/requestHandlers/organizationHandlers.js +1 -1
  13. package/dist/requestHandlers/organizationHandlers.js.map +1 -1
  14. package/dist/requestHandlers/releaseHandlers.d.ts +1 -1
  15. package/dist/requestHandlers/releaseHandlers.js +1 -1
  16. package/dist/requestHandlers/releaseHandlers.js.map +1 -1
  17. package/dist/requestHandlers/requestHandlers.d.ts +1 -1
  18. package/dist/requestHandlers/requestHandlers.js +1 -1
  19. package/dist/requestHandlers/requestHandlers.js.map +1 -1
  20. package/dist/requestHandlers/userHandlers.d.ts +1 -1
  21. package/dist/requestHandlers/userHandlers.js +1 -1
  22. package/dist/requestHandlers/userHandlers.js.map +1 -1
  23. package/dist/setupTests.d.ts +0 -7
  24. package/dist/setupTests.js +1 -11
  25. package/dist/setupTests.js.map +1 -1
  26. package/package.json +5 -7
  27. package/dist/mockData.cjs +0 -1408
  28. package/dist/mockData.cjs.map +0 -1
  29. package/dist/mockData.d.cts +0 -721
  30. package/dist/openapi.yaml.d.cjs +0 -0
  31. package/dist/openapi.yaml.d.cts +0 -4
  32. package/dist/requestHandlers/deploymentHandlers.cjs +0 -193
  33. package/dist/requestHandlers/deploymentHandlers.cjs.map +0 -1
  34. package/dist/requestHandlers/deploymentHandlers.d.cts +0 -4
  35. package/dist/requestHandlers/deviceHandlers.cjs +0 -467
  36. package/dist/requestHandlers/deviceHandlers.cjs.map +0 -1
  37. package/dist/requestHandlers/deviceHandlers.d.cts +0 -31
  38. package/dist/requestHandlers/monitorHandlers.cjs +0 -23
  39. package/dist/requestHandlers/monitorHandlers.cjs.map +0 -1
  40. package/dist/requestHandlers/monitorHandlers.d.cts +0 -4
  41. package/dist/requestHandlers/organizationHandlers.cjs +0 -313
  42. package/dist/requestHandlers/organizationHandlers.cjs.map +0 -1
  43. package/dist/requestHandlers/organizationHandlers.d.cts +0 -4
  44. package/dist/requestHandlers/releaseHandlers.cjs +0 -244
  45. package/dist/requestHandlers/releaseHandlers.cjs.map +0 -1
  46. package/dist/requestHandlers/releaseHandlers.d.cts +0 -4
  47. package/dist/requestHandlers/requestHandlers.cjs +0 -27
  48. package/dist/requestHandlers/requestHandlers.cjs.map +0 -1
  49. package/dist/requestHandlers/requestHandlers.d.cts +0 -4
  50. package/dist/requestHandlers/userHandlers.cjs +0 -164
  51. package/dist/requestHandlers/userHandlers.cjs.map +0 -1
  52. package/dist/requestHandlers/userHandlers.d.cts +0 -4
  53. package/dist/requestHandlers/validation.cjs +0 -4
  54. package/dist/requestHandlers/validation.d.cts +0 -5
  55. package/dist/setupTests.cjs +0 -172
  56. package/dist/setupTests.cjs.map +0 -1
  57. package/dist/setupTests.d.cts +0 -76
  58. package/dist/theme/light.cjs +0 -9
  59. package/dist/theme/light.cjs.map +0 -1
  60. package/dist/theme/light.d.cts +0 -5
  61. package/dist/theme/mui.d.cjs +0 -0
  62. package/dist/theme/mui.d.cts +0 -11
  63. package/dist/utils.cjs +0 -22
  64. package/dist/utils.cjs.map +0 -1
  65. package/dist/utils.d.cts +0 -5
  66. package/dist/validation-DAMYMdv9.cjs +0 -75
  67. package/dist/validation-DAMYMdv9.cjs.map +0 -1
@@ -1,313 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_mockData = require("../mockData.cjs");
3
- const require_validation = require("../validation-DAMYMdv9.cjs");
4
- let _northern_tech_utils_constants = require("@northern.tech/utils/constants");
5
- let msw = require("msw");
6
- //#region src/requestHandlers/organizationHandlers.ts
7
- const PLANS = {
8
- os: {
9
- id: "os",
10
- name: "Basic"
11
- },
12
- professional: {
13
- id: "professional",
14
- name: "Professional"
15
- },
16
- enterprise: {
17
- id: "enterprise",
18
- name: "Enterprise"
19
- }
20
- };
21
- const releasesSample = {
22
- lts: ["3.3"],
23
- releases: {
24
- "3.2": {
25
- "3.2.1": {
26
- release_date: "2022-02-02",
27
- release: "3.2.1",
28
- repos: [
29
- {
30
- name: "integration",
31
- version: "1.2.3"
32
- },
33
- {
34
- name: "mender",
35
- version: "3.2.1"
36
- },
37
- {
38
- name: "mender-artifact",
39
- version: "1.3.7"
40
- },
41
- {
42
- name: "service",
43
- version: "3.0.0"
44
- },
45
- {
46
- name: "other-service",
47
- version: "1.1.0"
48
- }
49
- ]
50
- },
51
- "3.2.0": {
52
- release_date: "2022-01-24",
53
- release: "3.2.0",
54
- repos: [{
55
- name: "service",
56
- version: "3.0.0"
57
- }, {
58
- name: "another-service",
59
- version: "4.1.0"
60
- }]
61
- }
62
- },
63
- "2.7": { "2.7.2": {
64
- release_date: "2021-11-04",
65
- release: "2.7.2",
66
- repos: [{
67
- name: "service",
68
- version: "1.1.0"
69
- }, {
70
- name: "more-service",
71
- version: "1.0.2"
72
- }]
73
- } },
74
- "1.0": {
75
- supported_until: "2018-02",
76
- "1.0.1": {
77
- release_date: "2017-04-03",
78
- release: "1.0.1",
79
- repos: [{
80
- name: "service",
81
- version: "1.0.1"
82
- }]
83
- },
84
- "1.0.0": {
85
- release_date: "2017-02-16",
86
- release: "1.0.0",
87
- repos: [{
88
- name: "mono-service",
89
- version: "1.0.0"
90
- }]
91
- }
92
- }
93
- },
94
- saas: [
95
- {
96
- tag: "saas-v2022.03.10",
97
- date: "2022-03-09"
98
- },
99
- {
100
- tag: "saas-v2020.09.25",
101
- date: "2020-09-24"
102
- },
103
- {
104
- tag: "saas-v2020.07.09",
105
- date: "2020-07-09"
106
- }
107
- ]
108
- };
109
- const tagsSample = [{
110
- name: "saas-v2023.05.02",
111
- more: "here"
112
- }];
113
- const signupHandler = require_validation.validated(async ({ request }) => {
114
- const signup = await request.json();
115
- if ([
116
- "email",
117
- "organization",
118
- "plan"
119
- ].every((item) => !!signup[item])) return msw.HttpResponse.text("test");
120
- return new msw.HttpResponse(null, { status: 400 });
121
- });
122
- const invoicePreviewBasic = {
123
- id: "upcoming_in_1RlAkbFlFfXikjZVOHK5VQx0",
124
- period_start: "2025-07-15T15:25:22Z",
125
- period_end: "2025-08-15T15:25:22Z",
126
- total: 3200,
127
- currency: "usd",
128
- lines: [{
129
- description: "50 device × Mender Basic (Tier 1 at $0.00 / month)",
130
- amount: 0,
131
- currency: "usd",
132
- product: "mender_standard",
133
- quantity: 50,
134
- price_id: "price_1PYktlFlFfXikjZVh2aNHp7i"
135
- }, {
136
- description: "Mender Basic (Tier 1 at $32.00 / month)",
137
- amount: 3200,
138
- currency: "usd",
139
- product: "mender_standard",
140
- quantity: 0,
141
- price_id: "price_1PYktlFlFfXikjZVh2aNHp7i"
142
- }]
143
- };
144
- const subscriptionBasic = {
145
- id: "sub_1RlAjOFlFfXikjZVj5BvpJE4",
146
- status: "active",
147
- plan: "os",
148
- products: [{
149
- name: "mender_standard",
150
- quantity: 50
151
- }]
152
- };
153
- const organizationHandlers = [
154
- msw.http.get("/tags.json", () => msw.HttpResponse.json(tagsSample)),
155
- msw.http.get("/versions.json", () => msw.HttpResponse.json(releasesSample)),
156
- msw.http.get(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/tenants/me`, () => msw.HttpResponse.json(require_mockData.mockApiResponses.organization.organization)),
157
- msw.http.get(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/tenants/me/token`, () => msw.HttpResponse.json({ tenant_token: require_mockData.mockApiResponses.organization.tenantToken })),
158
- msw.http.put(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/tenants/:tenantId/child`, require_validation.validated(() => new msw.HttpResponse(null, { status: 200 }))),
159
- msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/tenants/:tenantId/cancel`, require_validation.validated(() => new msw.HttpResponse(null, { status: 200 }))),
160
- msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/tenants/trial`, signupHandler),
161
- msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/tenants`, async ({ request }) => {
162
- const { users } = await request.json();
163
- const { email } = users[0];
164
- if (email.includes("bad")) return new msw.HttpResponse(null, { status: 553 });
165
- return new msw.HttpResponse(null, { status: 200 });
166
- }),
167
- msw.http.post(`https://hosted.mender.io${_northern_tech_utils_constants.tenantadmApiUrlv2}/tenants/trial`, signupHandler),
168
- msw.http.get(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/tenants`, () => msw.HttpResponse.json(require_mockData.tenants)),
169
- msw.http.get(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/billing`, () => msw.HttpResponse.json({ card: {
170
- last4: "7890",
171
- exp_month: 1,
172
- exp_year: 2024,
173
- brand: "testCorp"
174
- } })),
175
- msw.http.get(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/billing/profile`, () => msw.HttpResponse.json({
176
- name: "company",
177
- email: "test@test.com",
178
- address: {
179
- state: "OSLO",
180
- line1: "Blindern",
181
- country: "NO",
182
- city: "OSLO",
183
- postal_code: "0123"
184
- },
185
- shipping: { address: {
186
- state: "OSLO",
187
- line1: "Blindern",
188
- country: "NO",
189
- city: "OSLO",
190
- postal_code: "0123"
191
- } }
192
- })),
193
- msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/billing/card`, require_validation.validated(() => msw.HttpResponse.json({
194
- intent_id: require_mockData.mockApiResponses.organization.intentId,
195
- secret: "testSecret"
196
- }))),
197
- msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/billing/card/:intentId/confirm`, require_validation.validated(({ params: { intentId } }) => new msw.HttpResponse(null, { status: intentId == require_mockData.mockApiResponses.organization.intentId ? 200 : 540 }))),
198
- msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/tenants/:tenantId/upgrade/:status`, async ({ params: { status, tenantId }, request }) => {
199
- if (tenantId != require_mockData.mockApiResponses.organization.organization.id || ![
200
- "cancel",
201
- "complete",
202
- "start"
203
- ].includes(status)) return new msw.HttpResponse(null, { status: 541 });
204
- if (status === "start") return msw.HttpResponse.json({ secret: "testSecret" });
205
- let plan;
206
- try {
207
- plan = (await request.json()).plan;
208
- } catch {}
209
- if (plan && !Object.keys(PLANS).includes(plan)) return new msw.HttpResponse(null, { status: 542 });
210
- return new msw.HttpResponse(null, { status: 200 });
211
- }),
212
- msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/tenants/:tenantId/plan`, require_validation.validated(async ({ params: { tenantId }, request }) => {
213
- const body = await request.json();
214
- const expectedKeys = [
215
- "current_plan",
216
- "requested_plan",
217
- "current_addons",
218
- "requested_addons",
219
- "user_message"
220
- ];
221
- if (tenantId != require_mockData.mockApiResponses.organization.organization.id || !Object.keys(body).every((key) => expectedKeys.includes(key))) return new msw.HttpResponse(null, { status: 544 });
222
- if (body.requested_plan && !Object.values(PLANS).some((item) => item.name === body.requested_plan)) return new msw.HttpResponse(null, { status: 545 });
223
- return new msw.HttpResponse(null, { status: 200 });
224
- })),
225
- msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/contact/support`, require_validation.validated(async ({ request }) => {
226
- const { subject, body } = await request.json();
227
- if (!(subject && body)) return new msw.HttpResponse(null, { status: 543 });
228
- return new msw.HttpResponse(null, { status: 200 });
229
- })),
230
- msw.http.patch(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/billing/profile`, require_validation.validated(() => new msw.HttpResponse(null, { status: 200 }))),
231
- msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/billing/profile`, require_validation.validated(() => new msw.HttpResponse(null, { status: 200 }))),
232
- msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/billing/subscription`, require_validation.validated(() => new msw.HttpResponse(null, { status: 202 }))),
233
- msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/billing/subscription/invoices/preview`, () => msw.HttpResponse.json(invoicePreviewBasic)),
234
- msw.http.get(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/billing/subscription`, () => msw.HttpResponse.json(subscriptionBasic)),
235
- msw.http.get(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/billing/products`, () => msw.HttpResponse.json(require_mockData.mockApiResponses.organization.products)),
236
- msw.http.get(`${_northern_tech_utils_constants.auditLogsApiUrl}/logs`, ({ request }) => {
237
- const { searchParams } = new URL(request.url);
238
- if (Number(searchParams.get("per_page")) === 500) return msw.HttpResponse.json([{
239
- meta: require_mockData.mockApiResponses.organization.auditlog.events[2].meta,
240
- time: require_mockData.mockApiResponses.organization.auditlog.events[1].time,
241
- action: "close_terminal"
242
- }]);
243
- return new msw.HttpResponse(JSON.stringify(require_mockData.mockApiResponses.organization.auditlog.events), { headers: { [_northern_tech_utils_constants.headerNames.total]: require_mockData.mockApiResponses.organization.auditlog.events.length } });
244
- }),
245
- msw.http.get(`${_northern_tech_utils_constants.auditLogsApiUrl}/logs/export`, () => msw.HttpResponse.text(`action,actor.id,actor.type,actor.email,actor.identity_data,object.id,object.type,object.user.email,object.deployment.name,object.deployment.artifact_name,change
246
- update,5c56c2ed-2a9a-5de9-bb86-cf38b3d4a5e1,user,test@example.coim,,067f23a9-76a5-5585-b119-32402a120978,user,test@example.com,,,"Update user 067f23a9-76a5-5585-b119-32402a120978 (test@example.com).
247
- Diff:
248
- --- Original
249
- +++ Current
250
- @@ -9 +9,2 @@
251
- - ""RBAC_ROLE_OBSERVER""
252
- + ""RBAC_ROLE_OBSERVER"",
253
- + ""RBAC_ROLE_PERMIT_ALL""
254
- "
255
- `)),
256
- msw.http.get(`${_northern_tech_utils_constants.iotManagerBaseURL}/integrations`, () => msw.HttpResponse.json([{
257
- connection_string: "something_else",
258
- id: 1,
259
- provider: "iot-hub"
260
- }, {
261
- id: 2,
262
- provider: "iot-core",
263
- something: "new"
264
- }])),
265
- msw.http.post(`${_northern_tech_utils_constants.iotManagerBaseURL}/integrations`, require_validation.validated(() => msw.HttpResponse.json([{
266
- connection_string: "something_else",
267
- provider: "iot-hub"
268
- }]))),
269
- msw.http.put(`${_northern_tech_utils_constants.iotManagerBaseURL}/integrations/:integrationId`, require_validation.validated(({ params: { integrationId } }) => {
270
- if (!integrationId) return new msw.HttpResponse(null, { status: 547 });
271
- return new msw.HttpResponse(null, { status: 200 });
272
- })),
273
- msw.http.put(`${_northern_tech_utils_constants.iotManagerBaseURL}/integrations/:integrationId/credentials`, require_validation.validated(({ params: { integrationId } }) => {
274
- if (!integrationId) return new msw.HttpResponse(null, { status: 548 });
275
- return new msw.HttpResponse(null, { status: 200 });
276
- })),
277
- msw.http.delete(`${_northern_tech_utils_constants.iotManagerBaseURL}/integrations/:integrationId`, ({ params: { integrationId } }) => {
278
- if (!integrationId) return new msw.HttpResponse(null, { status: 549 });
279
- return new msw.HttpResponse(null, { status: 200 });
280
- }),
281
- msw.http.get(`${_northern_tech_utils_constants.iotManagerBaseURL}/events`, ({ request }) => {
282
- const { searchParams } = new URL(request.url);
283
- const page = Number(searchParams.get("page"));
284
- const perPage = Number(searchParams.get("per_page"));
285
- return msw.HttpResponse.json(require_mockData.webhookEvents.slice((page - 1) * perPage, page * perPage), { headers: { [_northern_tech_utils_constants.headerNames.total]: `${require_mockData.webhookEvents.length}` } });
286
- }),
287
- msw.http.get(_northern_tech_utils_constants.ssoIdpApiUrlv1, () => msw.HttpResponse.json([{
288
- id: "1",
289
- issuer: "https://samltest.id/saml/idp",
290
- valid_until: "2038-08-24T21:14:09Z"
291
- }, {
292
- id: "2",
293
- issuer: "https://samltest2.id/saml/idp",
294
- valid_until: "2030-10-24T21:14:09Z"
295
- }])),
296
- msw.http.post(_northern_tech_utils_constants.ssoIdpApiUrlv1, require_validation.validated(() => new msw.HttpResponse(null, { status: 200 }))),
297
- msw.http.get(`${_northern_tech_utils_constants.ssoIdpApiUrlv1}/:configId`, ({ params: { configId } }) => {
298
- if (!configId) return new msw.HttpResponse(null, { status: 550 });
299
- return msw.HttpResponse.json({
300
- email: "user@acme.com",
301
- password: "mypass1234",
302
- login: { google: "bob@gmail.com" },
303
- config: "<div>not quite right</div>"
304
- });
305
- }),
306
- msw.http.put(`${_northern_tech_utils_constants.ssoIdpApiUrlv1}/:configId`, require_validation.validated(({ params: { configId } }) => new msw.HttpResponse(null, { status: configId ? 200 : 551 }))),
307
- msw.http.delete(`${_northern_tech_utils_constants.ssoIdpApiUrlv1}/:configId`, ({ params: { configId } }) => new msw.HttpResponse(null, { status: configId ? 200 : 552 })),
308
- msw.http.get(_northern_tech_utils_constants.ssoEndpointsApiUrlv1, () => msw.HttpResponse.json(require_mockData.ssoEndpoint))
309
- ];
310
- //#endregion
311
- exports.organizationHandlers = organizationHandlers;
312
-
313
- //# sourceMappingURL=organizationHandlers.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"organizationHandlers.cjs","names":["validated","HttpResponse","http","tenantadmApiUrlv2","mockApiResponses","tenants","auditLogsApiUrl","headerNames","iotManagerBaseURL","webhookEvents","ssoIdpApiUrlv1","ssoEndpointsApiUrlv1","ssoEndpoint"],"sources":["../../src/requestHandlers/organizationHandlers.ts"],"sourcesContent":["// Copyright 2020 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n//@ts-nocheck\nimport { auditLogsApiUrl, headerNames, iotManagerBaseURL, ssoEndpointsApiUrlv1, ssoIdpApiUrlv1, tenantadmApiUrlv2 } from '@northern.tech/utils/constants';\nimport { HttpResponse, http } from 'msw';\n\nimport { mockApiResponses, ssoEndpoint, tenants, webhookEvents } from '../mockData';\nimport { validated } from './validation';\n\nconst PLANS = {\n os: { id: 'os', name: 'Basic' },\n professional: { id: 'professional', name: 'Professional' },\n enterprise: { id: 'enterprise', name: 'Enterprise' }\n};\n\nconst releasesSample = {\n lts: ['3.3'],\n releases: {\n '3.2': {\n '3.2.1': {\n release_date: '2022-02-02',\n release: '3.2.1',\n repos: [\n { name: 'integration', version: '1.2.3' },\n { name: 'mender', version: '3.2.1' },\n { name: 'mender-artifact', version: '1.3.7' },\n { name: 'service', version: '3.0.0' },\n { name: 'other-service', version: '1.1.0' }\n ]\n },\n '3.2.0': {\n release_date: '2022-01-24',\n release: '3.2.0',\n repos: [\n { name: 'service', version: '3.0.0' },\n { name: 'another-service', version: '4.1.0' }\n ]\n }\n },\n '2.7': {\n '2.7.2': {\n release_date: '2021-11-04',\n release: '2.7.2',\n repos: [\n { name: 'service', version: '1.1.0' },\n { name: 'more-service', version: '1.0.2' }\n ]\n }\n },\n '1.0': {\n supported_until: '2018-02',\n '1.0.1': {\n release_date: '2017-04-03',\n release: '1.0.1',\n repos: [{ name: 'service', version: '1.0.1' }]\n },\n '1.0.0': {\n release_date: '2017-02-16',\n release: '1.0.0',\n repos: [{ name: 'mono-service', version: '1.0.0' }]\n }\n }\n },\n saas: [\n { tag: 'saas-v2022.03.10', date: '2022-03-09' },\n { tag: 'saas-v2020.09.25', date: '2020-09-24' },\n { tag: 'saas-v2020.07.09', date: '2020-07-09' }\n ]\n};\n\nconst tagsSample = [{ name: 'saas-v2023.05.02', more: 'here' }];\n\nconst signupHandler = validated(async ({ request }) => {\n const signup = await request.json();\n if (['email', 'organization', 'plan'].every(item => !!signup[item])) {\n return HttpResponse.text('test');\n }\n return new HttpResponse(null, { status: 400 });\n});\n\nconst invoicePreviewBasic = {\n id: 'upcoming_in_1RlAkbFlFfXikjZVOHK5VQx0',\n period_start: '2025-07-15T15:25:22Z',\n period_end: '2025-08-15T15:25:22Z',\n total: 3200,\n currency: 'usd',\n lines: [\n {\n description: '50 device × Mender Basic (Tier 1 at $0.00 / month)',\n amount: 0,\n currency: 'usd',\n product: 'mender_standard',\n quantity: 50,\n price_id: 'price_1PYktlFlFfXikjZVh2aNHp7i'\n },\n {\n description: 'Mender Basic (Tier 1 at $32.00 / month)',\n amount: 3200,\n currency: 'usd',\n product: 'mender_standard',\n quantity: 0,\n price_id: 'price_1PYktlFlFfXikjZVh2aNHp7i'\n }\n ]\n};\nconst subscriptionBasic = {\n id: 'sub_1RlAjOFlFfXikjZVj5BvpJE4',\n status: 'active',\n plan: 'os',\n products: [\n {\n name: 'mender_standard',\n quantity: 50\n }\n ]\n};\n\nexport const organizationHandlers = [\n http.get('/tags.json', () => HttpResponse.json(tagsSample)),\n http.get('/versions.json', () => HttpResponse.json(releasesSample)),\n http.get(`${tenantadmApiUrlv2}/tenants/me`, () => HttpResponse.json(mockApiResponses.organization.organization)),\n http.get(`${tenantadmApiUrlv2}/tenants/me/token`, () => HttpResponse.json({ tenant_token: mockApiResponses.organization.tenantToken })),\n http.put(\n `${tenantadmApiUrlv2}/tenants/:tenantId/child`,\n validated(() => new HttpResponse(null, { status: 200 }))\n ),\n http.post(\n `${tenantadmApiUrlv2}/tenants/:tenantId/cancel`,\n validated(() => new HttpResponse(null, { status: 200 }))\n ),\n http.post(`${tenantadmApiUrlv2}/tenants/trial`, signupHandler),\n // TODO: add validation once spec is fixed (accepts `device_limits`)\n http.post(`${tenantadmApiUrlv2}/tenants`, async ({ request }) => {\n const { users } = await request.json();\n const { email } = users[0];\n if (email.includes('bad')) {\n return new HttpResponse(null, { status: 553 });\n }\n return new HttpResponse(null, { status: 200 });\n }),\n http.post(`https://hosted.mender.io${tenantadmApiUrlv2}/tenants/trial`, signupHandler),\n http.get(`${tenantadmApiUrlv2}/tenants`, () => HttpResponse.json(tenants)),\n http.get(`${tenantadmApiUrlv2}/billing`, () => HttpResponse.json({ card: { last4: '7890', exp_month: 1, exp_year: 2024, brand: 'testCorp' } })),\n http.get(`${tenantadmApiUrlv2}/billing/profile`, () =>\n HttpResponse.json({\n name: 'company',\n email: 'test@test.com',\n address: { state: 'OSLO', line1: 'Blindern', country: 'NO', city: 'OSLO', postal_code: '0123' },\n shipping: { address: { state: 'OSLO', line1: 'Blindern', country: 'NO', city: 'OSLO', postal_code: '0123' } }\n })\n ),\n http.post(\n `${tenantadmApiUrlv2}/billing/card`,\n validated(() => HttpResponse.json({ intent_id: mockApiResponses.organization.intentId, secret: 'testSecret' }))\n ),\n http.post(\n `${tenantadmApiUrlv2}/billing/card/:intentId/confirm`,\n validated(({ params: { intentId } }) => new HttpResponse(null, { status: intentId == mockApiResponses.organization.intentId ? 200 : 540 }))\n ),\n http.post(`${tenantadmApiUrlv2}/tenants/:tenantId/upgrade/:status`, async ({ params: { status, tenantId }, request }) => {\n if (tenantId != mockApiResponses.organization.organization.id || !['cancel', 'complete', 'start'].includes(status)) {\n return new HttpResponse(null, { status: 541 });\n }\n if (status === 'start') {\n return HttpResponse.json({ secret: 'testSecret' });\n }\n let plan;\n try {\n const body = await request.json();\n plan = body.plan;\n } catch {\n // no completion;\n }\n if (plan && !Object.keys(PLANS).includes(plan)) {\n return new HttpResponse(null, { status: 542 });\n }\n return new HttpResponse(null, { status: 200 });\n }),\n http.post(\n `${tenantadmApiUrlv2}/tenants/:tenantId/plan`,\n validated(async ({ params: { tenantId }, request }) => {\n const body = await request.json();\n const expectedKeys = ['current_plan', 'requested_plan', 'current_addons', 'requested_addons', 'user_message'];\n if (tenantId != mockApiResponses.organization.organization.id || !Object.keys(body).every(key => expectedKeys.includes(key))) {\n return new HttpResponse(null, { status: 544 });\n }\n if (body.requested_plan && !Object.values(PLANS).some(item => item.name === body.requested_plan)) {\n return new HttpResponse(null, { status: 545 });\n }\n return new HttpResponse(null, { status: 200 });\n })\n ),\n http.post(\n `${tenantadmApiUrlv2}/contact/support`,\n validated(async ({ request }) => {\n const { subject, body } = await request.json();\n if (!(subject && body)) {\n return new HttpResponse(null, { status: 543 });\n }\n return new HttpResponse(null, { status: 200 });\n })\n ),\n http.patch(\n `${tenantadmApiUrlv2}/billing/profile`,\n validated(() => new HttpResponse(null, { status: 200 }))\n ),\n http.post(\n `${tenantadmApiUrlv2}/billing/profile`,\n validated(() => new HttpResponse(null, { status: 200 }))\n ),\n http.post(\n `${tenantadmApiUrlv2}/billing/subscription`,\n validated(() => new HttpResponse(null, { status: 202 }))\n ),\n http.post(`${tenantadmApiUrlv2}/billing/subscription/invoices/preview`, () => HttpResponse.json(invoicePreviewBasic)),\n http.get(`${tenantadmApiUrlv2}/billing/subscription`, () => HttpResponse.json(subscriptionBasic)),\n http.get(`${tenantadmApiUrlv2}/billing/products`, () => HttpResponse.json(mockApiResponses.organization.products)),\n http.get(`${auditLogsApiUrl}/logs`, ({ request }) => {\n const { searchParams } = new URL(request.url);\n const perPage = Number(searchParams.get('per_page'));\n if (perPage === 500) {\n return HttpResponse.json([\n { meta: mockApiResponses.organization.auditlog.events[2].meta, time: mockApiResponses.organization.auditlog.events[1].time, action: 'close_terminal' }\n ]);\n }\n return new HttpResponse(JSON.stringify(mockApiResponses.organization.auditlog.events), {\n headers: { [headerNames.total]: mockApiResponses.organization.auditlog.events.length }\n });\n }),\n http.get(`${auditLogsApiUrl}/logs/export`, () =>\n HttpResponse.text(`action,actor.id,actor.type,actor.email,actor.identity_data,object.id,object.type,object.user.email,object.deployment.name,object.deployment.artifact_name,change\n update,5c56c2ed-2a9a-5de9-bb86-cf38b3d4a5e1,user,test@example.coim,,067f23a9-76a5-5585-b119-32402a120978,user,test@example.com,,,\"Update user 067f23a9-76a5-5585-b119-32402a120978 (test@example.com).\n Diff:\n --- Original\n +++ Current\n @@ -9 +9,2 @@\n - \"\"RBAC_ROLE_OBSERVER\"\"\n + \"\"RBAC_ROLE_OBSERVER\"\",\n + \"\"RBAC_ROLE_PERMIT_ALL\"\"\n \"\n `)\n ),\n http.get(`${iotManagerBaseURL}/integrations`, () =>\n HttpResponse.json([\n { connection_string: 'something_else', id: 1, provider: 'iot-hub' },\n { id: 2, provider: 'iot-core', something: 'new' }\n ])\n ),\n http.post(\n `${iotManagerBaseURL}/integrations`,\n validated(() => HttpResponse.json([{ connection_string: 'something_else', provider: 'iot-hub' }]))\n ),\n http.put(\n `${iotManagerBaseURL}/integrations/:integrationId`,\n validated(({ params: { integrationId } }) => {\n if (!integrationId) {\n return new HttpResponse(null, { status: 547 });\n }\n return new HttpResponse(null, { status: 200 });\n })\n ),\n http.put(\n `${iotManagerBaseURL}/integrations/:integrationId/credentials`,\n validated(({ params: { integrationId } }) => {\n if (!integrationId) {\n return new HttpResponse(null, { status: 548 });\n }\n return new HttpResponse(null, { status: 200 });\n })\n ),\n http.delete(`${iotManagerBaseURL}/integrations/:integrationId`, ({ params: { integrationId } }) => {\n if (!integrationId) {\n return new HttpResponse(null, { status: 549 });\n }\n return new HttpResponse(null, { status: 200 });\n }),\n http.get(`${iotManagerBaseURL}/events`, ({ request }) => {\n const { searchParams } = new URL(request.url);\n const page = Number(searchParams.get('page'));\n const perPage = Number(searchParams.get('per_page'));\n return HttpResponse.json(webhookEvents.slice((page - 1) * perPage, page * perPage), { headers: { [headerNames.total]: `${webhookEvents.length}` } });\n }),\n http.get(ssoIdpApiUrlv1, () =>\n HttpResponse.json([\n { id: '1', issuer: 'https://samltest.id/saml/idp', valid_until: '2038-08-24T21:14:09Z' },\n { id: '2', issuer: 'https://samltest2.id/saml/idp', valid_until: '2030-10-24T21:14:09Z' }\n ])\n ),\n http.post(\n ssoIdpApiUrlv1,\n validated(() => new HttpResponse(null, { status: 200 }))\n ),\n http.get(`${ssoIdpApiUrlv1}/:configId`, ({ params: { configId } }) => {\n if (!configId) {\n return new HttpResponse(null, { status: 550 });\n }\n return HttpResponse.json({ email: 'user@acme.com', password: 'mypass1234', login: { google: 'bob@gmail.com' }, config: '<div>not quite right</div>' });\n }),\n http.put(\n `${ssoIdpApiUrlv1}/:configId`,\n validated(({ params: { configId } }) => new HttpResponse(null, { status: configId ? 200 : 551 }))\n ),\n http.delete(`${ssoIdpApiUrlv1}/:configId`, ({ params: { configId } }) => new HttpResponse(null, { status: configId ? 200 : 552 })),\n http.get(ssoEndpointsApiUrlv1, () => HttpResponse.json(ssoEndpoint))\n];\n"],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- //#region src/requestHandlers/organizationHandlers.d.ts
2
- export declare const organizationHandlers: import("msw").HttpHandler[];
3
- //#endregion
4
- //# sourceMappingURL=organizationHandlers.d.cts.map
@@ -1,244 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_mockData = require("../mockData.cjs");
3
- const require_validation = require("../validation-DAMYMdv9.cjs");
4
- let _northern_tech_utils_constants = require("@northern.tech/utils/constants");
5
- let _northern_tech_utils_helpers = require("@northern.tech/utils/helpers");
6
- let msw = require("msw");
7
- //#region src/requestHandlers/releaseHandlers.ts
8
- const deltaJobs = {
9
- "delta-job-1": {
10
- id: "delta-job-1",
11
- to_release: "mender-demo-artifact-3.3.1",
12
- from_release: "mender-demo-artifact-3.2.1",
13
- to_version: "mender-demo-artifact-3.3.1",
14
- from_version: "mender-demo-artifact-3.2.1",
15
- device_types_compatible: ["qemux86-64"],
16
- started: "2022-07-11T20:49:00.000Z",
17
- status: "success"
18
- },
19
- "delta-job-2": {
20
- id: "delta-job-2",
21
- to_release: "mender-demo-artifact-3.3.1",
22
- from_release: "mender-demo-artifact-3.3.0",
23
- to_version: "mender-demo-artifact-3.3.1",
24
- from_version: "mender-demo-artifact-3.3.0",
25
- device_types_compatible: [
26
- "raspberrypi0w",
27
- "raspberrypi0-wifi",
28
- "raspberrypi3",
29
- "raspberrypi4"
30
- ],
31
- started: "2022-07-11T20:49:00.000Z",
32
- status: "failed"
33
- },
34
- "delta-job-3": {
35
- id: "delta-job-3",
36
- to_release: "mender-demo-artifact-3.3.1",
37
- from_release: "mender-demo-artifact-3.3.0",
38
- to_version: "mender-demo-artifact-3.3.1",
39
- from_version: "mender-demo-artifact-3.3.0",
40
- device_types_compatible: [
41
- "beaglebone",
42
- "beaglebone-yocto",
43
- "beaglebone-yocto"
44
- ],
45
- started: "2022-07-11T20:49:00.000Z",
46
- status: "pending"
47
- },
48
- "delta-job-4": {
49
- id: "delta-job-4",
50
- to_release: "mender-demo-artifact-3.2.0",
51
- from_release: "mender-demo-artifact-3.1.0",
52
- to_version: "mender-demo-artifact-3.2.0",
53
- from_version: "mender-demo-artifact-3.1.0",
54
- device_types_compatible: ["qemux86-64"],
55
- started: "2022-07-10T15:30:00.000Z",
56
- status: "artifact_uploaded"
57
- }
58
- };
59
- const mockDeltaJobDetails = {
60
- "delta-job-1": {
61
- ...deltaJobs["delta-job-1"],
62
- delta_artifact_size: 1024e3,
63
- deployment_id: "d1",
64
- devices_types_compatible: ["qemux86-64"],
65
- exit_code: 0,
66
- log: "Delta generation started at 2022-07-11T20:49:00.000Z\nProcessing artifacts...\nDelta generation completed successfully at 2022-07-11T20:52:15.000Z",
67
- to_artifact_size: 2048e3
68
- },
69
- "delta-job-2": {
70
- ...deltaJobs["delta-job-2"],
71
- delta_artifact_size: null,
72
- deployment_id: "d2",
73
- devices_types_compatible: [
74
- "raspberrypi0w",
75
- "raspberrypi0-wifi",
76
- "raspberrypi3",
77
- "raspberrypi4"
78
- ],
79
- exit_code: 1,
80
- log: "Delta generation started at 2022-07-11T20:49:00.000Z\nError: incompatible artifact types\nDelta generation failed at 2022-07-11T20:51:30.000Z",
81
- to_artifact_size: 3072e3
82
- },
83
- "delta-job-3": {
84
- ...deltaJobs["delta-job-3"],
85
- delta_artifact_size: null,
86
- deployment_id: "d3",
87
- devices_types_compatible: ["beaglebone", "beaglebone-yocto"],
88
- exit_code: null,
89
- log: "Delta generation started at 2022-07-11T20:49:00.000Z\nQueued for processing...",
90
- to_artifact_size: 256e4
91
- },
92
- "delta-job-4": {
93
- ...deltaJobs["delta-job-4"],
94
- delta_artifact_size: 512e3,
95
- deployment_id: "d1",
96
- devices_types_compatible: ["qemux86-64"],
97
- exit_code: 0,
98
- log: "Delta generation started at 2022-07-10T15:30:00.000Z\nProcessing artifacts...\nArtifact uploaded successfully at 2022-07-10T15:45:20.000Z",
99
- to_artifact_size: 1536e3
100
- }
101
- };
102
- const releaseHandlers = [
103
- msw.http.get(`${_northern_tech_utils_constants.deploymentsApiUrl}/artifacts/:id`, () => new msw.HttpResponse(null, { status: 200 })),
104
- msw.http.get(`${_northern_tech_utils_constants.deploymentsApiUrl}/artifacts/:id/download`, () => msw.HttpResponse.json({ uri: "https://testlocation.com/artifact.mender" })),
105
- msw.http.delete(`${_northern_tech_utils_constants.deploymentsApiUrl}/artifacts/:id`, ({ params: { id } }) => new msw.HttpResponse(null, { status: id === require_mockData.mockApiResponses.releases.byId.r1.artifacts[0].id ? 200 : 591 })),
106
- msw.http.put(`${_northern_tech_utils_constants.deploymentsApiUrl}/artifacts/:id`, require_validation.validated(async ({ params: { id }, request }) => {
107
- const { description } = await request.json();
108
- return new msw.HttpResponse(null, { status: id === require_mockData.mockApiResponses.releases.byId.r1.artifacts[0].id && description ? 200 : 592 });
109
- })),
110
- msw.http.post(`${_northern_tech_utils_constants.deploymentsApiUrl}/artifacts/generate`, () => new msw.HttpResponse(null, { headers: {
111
- [_northern_tech_utils_constants.headerNames.location]: `${_northern_tech_utils_constants.deploymentsApiUrl}/artifacts/generate/${require_mockData.mockApiResponses.releases.byId.r1.artifacts[0].id}`,
112
- status: 201
113
- } })),
114
- msw.http.post(`${_northern_tech_utils_constants.deploymentsApiUrl}/artifacts`, () => new msw.HttpResponse(null, { status: 200 })),
115
- msw.http.get(`${_northern_tech_utils_constants.deploymentsApiUrlV2}/deployments/releases`, async ({ request }) => {
116
- const { searchParams } = new URL(request.url);
117
- const page = Number(searchParams.get("page"));
118
- const perPage = Number(searchParams.get("per_page"));
119
- if (!page || ![
120
- 1,
121
- 10,
122
- 20,
123
- 50,
124
- 100,
125
- 250,
126
- 500
127
- ].includes(perPage)) return new msw.HttpResponse(null, { status: 593 });
128
- if (searchParams.get("device_type")) return msw.HttpResponse.json([]);
129
- if (page == 42) return new msw.HttpResponse(JSON.stringify([require_mockData.mockApiResponses.releases.byId.r1]), { headers: { [_northern_tech_utils_constants.headerNames.total]: 1 } });
130
- const sort = searchParams.get("sort");
131
- const releaseListSection = require_mockData.releasesList.sort((0, _northern_tech_utils_helpers.customSort)(sort.includes(_northern_tech_utils_constants.SORTING_OPTIONS.desc), "name")).slice((page - 1) * perPage, page * perPage);
132
- if (page === 1 && perPage === 1 && searchParams.get("name")) return msw.HttpResponse.json([require_mockData.mockApiResponses.releases.byId.r1]);
133
- if (searchParams.get("name")) return new msw.HttpResponse(JSON.stringify(releaseListSection), { headers: { [_northern_tech_utils_constants.headerNames.total]: 1234 } });
134
- return new msw.HttpResponse(JSON.stringify(releaseListSection), { headers: { [_northern_tech_utils_constants.headerNames.total]: require_mockData.releasesList.length } });
135
- }),
136
- msw.http.get(`${_northern_tech_utils_constants.deploymentsApiUrlV2}/deployments/releases/:name`, () => msw.HttpResponse.json(require_mockData.mockApiResponses.releases.byId.r1)),
137
- msw.http.get(`${_northern_tech_utils_constants.deploymentsApiUrlV2}/releases/all/types`, () => msw.HttpResponse.json(["single-file", "not-this"])),
138
- msw.http.put(`${_northern_tech_utils_constants.deploymentsApiUrlV2}/deployments/releases/:name/tags`, require_validation.validated(async ({ params: { name }, request }) => {
139
- const tags = await request.json();
140
- if (name && tags.every((i) => i && i.toString() === i)) return new msw.HttpResponse(null, { status: 200 });
141
- return new msw.HttpResponse(null, { status: 593 });
142
- })),
143
- msw.http.patch(`${_northern_tech_utils_constants.deploymentsApiUrlV2}/deployments/releases/:name`, require_validation.validated(async ({ params: { name }, request }) => {
144
- const { notes } = await request.json();
145
- return new msw.HttpResponse(null, { status: name && notes.length ? 200 : 594 });
146
- })),
147
- msw.http.get(`${_northern_tech_utils_constants.deploymentsApiUrlV2}/deployments/releases/delta/jobs`, () => {
148
- const jobs = Object.values(deltaJobs);
149
- return new msw.HttpResponse(JSON.stringify(jobs), { headers: { [_northern_tech_utils_constants.headerNames.total]: jobs.length } });
150
- }),
151
- msw.http.get(`${_northern_tech_utils_constants.deploymentsApiUrlV2}/deployments/releases/delta/jobs/:jobId`, ({ params: { jobId } }) => {
152
- const jobDetails = mockDeltaJobDetails[jobId];
153
- if (jobDetails) return msw.HttpResponse.json(jobDetails);
154
- return new msw.HttpResponse(null, { status: 404 });
155
- }),
156
- msw.http.get(`${_northern_tech_utils_constants.deploymentsApiUrl}/manifests`, require_validation.validated(async ({ request }) => {
157
- const { searchParams } = new URL(request.url);
158
- const page = Number(searchParams.get("page"));
159
- const perPage = Number(searchParams.get("per_page"));
160
- if (!page || ![
161
- 1,
162
- 10,
163
- 20,
164
- 50,
165
- 100,
166
- 250,
167
- 500
168
- ].includes(perPage)) return new msw.HttpResponse(null, { status: 593 });
169
- if (page == 42) return new msw.HttpResponse(JSON.stringify([require_mockData.mockApiResponses.manifests.byId.m1]), { headers: { [_northern_tech_utils_constants.headerNames.total]: 1 } });
170
- const sort = searchParams.get("sort");
171
- const manifestListSection = require_mockData.manifestsList.sort((0, _northern_tech_utils_helpers.customSort)(sort.includes(_northern_tech_utils_constants.SORTING_OPTIONS.desc), "modified")).slice((page - 1) * perPage, page * perPage);
172
- if (page === 1 && perPage === 1 && searchParams.get("name")) return msw.HttpResponse.json([require_mockData.mockApiResponses.manifests.byId.m1]);
173
- const tags = searchParams.getAll("tag");
174
- if (searchParams.get("name") || tags.length) return new msw.HttpResponse(JSON.stringify(manifestListSection), { headers: { [_northern_tech_utils_constants.headerNames.total]: 1234 } });
175
- return new msw.HttpResponse(JSON.stringify(manifestListSection), { headers: { [_northern_tech_utils_constants.headerNames.total]: require_mockData.manifestsList.length } });
176
- })),
177
- msw.http.delete(`${_northern_tech_utils_constants.deploymentsApiUrl}/manifests`, require_validation.validated(({ request: { url } }) => {
178
- const { searchParams } = new URL(url);
179
- if (!searchParams.getAll("name").length) return new msw.HttpResponse(null, { status: 400 });
180
- return new msw.HttpResponse(null, { status: 204 });
181
- })),
182
- msw.http.post(`${_northern_tech_utils_constants.deploymentsApiUrl}/manifests`, () => new msw.HttpResponse(null, {
183
- status: 201,
184
- headers: { [_northern_tech_utils_constants.headerNames.location]: `${_northern_tech_utils_constants.deploymentsApiUrl}/manifests/m1000` }
185
- })),
186
- msw.http.post(`${_northern_tech_utils_constants.deploymentsApiUrl}/manifests/generate`, () => new msw.HttpResponse(null, {
187
- status: 202,
188
- headers: { [_northern_tech_utils_constants.headerNames.location]: `${_northern_tech_utils_constants.deploymentsApiUrl}/manifests/m1000` }
189
- })),
190
- msw.http.get(`${_northern_tech_utils_constants.deploymentsApiUrl}/manifests/:name`, require_validation.validated(({ params: { name } }) => {
191
- if (name === require_mockData.mockApiResponses.manifests.byId.m1000.name) return msw.HttpResponse.json(require_mockData.mockApiResponses.manifests.byId.m1000);
192
- return new msw.HttpResponse(null, { status: 404 });
193
- })),
194
- msw.http.patch(`${_northern_tech_utils_constants.deploymentsApiUrl}/manifests/:name`, require_validation.validated(async ({ params: { name }, request }) => {
195
- const body = await request.json();
196
- if (name && (body.notes !== void 0 || body.tags !== void 0)) return new msw.HttpResponse(null, { status: 204 });
197
- return new msw.HttpResponse(null, { status: 400 });
198
- })),
199
- msw.http.get(`${_northern_tech_utils_constants.deploymentsApiUrl}/software`, require_validation.validated(async ({ request }) => {
200
- const { searchParams } = new URL(request.url);
201
- const page = Number(searchParams.get("page"));
202
- const perPage = Number(searchParams.get("per_page"));
203
- if (!page || ![
204
- 1,
205
- 10,
206
- 20,
207
- 50,
208
- 100,
209
- 250,
210
- 500
211
- ].includes(perPage)) return new msw.HttpResponse(null, { status: 593 });
212
- const sort = searchParams.get("sort");
213
- let filtered = [...require_mockData.softwareList];
214
- const kind = searchParams.get("kind");
215
- if (kind) filtered = filtered.filter((item) => item.kind === kind);
216
- const names = searchParams.getAll("name");
217
- if (names.length) filtered = filtered.filter((item) => names.some((name) => item.name.includes(name)));
218
- const namePrefix = searchParams.get("name_prefix");
219
- if (namePrefix) filtered = filtered.filter((item) => item.name.startsWith(namePrefix));
220
- const tags = searchParams.getAll("tag");
221
- if (tags.length) filtered = filtered.filter((item) => tags.some((tag) => item.tags?.includes(tag)));
222
- const updateType = searchParams.get("update_type");
223
- if (updateType) filtered = filtered.filter((item) => item.update_type === updateType);
224
- filtered.sort((0, _northern_tech_utils_helpers.customSort)(sort?.includes(_northern_tech_utils_constants.SORTING_OPTIONS.desc) ?? false, sort?.includes("name") ? "name" : "modified"));
225
- const section = filtered.slice((page - 1) * perPage, page * perPage);
226
- return new msw.HttpResponse(JSON.stringify(section), { headers: { [_northern_tech_utils_constants.headerNames.total]: filtered.length } });
227
- })),
228
- msw.http.get(`${_northern_tech_utils_constants.deploymentsApiUrl}/software/tags`, require_validation.validated(({ request: { url } }) => {
229
- const { searchParams } = new URL(url);
230
- const kind = searchParams.get("kind");
231
- if (kind === "manifest") return msw.HttpResponse.json(["manifest-tag-1", "manifest-tag-2"]);
232
- if (kind === "release") return msw.HttpResponse.json(["foo", "bar"]);
233
- return msw.HttpResponse.json([
234
- "foo",
235
- "bar",
236
- "manifest-tag-1",
237
- "manifest-tag-2"
238
- ]);
239
- }))
240
- ];
241
- //#endregion
242
- exports.releaseHandlers = releaseHandlers;
243
-
244
- //# sourceMappingURL=releaseHandlers.cjs.map