@northern.tech/testing 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-QSR5PAZ3.js → chunk-7QUKEQYS.js} +57 -2
- package/dist/chunk-7QUKEQYS.js.map +1 -0
- package/dist/{chunk-A7LWVKMZ.js → chunk-BAFFOYWC.js} +33 -3
- package/dist/chunk-BAFFOYWC.js.map +1 -0
- package/dist/{chunk-4ZCNCVNV.js → chunk-MC32ZMPJ.js} +2 -2
- package/dist/{chunk-4ZCNCVNV.js.map → chunk-MC32ZMPJ.js.map} +1 -1
- package/dist/{chunk-J5PW6OPW.js → chunk-VCFPBRLT.js} +6 -5
- package/dist/{chunk-J5PW6OPW.js.map → chunk-VCFPBRLT.js.map} +1 -1
- package/dist/chunk-YLVCNBG5.js +161 -0
- package/dist/chunk-YLVCNBG5.js.map +1 -0
- package/dist/requestHandlers/deploymentHandlers.cjs +32 -2
- package/dist/requestHandlers/deploymentHandlers.cjs.map +1 -1
- package/dist/requestHandlers/deploymentHandlers.js +1 -1
- package/dist/requestHandlers/deviceHandlers.cjs +1 -1
- package/dist/requestHandlers/deviceHandlers.cjs.map +1 -1
- package/dist/requestHandlers/deviceHandlers.js +1 -1
- package/dist/requestHandlers/organizationHandlers.cjs +56 -1
- package/dist/requestHandlers/organizationHandlers.cjs.map +1 -1
- package/dist/requestHandlers/organizationHandlers.js +1 -1
- package/dist/requestHandlers/releaseHandlers.cjs +98 -1
- package/dist/requestHandlers/releaseHandlers.cjs.map +1 -1
- package/dist/requestHandlers/releaseHandlers.js +1 -1
- package/dist/requestHandlers/requestHandlers.cjs +192 -9
- package/dist/requestHandlers/requestHandlers.cjs.map +1 -1
- package/dist/requestHandlers/requestHandlers.js +5 -5
- package/dist/requestHandlers/userHandlers.cjs +5 -4
- package/dist/requestHandlers/userHandlers.cjs.map +1 -1
- package/dist/requestHandlers/userHandlers.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-3KEPLFEG.js +0 -64
- package/dist/chunk-3KEPLFEG.js.map +0 -1
- package/dist/chunk-A7LWVKMZ.js.map +0 -1
- package/dist/chunk-QSR5PAZ3.js.map +0 -1
|
@@ -73,6 +73,40 @@ var signupHandler = async ({ request }) => {
|
|
|
73
73
|
}
|
|
74
74
|
return new HttpResponse(null, { status: 400 });
|
|
75
75
|
};
|
|
76
|
+
var invoicePreviewBasic = {
|
|
77
|
+
id: "upcoming_in_1RlAkbFlFfXikjZVOHK5VQx0",
|
|
78
|
+
period_start: "2025-07-15T15:25:22Z",
|
|
79
|
+
period_end: "2025-08-15T15:25:22Z",
|
|
80
|
+
total: 3200,
|
|
81
|
+
currency: "usd",
|
|
82
|
+
lines: [
|
|
83
|
+
{
|
|
84
|
+
description: "50 device \xD7 Mender Basic (Tier 1 at $0.00 / month)",
|
|
85
|
+
amount: 0,
|
|
86
|
+
currency: "usd",
|
|
87
|
+
quantity: 50,
|
|
88
|
+
price_id: "price_1PYktlFlFfXikjZVh2aNHp7i"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
description: "Mender Basic (Tier 1 at $32.00 / month)",
|
|
92
|
+
amount: 3200,
|
|
93
|
+
currency: "usd",
|
|
94
|
+
quantity: 0,
|
|
95
|
+
price_id: "price_1PYktlFlFfXikjZVh2aNHp7i"
|
|
96
|
+
}
|
|
97
|
+
]
|
|
98
|
+
};
|
|
99
|
+
var subscriptionBasic = {
|
|
100
|
+
id: "sub_1RlAjOFlFfXikjZVj5BvpJE4",
|
|
101
|
+
status: "active",
|
|
102
|
+
plan: "os",
|
|
103
|
+
products: [
|
|
104
|
+
{
|
|
105
|
+
name: "mender_standard",
|
|
106
|
+
quantity: 50
|
|
107
|
+
}
|
|
108
|
+
]
|
|
109
|
+
};
|
|
76
110
|
var organizationHandlers = [
|
|
77
111
|
http.get("/tags.json", () => HttpResponse.json(tagsSample)),
|
|
78
112
|
http.get("/versions.json", () => HttpResponse.json(releasesSample)),
|
|
@@ -80,10 +114,26 @@ var organizationHandlers = [
|
|
|
80
114
|
http.put(`${tenantadmApiUrlv2}/tenants/:tenantId/child`, () => new HttpResponse(null, { status: 200 })),
|
|
81
115
|
http.post(`${tenantadmApiUrlv2}/tenants/:tenantId/cancel`, () => new HttpResponse(null, { status: 200 })),
|
|
82
116
|
http.post(`${tenantadmApiUrlv2}/tenants/trial`, signupHandler),
|
|
83
|
-
http.post(`${tenantadmApiUrlv2}/tenants`,
|
|
117
|
+
http.post(`${tenantadmApiUrlv2}/tenants`, async ({ request }) => {
|
|
118
|
+
const { users } = await request.json();
|
|
119
|
+
const { email } = users[0];
|
|
120
|
+
if (email.includes("bad")) {
|
|
121
|
+
return new HttpResponse(null, { status: 553 });
|
|
122
|
+
}
|
|
123
|
+
return new HttpResponse(null, { status: 200 });
|
|
124
|
+
}),
|
|
84
125
|
http.post(`https://hosted.mender.io${tenantadmApiUrlv2}/tenants/trial`, signupHandler),
|
|
85
126
|
http.get(`${tenantadmApiUrlv2}/tenants`, () => new HttpResponse([])),
|
|
86
127
|
http.get(`${tenantadmApiUrlv2}/billing`, () => HttpResponse.json({ card: { last4: "7890", exp_month: 1, exp_year: 2024, brand: "testCorp" } })),
|
|
128
|
+
http.get(
|
|
129
|
+
`${tenantadmApiUrlv2}/billing/profile`,
|
|
130
|
+
() => HttpResponse.json({
|
|
131
|
+
name: "company",
|
|
132
|
+
email: "test@test.com",
|
|
133
|
+
address: { state: "OSLO", line1: "Blindern", country: "NO", city: "OSLO", postal_code: "0123" },
|
|
134
|
+
shipping: { address: { state: "OSLO", line1: "Blindern", country: "NO", city: "OSLO", postal_code: "0123" } }
|
|
135
|
+
})
|
|
136
|
+
),
|
|
87
137
|
http.post(`${tenantadmApiUrlv2}/billing/card`, () => HttpResponse.json({ intent_id: mockApiResponses.organization.intentId, secret: "testSecret" })),
|
|
88
138
|
http.post(
|
|
89
139
|
`${tenantadmApiUrlv2}/billing/card/:intentId/confirm`,
|
|
@@ -125,6 +175,11 @@ var organizationHandlers = [
|
|
|
125
175
|
}
|
|
126
176
|
return new HttpResponse(null, { status: 200 });
|
|
127
177
|
}),
|
|
178
|
+
http.patch(`${tenantadmApiUrlv2}/billing/profile`, () => new HttpResponse(null, { status: 200 })),
|
|
179
|
+
http.post(`${tenantadmApiUrlv2}/billing/profile`, () => new HttpResponse(null, { status: 200 })),
|
|
180
|
+
http.post(`${tenantadmApiUrlv2}/billing/subscription`, () => new HttpResponse(null, { status: 202 })),
|
|
181
|
+
http.post(`${tenantadmApiUrlv2}/billing/subscription/invoices/preview`, () => HttpResponse.json(invoicePreviewBasic)),
|
|
182
|
+
http.get(`${tenantadmApiUrlv2}/billing/subscription`, () => HttpResponse.json(subscriptionBasic)),
|
|
128
183
|
http.get(`${auditLogsApiUrl}/logs`, ({ request }) => {
|
|
129
184
|
const { searchParams } = new URL(request.url);
|
|
130
185
|
const perPage = Number(searchParams.get("per_page"));
|
|
@@ -204,4 +259,4 @@ var organizationHandlers = [
|
|
|
204
259
|
export {
|
|
205
260
|
organizationHandlers
|
|
206
261
|
};
|
|
207
|
-
//# sourceMappingURL=chunk-
|
|
262
|
+
//# sourceMappingURL=chunk-7QUKEQYS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"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, ssoIdpApiUrlv1, tenantadmApiUrlv1, tenantadmApiUrlv2 } from '@northern.tech/utils/constants';\nimport { HttpResponse, http } from 'msw';\n\nimport { mockApiResponses, webhookEvents } from '../mockData';\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 = async ({ request }) => {\n const signup = await request.json();\n if (['email', 'organization', 'plan', 'tos'].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 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 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(`${tenantadmApiUrlv1}/user/tenant`, () => HttpResponse.json(mockApiResponses.organization.organization)),\n http.put(`${tenantadmApiUrlv2}/tenants/:tenantId/child`, () => new HttpResponse(null, { status: 200 })),\n http.post(`${tenantadmApiUrlv2}/tenants/:tenantId/cancel`, () => new HttpResponse(null, { status: 200 })),\n http.post(`${tenantadmApiUrlv2}/tenants/trial`, signupHandler),\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`, () => new HttpResponse([])),\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(`${tenantadmApiUrlv2}/billing/card`, () => HttpResponse.json({ intent_id: mockApiResponses.organization.intentId, secret: 'testSecret' })),\n http.post(\n `${tenantadmApiUrlv2}/billing/card/:intentId/confirm`,\n ({ 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(`${tenantadmApiUrlv2}/tenants/:tenantId/plan`, 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 http.post(`${tenantadmApiUrlv2}/contact/support`, 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 http.patch(`${tenantadmApiUrlv2}/billing/profile`, () => new HttpResponse(null, { status: 200 })),\n http.post(`${tenantadmApiUrlv2}/billing/profile`, () => new HttpResponse(null, { status: 200 })),\n http.post(`${tenantadmApiUrlv2}/billing/subscription`, () => new HttpResponse(null, { status: 202 })),\n http.post(`${tenantadmApiUrlv2}/billing/subscription/invoices/preview`, () => HttpResponse.json(invoicePreviewBasic)),\n http.get(`${tenantadmApiUrlv2}/billing/subscription`, () => HttpResponse.json(subscriptionBasic)),\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(`${iotManagerBaseURL}/integrations`, () => HttpResponse.json([{ connection_string: 'something_else', provider: 'iot-hub' }])),\n http.put(`${iotManagerBaseURL}/integrations/:integrationId`, ({ params: { integrationId } }) => {\n if (!integrationId) {\n return new HttpResponse(null, { status: 547 });\n }\n return new HttpResponse(null, { status: 200 });\n }),\n http.put(`${iotManagerBaseURL}/integrations/:integrationId/credentials`, ({ params: { integrationId } }) => {\n if (!integrationId) {\n return new HttpResponse(null, { status: 548 });\n }\n return new HttpResponse(null, { status: 200 });\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, page * perPage));\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(ssoIdpApiUrlv1, () => new HttpResponse(null, { status: 200 })),\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(`${ssoIdpApiUrlv1}/:configId`, ({ params: { configId } }) => new HttpResponse(null, { status: configId ? 200 : 551 })),\n http.delete(`${ssoIdpApiUrlv1}/:configId`, ({ params: { configId } }) => new HttpResponse(null, { status: configId ? 200 : 552 }))\n];\n"],"mappings":"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","names":[]}
|
|
@@ -173,7 +173,13 @@ var deploymentHandlers = [
|
|
|
173
173
|
return new HttpResponse(null, { status: 529 });
|
|
174
174
|
}),
|
|
175
175
|
http.get(`${deploymentsApiUrl}/config`, () => HttpResponse.json(defaultDeploymentConfig)),
|
|
176
|
-
http.put(`${deploymentsApiUrl}/config/binary_delta`,
|
|
176
|
+
http.put(`${deploymentsApiUrl}/config/binary_delta`, async ({ request }) => {
|
|
177
|
+
const { xdelta_args = {} } = await request.json();
|
|
178
|
+
if (xdelta_args.source_window_size === 55) {
|
|
179
|
+
return new HttpResponse(null, { status: 530 });
|
|
180
|
+
}
|
|
181
|
+
return new HttpResponse(null, { status: 200 });
|
|
182
|
+
}),
|
|
177
183
|
http.get(`${deploymentsApiUrl}/deployments/devices/:deviceId`, ({ params: { deviceId } }) => {
|
|
178
184
|
if (deviceId === mockApiResponses.devices.byId.a1.id) {
|
|
179
185
|
return new HttpResponse(
|
|
@@ -200,10 +206,34 @@ var deploymentHandlers = [
|
|
|
200
206
|
}
|
|
201
207
|
return new HttpResponse(null, { status: 529 });
|
|
202
208
|
}),
|
|
203
|
-
http.delete(`${deploymentsApiUrl}/deployments/devices/:deviceId/history`, () => new HttpResponse(null, { status: 204 }))
|
|
209
|
+
http.delete(`${deploymentsApiUrl}/deployments/devices/:deviceId/history`, () => new HttpResponse(null, { status: 204 })),
|
|
210
|
+
http.get(`/api/management/v1alpha1/deployments/deployments/:deploymentId/devices/:deviceId/log/explain`, ({ params: { deploymentId, deviceId } }) => {
|
|
211
|
+
if (deploymentId === mockApiResponses.deployments.byId.d1.id && deviceId === mockApiResponses.devices.byId.a1.id) {
|
|
212
|
+
const mockAnalysis = `## Summary
|
|
213
|
+
The deployment failed during the artifact download phase. The device was unable to establish a secure connection to the artifact repository.
|
|
214
|
+
|
|
215
|
+
## Key Issues
|
|
216
|
+
1. **Network connectivity issues** - Connection timeout occurred
|
|
217
|
+
2. **SSL/TLS certificate verification failed** - Invalid certificate chain
|
|
218
|
+
3. **Artifact verification failed** - Checksum mismatch detected
|
|
219
|
+
|
|
220
|
+
## Recommendations
|
|
221
|
+
- Check network connectivity between device and artifact repository
|
|
222
|
+
- Verify SSL certificates are properly configured
|
|
223
|
+
- Ensure artifact integrity before deployment`;
|
|
224
|
+
return HttpResponse.text(mockAnalysis);
|
|
225
|
+
}
|
|
226
|
+
if (deploymentId === "rate-limited-deployment") {
|
|
227
|
+
return new HttpResponse(JSON.stringify({ error: "Rate limit exceeded" }), { status: 429 });
|
|
228
|
+
}
|
|
229
|
+
if (deploymentId === "error-deployment") {
|
|
230
|
+
return new HttpResponse(JSON.stringify({ error: "Analysis failed" }), { status: 500 });
|
|
231
|
+
}
|
|
232
|
+
return new HttpResponse(null, { status: 404 });
|
|
233
|
+
})
|
|
204
234
|
];
|
|
205
235
|
|
|
206
236
|
export {
|
|
207
237
|
deploymentHandlers
|
|
208
238
|
};
|
|
209
|
-
//# sourceMappingURL=chunk-
|
|
239
|
+
//# sourceMappingURL=chunk-BAFFOYWC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/requestHandlers/deploymentHandlers.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 { deploymentsApiUrl, deploymentsApiUrlV2, headerNames, limitDefault } from '@northern.tech/utils/constants';\nimport { HttpResponse, http } from 'msw';\n\nimport { mockApiResponses } from '../mockData';\n\nconst createdDeployment = {\n id: 'created-123',\n name: 'test deployment',\n artifact_name: 'r1',\n artifacts: ['123'],\n created: '2019-01-01T12:30:00.000Z',\n device_count: 1,\n devices: {\n a1: {\n attributes: {},\n id: 'a1',\n image: { size: 123 },\n status: 'installing'\n }\n },\n filter: undefined,\n group: undefined,\n statistics: {\n status: {\n downloading: 0,\n decommissioned: 0,\n failure: 0,\n installing: 1,\n noartifact: 0,\n pending: 0,\n rebooting: 0,\n success: 0,\n 'already-installed': 0\n },\n total_size: 1234\n }\n};\n\nconst defaultDeploymentConfig = {\n delta: {\n enabled: true,\n binary_delta: {\n xdelta_args: {\n disable_checksum: false,\n disable_external_decompression: false,\n compression_level: 6,\n source_window_size: 0,\n input_window_size: 0,\n compression_duplicates_window: 0,\n instruction_buffer_size: 0\n },\n timeout: 0\n },\n binary_delta_limits: {\n xdelta_args_limits: {\n source_window_size: limitDefault,\n input_window_size: limitDefault,\n compression_duplicates_window: limitDefault,\n instruction_buffer_size: limitDefault\n },\n timeout: { min: 60, max: 3600, default: 60 },\n jobs_in_parallel: limitDefault,\n queue_length: limitDefault\n }\n }\n};\n\nexport const deploymentHandlers = [\n http.get(\n `${deploymentsApiUrl}/deployments`,\n () =>\n new HttpResponse(JSON.stringify(Object.values(mockApiResponses.deployments.byId).reverse()), {\n headers: { [headerNames.total]: Object.keys(mockApiResponses.deployments.byId).length }\n })\n ),\n http.get(`${deploymentsApiUrl}/deployments/releases`, ({ request }) => {\n const { searchParams } = new URL(request.url);\n const releaseName = searchParams.get('name');\n const release = mockApiResponses.releases.byId[releaseName] || {};\n if (releaseName) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { device_types_compatible, ...remainder } = release;\n return Object.keys(remainder).length || releaseName === 'createdRelease' ? HttpResponse.json([remainder]) : new HttpResponse(null, { status: 520 });\n }\n const releases = Object.values(mockApiResponses.releases.byId).map(stateRelease => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { device_types_compatible, ...remainder } = stateRelease;\n return remainder;\n });\n return HttpResponse.json(releases);\n }),\n http.get(`${deploymentsApiUrl}/deployments/:deploymentId`, ({ params: { deploymentId } }) => {\n if (deploymentId === createdDeployment.id) {\n return HttpResponse.json(createdDeployment);\n } else if (deploymentId === 'config1') {\n return HttpResponse.json({\n ...createdDeployment,\n id: 'config1',\n created: '2019-01-01T09:25:01.000Z',\n finished: '2019-01-01T09:25:03.000Z',\n status: 'finished'\n });\n }\n return HttpResponse.json(mockApiResponses.deployments.byId[deploymentId]);\n }),\n http.get(`${deploymentsApiUrl}/deployments/:deploymentId/devices`, ({ params: { deploymentId } }) => {\n if (deploymentId === createdDeployment.id) {\n return HttpResponse.json(Object.values(createdDeployment.devices));\n } else if (mockApiResponses.deployments.byId[deploymentId]) {\n return HttpResponse.json(Object.values(mockApiResponses.deployments.byId[deploymentId].devices));\n }\n return new HttpResponse(null, { status: 521 });\n }),\n http.post(`${deploymentsApiUrl}/deployments/statistics/list`, async ({ request }) => {\n const { deployment_ids = [] } = await request.json();\n if (deployment_ids.includes(createdDeployment.id)) {\n return HttpResponse.json([]);\n } else if (deployment_ids.every(id => mockApiResponses.deployments.byId[id])) {\n const stats = deployment_ids.map(id => ({ id, stats: mockApiResponses.deployments.byId[id].statistics.status }));\n return HttpResponse.json(stats);\n }\n return new HttpResponse(null, { status: 522 });\n }),\n http.get(`${deploymentsApiUrl}/deployments/:deploymentId/devices/:deviceId/log`, ({ params: { deploymentId, deviceId } }) => {\n if (mockApiResponses.deployments.byId[deploymentId] && mockApiResponses.deployments.byId[deploymentId].devices[deviceId]) {\n return HttpResponse.text('test');\n }\n return new HttpResponse(null, { status: 523 });\n }),\n http.post(`${deploymentsApiUrl}/deployments`, async ({ request }) => {\n const body = await request.json();\n if (!Object.keys(body).length) {\n return new HttpResponse(JSON.stringify({}), { status: 524 });\n }\n return new HttpResponse(JSON.stringify({}), { headers: { location: `find/me/here/${createdDeployment.id}` } });\n }),\n http.post(`${deploymentsApiUrlV2}/deployments`, async ({ request }) => {\n const { filter_id, devices = [] } = await request.json();\n if (!filter_id || !!devices.length) {\n return new HttpResponse(JSON.stringify({}), { status: 525 });\n }\n return new HttpResponse(JSON.stringify({}), { headers: { location: `find/me/here/${createdDeployment.id}` } });\n }),\n http.post(`${deploymentsApiUrl}/deployments/group/:deploymentGroup`, async ({ params: { deploymentGroup }, request }) => {\n const { filter_id, devices = [] } = await request.json();\n if (filter_id || !!devices.length || deploymentGroup !== Object.keys(mockApiResponses.devices.groups.byId)[0]) {\n return new HttpResponse(JSON.stringify({}), { status: 526 });\n }\n return new HttpResponse(JSON.stringify({}), { headers: { location: `find/me/here/${createdDeployment.id}` } });\n }),\n http.patch(`${deploymentsApiUrl}/deployments/:deploymentId`, async ({ params: { deploymentId }, request }) => {\n const { update_control_map } = await request.json();\n if (deploymentId === createdDeployment.id && Object.keys(update_control_map).length) {\n return new HttpResponse(null, { status: 204 });\n }\n return new HttpResponse(null, { status: 581 });\n }),\n http.put(`${deploymentsApiUrl}/deployments/:deploymentId/status`, async ({ params: { deploymentId }, request }) => {\n const { status } = await request.json();\n return new HttpResponse(JSON.stringify({}), {\n status:\n status === 'aborted' &&\n [...mockApiResponses.deployments.byStatus.pending.deploymentIds, ...mockApiResponses.deployments.byStatus.inprogress.deploymentIds].includes(\n deploymentId\n )\n ? 200\n : 528\n });\n }),\n http.get(`${deploymentsApiUrl}/deployments/:deploymentId/devices/list`, ({ params: { deploymentId } }) => {\n if (deploymentId === createdDeployment.id) {\n return new HttpResponse(JSON.stringify(Object.values(createdDeployment.devices)), {\n headers: { [headerNames.total]: Object.keys(createdDeployment.devices).length }\n });\n } else if (mockApiResponses.deployments.byId[deploymentId]) {\n return new HttpResponse(JSON.stringify(Object.values(mockApiResponses.deployments.byId[deploymentId].devices)), {\n headers: { [headerNames.total]: Object.keys(mockApiResponses.deployments.byId[deploymentId].devices).length }\n });\n }\n return new HttpResponse(null, { status: 529 });\n }),\n http.get(`${deploymentsApiUrl}/config`, () => HttpResponse.json(defaultDeploymentConfig)),\n http.put(`${deploymentsApiUrl}/config/binary_delta`, async ({ request }) => {\n const { xdelta_args = {} } = await request.json();\n if (xdelta_args.source_window_size === 55) {\n return new HttpResponse(null, { status: 530 });\n }\n return new HttpResponse(null, { status: 200 });\n }),\n http.get(`${deploymentsApiUrl}/deployments/devices/:deviceId`, ({ params: { deviceId } }) => {\n if (deviceId === mockApiResponses.devices.byId.a1.id) {\n return new HttpResponse(\n JSON.stringify([\n {\n id: createdDeployment.id + 'something',\n deployment: { ...createdDeployment, id: mockApiResponses.deployments.byId.d1.id, status: 'inprogress' },\n device: {\n created: '2019-01-01T12:35:00.000Z',\n finished: '2019-01-01T12:40:00.000Z',\n status: 'noartifact',\n id: 'something',\n image: { ...mockApiResponses.releases.byId.r1 }\n },\n log: true,\n attempts: 1,\n delta_job_id: ''\n }\n ]),\n {\n headers: { [headerNames.total]: 34 }\n }\n );\n }\n return new HttpResponse(null, { status: 529 });\n }),\n http.delete(`${deploymentsApiUrl}/deployments/devices/:deviceId/history`, () => new HttpResponse(null, { status: 204 })),\n http.get(`/api/management/v1alpha1/deployments/deployments/:deploymentId/devices/:deviceId/log/explain`, ({ params: { deploymentId, deviceId } }) => {\n if (deploymentId === mockApiResponses.deployments.byId.d1.id && deviceId === mockApiResponses.devices.byId.a1.id) {\n const mockAnalysis = `## Summary\nThe deployment failed during the artifact download phase. The device was unable to establish a secure connection to the artifact repository.\n\n## Key Issues\n1. **Network connectivity issues** - Connection timeout occurred\n2. **SSL/TLS certificate verification failed** - Invalid certificate chain\n3. **Artifact verification failed** - Checksum mismatch detected\n\n## Recommendations\n- Check network connectivity between device and artifact repository\n- Verify SSL certificates are properly configured\n- Ensure artifact integrity before deployment`;\n return HttpResponse.text(mockAnalysis);\n }\n if (deploymentId === 'rate-limited-deployment') {\n return new HttpResponse(JSON.stringify({ error: 'Rate limit exceeded' }), { status: 429 });\n }\n if (deploymentId === 'error-deployment') {\n return new HttpResponse(JSON.stringify({ error: 'Analysis failed' }), { status: 500 });\n }\n return new HttpResponse(null, { status: 404 });\n })\n];\n"],"mappings":";;;;;AAcA,SAAS,mBAAmB,qBAAqB,aAAa,oBAAoB;AAClF,SAAS,cAAc,YAAY;AAInC,IAAM,oBAAoB;AAAA,EACxB,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,eAAe;AAAA,EACf,WAAW,CAAC,KAAK;AAAA,EACjB,SAAS;AAAA,EACT,cAAc;AAAA,EACd,SAAS;AAAA,IACP,IAAI;AAAA,MACF,YAAY,CAAC;AAAA,MACb,IAAI;AAAA,MACJ,OAAO,EAAE,MAAM,IAAI;AAAA,MACnB,QAAQ;AAAA,IACV;AAAA,EACF;AAAA,EACA,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,YAAY;AAAA,IACV,QAAQ;AAAA,MACN,aAAa;AAAA,MACb,gBAAgB;AAAA,MAChB,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,WAAW;AAAA,MACX,SAAS;AAAA,MACT,qBAAqB;AAAA,IACvB;AAAA,IACA,YAAY;AAAA,EACd;AACF;AAEA,IAAM,0BAA0B;AAAA,EAC9B,OAAO;AAAA,IACL,SAAS;AAAA,IACT,cAAc;AAAA,MACZ,aAAa;AAAA,QACX,kBAAkB;AAAA,QAClB,gCAAgC;AAAA,QAChC,mBAAmB;AAAA,QACnB,oBAAoB;AAAA,QACpB,mBAAmB;AAAA,QACnB,+BAA+B;AAAA,QAC/B,yBAAyB;AAAA,MAC3B;AAAA,MACA,SAAS;AAAA,IACX;AAAA,IACA,qBAAqB;AAAA,MACnB,oBAAoB;AAAA,QAClB,oBAAoB;AAAA,QACpB,mBAAmB;AAAA,QACnB,+BAA+B;AAAA,QAC/B,yBAAyB;AAAA,MAC3B;AAAA,MACA,SAAS,EAAE,KAAK,IAAI,KAAK,MAAM,SAAS,GAAG;AAAA,MAC3C,kBAAkB;AAAA,MAClB,cAAc;AAAA,IAChB;AAAA,EACF;AACF;AAEO,IAAM,qBAAqB;AAAA,EAChC,KAAK;AAAA,IACH,GAAG,iBAAiB;AAAA,IACpB,MACE,IAAI,aAAa,KAAK,UAAU,OAAO,OAAO,iBAAiB,YAAY,IAAI,EAAE,QAAQ,CAAC,GAAG;AAAA,MAC3F,SAAS,EAAE,CAAC,YAAY,KAAK,GAAG,OAAO,KAAK,iBAAiB,YAAY,IAAI,EAAE,OAAO;AAAA,IACxF,CAAC;AAAA,EACL;AAAA,EACA,KAAK,IAAI,GAAG,iBAAiB,yBAAyB,CAAC,EAAE,QAAQ,MAAM;AACrE,UAAM,EAAE,aAAa,IAAI,IAAI,IAAI,QAAQ,GAAG;AAC5C,UAAM,cAAc,aAAa,IAAI,MAAM;AAC3C,UAAM,UAAU,iBAAiB,SAAS,KAAK,WAAW,KAAK,CAAC;AAChE,QAAI,aAAa;AAEf,YAAM,EAAE,yBAAyB,GAAG,UAAU,IAAI;AAClD,aAAO,OAAO,KAAK,SAAS,EAAE,UAAU,gBAAgB,mBAAmB,aAAa,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,aAAa,MAAM,EAAE,QAAQ,IAAI,CAAC;AAAA,IACpJ;AACA,UAAM,WAAW,OAAO,OAAO,iBAAiB,SAAS,IAAI,EAAE,IAAI,kBAAgB;AAEjF,YAAM,EAAE,yBAAyB,GAAG,UAAU,IAAI;AAClD,aAAO;AAAA,IACT,CAAC;AACD,WAAO,aAAa,KAAK,QAAQ;AAAA,EACnC,CAAC;AAAA,EACD,KAAK,IAAI,GAAG,iBAAiB,8BAA8B,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM;AAC3F,QAAI,iBAAiB,kBAAkB,IAAI;AACzC,aAAO,aAAa,KAAK,iBAAiB;AAAA,IAC5C,WAAW,iBAAiB,WAAW;AACrC,aAAO,aAAa,KAAK;AAAA,QACvB,GAAG;AAAA,QACH,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,UAAU;AAAA,QACV,QAAQ;AAAA,MACV,CAAC;AAAA,IACH;AACA,WAAO,aAAa,KAAK,iBAAiB,YAAY,KAAK,YAAY,CAAC;AAAA,EAC1E,CAAC;AAAA,EACD,KAAK,IAAI,GAAG,iBAAiB,sCAAsC,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM;AACnG,QAAI,iBAAiB,kBAAkB,IAAI;AACzC,aAAO,aAAa,KAAK,OAAO,OAAO,kBAAkB,OAAO,CAAC;AAAA,IACnE,WAAW,iBAAiB,YAAY,KAAK,YAAY,GAAG;AAC1D,aAAO,aAAa,KAAK,OAAO,OAAO,iBAAiB,YAAY,KAAK,YAAY,EAAE,OAAO,CAAC;AAAA,IACjG;AACA,WAAO,IAAI,aAAa,MAAM,EAAE,QAAQ,IAAI,CAAC;AAAA,EAC/C,CAAC;AAAA,EACD,KAAK,KAAK,GAAG,iBAAiB,gCAAgC,OAAO,EAAE,QAAQ,MAAM;AACnF,UAAM,EAAE,iBAAiB,CAAC,EAAE,IAAI,MAAM,QAAQ,KAAK;AACnD,QAAI,eAAe,SAAS,kBAAkB,EAAE,GAAG;AACjD,aAAO,aAAa,KAAK,CAAC,CAAC;AAAA,IAC7B,WAAW,eAAe,MAAM,QAAM,iBAAiB,YAAY,KAAK,EAAE,CAAC,GAAG;AAC5E,YAAM,QAAQ,eAAe,IAAI,SAAO,EAAE,IAAI,OAAO,iBAAiB,YAAY,KAAK,EAAE,EAAE,WAAW,OAAO,EAAE;AAC/G,aAAO,aAAa,KAAK,KAAK;AAAA,IAChC;AACA,WAAO,IAAI,aAAa,MAAM,EAAE,QAAQ,IAAI,CAAC;AAAA,EAC/C,CAAC;AAAA,EACD,KAAK,IAAI,GAAG,iBAAiB,oDAAoD,CAAC,EAAE,QAAQ,EAAE,cAAc,SAAS,EAAE,MAAM;AAC3H,QAAI,iBAAiB,YAAY,KAAK,YAAY,KAAK,iBAAiB,YAAY,KAAK,YAAY,EAAE,QAAQ,QAAQ,GAAG;AACxH,aAAO,aAAa,KAAK,MAAM;AAAA,IACjC;AACA,WAAO,IAAI,aAAa,MAAM,EAAE,QAAQ,IAAI,CAAC;AAAA,EAC/C,CAAC;AAAA,EACD,KAAK,KAAK,GAAG,iBAAiB,gBAAgB,OAAO,EAAE,QAAQ,MAAM;AACnE,UAAM,OAAO,MAAM,QAAQ,KAAK;AAChC,QAAI,CAAC,OAAO,KAAK,IAAI,EAAE,QAAQ;AAC7B,aAAO,IAAI,aAAa,KAAK,UAAU,CAAC,CAAC,GAAG,EAAE,QAAQ,IAAI,CAAC;AAAA,IAC7D;AACA,WAAO,IAAI,aAAa,KAAK,UAAU,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,gBAAgB,kBAAkB,EAAE,GAAG,EAAE,CAAC;AAAA,EAC/G,CAAC;AAAA,EACD,KAAK,KAAK,GAAG,mBAAmB,gBAAgB,OAAO,EAAE,QAAQ,MAAM;AACrE,UAAM,EAAE,WAAW,UAAU,CAAC,EAAE,IAAI,MAAM,QAAQ,KAAK;AACvD,QAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,QAAQ;AAClC,aAAO,IAAI,aAAa,KAAK,UAAU,CAAC,CAAC,GAAG,EAAE,QAAQ,IAAI,CAAC;AAAA,IAC7D;AACA,WAAO,IAAI,aAAa,KAAK,UAAU,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,gBAAgB,kBAAkB,EAAE,GAAG,EAAE,CAAC;AAAA,EAC/G,CAAC;AAAA,EACD,KAAK,KAAK,GAAG,iBAAiB,uCAAuC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,GAAG,QAAQ,MAAM;AACvH,UAAM,EAAE,WAAW,UAAU,CAAC,EAAE,IAAI,MAAM,QAAQ,KAAK;AACvD,QAAI,aAAa,CAAC,CAAC,QAAQ,UAAU,oBAAoB,OAAO,KAAK,iBAAiB,QAAQ,OAAO,IAAI,EAAE,CAAC,GAAG;AAC7G,aAAO,IAAI,aAAa,KAAK,UAAU,CAAC,CAAC,GAAG,EAAE,QAAQ,IAAI,CAAC;AAAA,IAC7D;AACA,WAAO,IAAI,aAAa,KAAK,UAAU,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,gBAAgB,kBAAkB,EAAE,GAAG,EAAE,CAAC;AAAA,EAC/G,CAAC;AAAA,EACD,KAAK,MAAM,GAAG,iBAAiB,8BAA8B,OAAO,EAAE,QAAQ,EAAE,aAAa,GAAG,QAAQ,MAAM;AAC5G,UAAM,EAAE,mBAAmB,IAAI,MAAM,QAAQ,KAAK;AAClD,QAAI,iBAAiB,kBAAkB,MAAM,OAAO,KAAK,kBAAkB,EAAE,QAAQ;AACnF,aAAO,IAAI,aAAa,MAAM,EAAE,QAAQ,IAAI,CAAC;AAAA,IAC/C;AACA,WAAO,IAAI,aAAa,MAAM,EAAE,QAAQ,IAAI,CAAC;AAAA,EAC/C,CAAC;AAAA,EACD,KAAK,IAAI,GAAG,iBAAiB,qCAAqC,OAAO,EAAE,QAAQ,EAAE,aAAa,GAAG,QAAQ,MAAM;AACjH,UAAM,EAAE,OAAO,IAAI,MAAM,QAAQ,KAAK;AACtC,WAAO,IAAI,aAAa,KAAK,UAAU,CAAC,CAAC,GAAG;AAAA,MAC1C,QACE,WAAW,aACX,CAAC,GAAG,iBAAiB,YAAY,SAAS,QAAQ,eAAe,GAAG,iBAAiB,YAAY,SAAS,WAAW,aAAa,EAAE;AAAA,QAClI;AAAA,MACF,IACI,MACA;AAAA,IACR,CAAC;AAAA,EACH,CAAC;AAAA,EACD,KAAK,IAAI,GAAG,iBAAiB,2CAA2C,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM;AACxG,QAAI,iBAAiB,kBAAkB,IAAI;AACzC,aAAO,IAAI,aAAa,KAAK,UAAU,OAAO,OAAO,kBAAkB,OAAO,CAAC,GAAG;AAAA,QAChF,SAAS,EAAE,CAAC,YAAY,KAAK,GAAG,OAAO,KAAK,kBAAkB,OAAO,EAAE,OAAO;AAAA,MAChF,CAAC;AAAA,IACH,WAAW,iBAAiB,YAAY,KAAK,YAAY,GAAG;AAC1D,aAAO,IAAI,aAAa,KAAK,UAAU,OAAO,OAAO,iBAAiB,YAAY,KAAK,YAAY,EAAE,OAAO,CAAC,GAAG;AAAA,QAC9G,SAAS,EAAE,CAAC,YAAY,KAAK,GAAG,OAAO,KAAK,iBAAiB,YAAY,KAAK,YAAY,EAAE,OAAO,EAAE,OAAO;AAAA,MAC9G,CAAC;AAAA,IACH;AACA,WAAO,IAAI,aAAa,MAAM,EAAE,QAAQ,IAAI,CAAC;AAAA,EAC/C,CAAC;AAAA,EACD,KAAK,IAAI,GAAG,iBAAiB,WAAW,MAAM,aAAa,KAAK,uBAAuB,CAAC;AAAA,EACxF,KAAK,IAAI,GAAG,iBAAiB,wBAAwB,OAAO,EAAE,QAAQ,MAAM;AAC1E,UAAM,EAAE,cAAc,CAAC,EAAE,IAAI,MAAM,QAAQ,KAAK;AAChD,QAAI,YAAY,uBAAuB,IAAI;AACzC,aAAO,IAAI,aAAa,MAAM,EAAE,QAAQ,IAAI,CAAC;AAAA,IAC/C;AACA,WAAO,IAAI,aAAa,MAAM,EAAE,QAAQ,IAAI,CAAC;AAAA,EAC/C,CAAC;AAAA,EACD,KAAK,IAAI,GAAG,iBAAiB,kCAAkC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM;AAC3F,QAAI,aAAa,iBAAiB,QAAQ,KAAK,GAAG,IAAI;AACpD,aAAO,IAAI;AAAA,QACT,KAAK,UAAU;AAAA,UACb;AAAA,YACE,IAAI,kBAAkB,KAAK;AAAA,YAC3B,YAAY,EAAE,GAAG,mBAAmB,IAAI,iBAAiB,YAAY,KAAK,GAAG,IAAI,QAAQ,aAAa;AAAA,YACtG,QAAQ;AAAA,cACN,SAAS;AAAA,cACT,UAAU;AAAA,cACV,QAAQ;AAAA,cACR,IAAI;AAAA,cACJ,OAAO,EAAE,GAAG,iBAAiB,SAAS,KAAK,GAAG;AAAA,YAChD;AAAA,YACA,KAAK;AAAA,YACL,UAAU;AAAA,YACV,cAAc;AAAA,UAChB;AAAA,QACF,CAAC;AAAA,QACD;AAAA,UACE,SAAS,EAAE,CAAC,YAAY,KAAK,GAAG,GAAG;AAAA,QACrC;AAAA,MACF;AAAA,IACF;AACA,WAAO,IAAI,aAAa,MAAM,EAAE,QAAQ,IAAI,CAAC;AAAA,EAC/C,CAAC;AAAA,EACD,KAAK,OAAO,GAAG,iBAAiB,0CAA0C,MAAM,IAAI,aAAa,MAAM,EAAE,QAAQ,IAAI,CAAC,CAAC;AAAA,EACvH,KAAK,IAAI,gGAAgG,CAAC,EAAE,QAAQ,EAAE,cAAc,SAAS,EAAE,MAAM;AACnJ,QAAI,iBAAiB,iBAAiB,YAAY,KAAK,GAAG,MAAM,aAAa,iBAAiB,QAAQ,KAAK,GAAG,IAAI;AAChH,YAAM,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYrB,aAAO,aAAa,KAAK,YAAY;AAAA,IACvC;AACA,QAAI,iBAAiB,2BAA2B;AAC9C,aAAO,IAAI,aAAa,KAAK,UAAU,EAAE,OAAO,sBAAsB,CAAC,GAAG,EAAE,QAAQ,IAAI,CAAC;AAAA,IAC3F;AACA,QAAI,iBAAiB,oBAAoB;AACvC,aAAO,IAAI,aAAa,KAAK,UAAU,EAAE,OAAO,kBAAkB,CAAC,GAAG,EAAE,QAAQ,IAAI,CAAC;AAAA,IACvF;AACA,WAAO,IAAI,aAAa,MAAM,EAAE,QAAQ,IAAI,CAAC;AAAA,EAC/C,CAAC;AACH;","names":[]}
|
|
@@ -298,7 +298,7 @@ var deviceHandlers = [
|
|
|
298
298
|
`${deviceConnect}/devices/:deviceId/upload`,
|
|
299
299
|
({ params: { deviceId } }) => new HttpResponse(null, { status: mockApiResponses.devices.byId[deviceId] ? 200 : 517 })
|
|
300
300
|
),
|
|
301
|
-
http.get(`${deviceAuthV2}/
|
|
301
|
+
http.get(`${deviceAuthV2}/license`, () => HttpResponse.text("test,report"))
|
|
302
302
|
];
|
|
303
303
|
|
|
304
304
|
export {
|
|
@@ -306,4 +306,4 @@ export {
|
|
|
306
306
|
inventoryDevice,
|
|
307
307
|
deviceHandlers
|
|
308
308
|
};
|
|
309
|
-
//# sourceMappingURL=chunk-
|
|
309
|
+
//# sourceMappingURL=chunk-MC32ZMPJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/requestHandlers/deviceHandlers.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 {\n DEVICE_FILTERING_OPTIONS,\n DEVICE_STATES,\n deviceAuthV2,\n deviceConfig,\n deviceConnect,\n headerNames,\n inventoryApiUrl,\n inventoryApiUrlV2,\n iotManagerBaseURL,\n reportingApiUrl\n} from '@northern.tech/utils/constants';\nimport { HttpResponse, http } from 'msw';\n\nimport { defaultCreationDate, defaultMacAddress, mockApiResponses } from '../mockData';\n\nexport const defaultDeviceId = 'a1';\n\nconst deviceAuthDevice = {\n id: defaultDeviceId,\n identity_data: { mac: defaultMacAddress },\n status: 'accepted',\n decommissioning: false,\n created_ts: defaultCreationDate,\n updated_ts: '2019-01-01T09:25:00.000Z',\n auth_sets: [\n {\n id: 'auth1',\n identity_data: { mac: defaultMacAddress },\n pubkey: '-----BEGIN PUBLIC KEY-----\\nMIIBojWELzgJ62hcXIhAfqfoNiaB1326XZByZwcnHr5BuSPAgMBAAE=\\n-----END PUBLIC KEY-----\\n',\n ts: defaultCreationDate,\n status: 'accepted'\n }\n ]\n};\n\nconst checkInTimeExact = '2019-01-01T10:25:00.000Z';\nconst updatedTime = '2019-01-01T09:25:00.000Z';\n\nexport const inventoryDevice = {\n id: defaultDeviceId,\n attributes: [\n { name: 'network_interfaces', value: ['eth0', 'wlan0'], scope: 'inventory' },\n { name: 'kernel', value: 'Linux version 4.19.75-v7l+', scope: 'inventory' },\n { name: 'artifact_name', value: 'raspotifyInstaller', scope: 'inventory' },\n { name: 'ipv6_wlan0', value: 'fe80::68d9:8453:3e9c:7c80/64', scope: 'inventory' },\n { name: 'mac_eth0', value: defaultMacAddress, scope: 'inventory' },\n { name: 'rootfs_type', value: 'ext4', scope: 'inventory' },\n { name: 'mender_bootloader_integration', value: 'unknown', scope: 'inventory' },\n { name: 'cpu_model', value: 'ARMv7 Processor rev 3 (v7l)', scope: 'inventory' },\n { name: 'hostname', value: 'raspberrypi', scope: 'inventory' },\n { name: 'mender_client_version', value: '2.1.0', scope: 'inventory' },\n { name: 'ipv4_wlan0', value: '192.168.10.141/24', scope: 'inventory' },\n { name: 'device_type', value: 'raspberrypi4', scope: 'inventory' },\n { name: 'mem_total_kB', value: '1986024', scope: 'inventory' },\n { name: 'mac_wlan0', value: 'dc:a6:32:12:ad:c0', scope: 'inventory' },\n { name: 'os', value: 'Raspbian GNU/Linux 10 (buster)', scope: 'inventory' },\n { name: 'created_ts', value: defaultCreationDate, scope: 'system' },\n { name: 'updated_ts', value: updatedTime, scope: 'system' },\n { name: 'status', value: 'accepted', scope: 'identity' },\n { name: 'mac', value: defaultMacAddress, scope: 'identity' },\n { name: 'group', value: 'test', scope: 'system' }\n ],\n check_in_time: checkInTimeExact,\n updated_ts: updatedTime\n};\n\nconst deviceAttributes = [\n { name: 'status', scope: 'identity', count: 5 },\n { name: 'created_ts', scope: 'system', count: 5 },\n { name: 'updated_ts', scope: 'system', count: 5 },\n { name: 'mac', scope: 'identity', count: 1 },\n { name: 'artifact_name', scope: 'inventory', count: 1 },\n { name: 'cpu_model', scope: 'inventory', count: 1 },\n { name: 'device_type', scope: 'inventory', count: 1 },\n { name: 'hostname', scope: 'inventory', count: 1 },\n { name: 'ipv4_wlan0', scope: 'inventory', count: 1 },\n { name: 'ipv6_wlan0', scope: 'inventory', count: 1 },\n { name: 'kernel', scope: 'inventory', count: 1 },\n { name: 'mac_eth0', scope: 'inventory', count: 1 },\n { name: 'mac_wlan0', scope: 'inventory', count: 1 },\n { name: 'mem_total_kB', scope: 'inventory', count: 1 },\n { name: 'mender_bootloader_integration', scope: 'inventory', count: 1 },\n { name: 'mender_client_version', scope: 'inventory', count: 1 },\n { name: 'network_interfaces', scope: 'inventory', count: 1 },\n { name: 'os', scope: 'inventory', count: 1 },\n { name: 'rootfs_type', scope: 'inventory', count: 1 },\n { name: 'group', scope: 'system', count: 1 }\n];\n\nconst searchHandler = async ({ request }) => {\n const { page, per_page, filters } = await request.json();\n if ([page, per_page, filters].some(item => !item)) {\n return new HttpResponse(null, { status: 509 });\n }\n const filter = filters.find(filter => filter.scope === 'identity' && filter.attribute === 'status' && Object.values(DEVICE_STATES).includes(filter.value));\n const status = filter?.value || '';\n if (!status || filters.length > 1) {\n if (filters.find(filter => filter.attribute === 'group' && filter.value.includes(Object.keys(mockApiResponses.devices.groups.byId)[0]))) {\n return new HttpResponse(JSON.stringify([inventoryDevice, { ...inventoryDevice, id: 'b1' }]), {\n headers: { [headerNames.total]: 2 }\n });\n }\n if (filters.find(filter => filter.scope === 'monitor' && ['failed_last_update', 'alerts', 'auth_request'].includes(filter.attribute))) {\n return new HttpResponse(JSON.stringify([inventoryDevice]), { headers: { [headerNames.total]: 4 } });\n }\n return new HttpResponse(JSON.stringify([]), { headers: { [headerNames.total]: 0 } });\n }\n let deviceList = Array.from({ length: mockApiResponses.devices.byStatus[status].total }, (_, index) => ({\n ...inventoryDevice,\n attributes: [...inventoryDevice.attributes, { name: 'test-count', value: index, scope: 'system' }],\n id: `${String.fromCharCode('a'.charCodeAt(0) + index)}1`\n }));\n deviceList = deviceList.slice((page - 1) * per_page, page * per_page);\n return new HttpResponse(JSON.stringify(deviceList), { headers: { [headerNames.total]: mockApiResponses.devices.byStatus[status].total } });\n};\n\nexport const deviceHandlers = [\n http.delete(`${deviceAuthV2}/devices/:deviceId/auth/:authId`, ({ params: { authId, deviceId } }) => {\n if (mockApiResponses.devices.byId[deviceId].auth_sets.find(authSet => authSet.id === authId)) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 501 });\n }),\n http.delete(`${deviceAuthV2}/devices/:deviceId`, ({ params: { deviceId } }) => {\n if (mockApiResponses.devices.byId[deviceId]) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 502 });\n }),\n http.delete(`${inventoryApiUrl}/groups/:group`, ({ params: { group } }) => {\n if (mockApiResponses.devices.groups.byId[group]) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 515 });\n }),\n http.delete(`${inventoryApiUrl}/groups/:group/devices`, async ({ params: { group }, request }) => {\n const deviceIds = await request.json();\n if (mockApiResponses.devices.groups.byId[group] && deviceIds.every(id => !!mockApiResponses.devices.byId[id])) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 503 });\n }),\n http.delete(`${inventoryApiUrlV2}/filters/:filterId`, ({ params: { filterId } }) => {\n if (Object.values(mockApiResponses.devices.groups.byId).find(group => group.id === filterId)) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 504 });\n }),\n http.get(`${deviceAuthV2}/devices`, ({ request }) => {\n const { searchParams } = new URL(request.url);\n const deviceIds = searchParams.getAll('id');\n if (deviceIds.every(id => !!mockApiResponses.devices.byId[id])) {\n return HttpResponse.json(deviceIds.map(id => ({ ...deviceAuthDevice, id })));\n }\n return new HttpResponse(null, { status: 505 });\n }),\n http.get(`${deviceAuthV2}/limits/max_devices`, () => HttpResponse.json({ limit: mockApiResponses.devices.limit })),\n http.get(`${inventoryApiUrl}/devices/:deviceId`, ({ params: { deviceId } }) => {\n if (mockApiResponses.devices.byId[deviceId]) {\n return HttpResponse.json(inventoryDevice);\n }\n return new HttpResponse(null, { status: 506 });\n }),\n http.put(`${inventoryApiUrl}/devices/:deviceId/tags`, async ({ params: { deviceId }, request }) => {\n const tags = await request.json();\n if (!mockApiResponses.devices.byId[deviceId] && !Array.isArray(tags) && !tags.every(item => item.name && item.value)) {\n return new HttpResponse(null, { status: 506 });\n }\n return HttpResponse.json(tags);\n }),\n http.get(`${inventoryApiUrl}/groups`, () => {\n const groups = Object.entries(mockApiResponses.devices.groups.byId).reduce((accu, [groupName, group]) => {\n if (!group.id) {\n accu.push(groupName);\n }\n return accu;\n }, []);\n return HttpResponse.json(groups);\n }),\n http.get(`${inventoryApiUrlV2}/filters/attributes`, () => HttpResponse.json(deviceAttributes)),\n http.get(`${reportingApiUrl}/devices/attributes`, () => HttpResponse.json({ attributes: deviceAttributes, count: deviceAttributes.length, limit: 100 })),\n http.get(`${reportingApiUrl}/devices/search/attributes`, () => HttpResponse.json(deviceAttributes)),\n http.post(`${reportingApiUrl}/devices/aggregate`, () =>\n HttpResponse.json([\n {\n name: '*',\n items: [\n { key: 'test', count: 6 },\n { key: 'original', count: 1 }\n ],\n other_count: 42\n }\n ])\n ),\n http.get(`${inventoryApiUrlV2}/filters`, () =>\n HttpResponse.json([\n {\n id: 'filter1',\n name: 'testGroupDynamic',\n terms: [\n { scope: 'identity', attribute: 'id', type: '$in', value: [defaultDeviceId] },\n { scope: 'identity', attribute: 'mac', type: '$exists', value: false },\n { scope: 'identity', attribute: 'kernel', type: '$exists', value: true }\n ]\n }\n ])\n ),\n http.patch(`${inventoryApiUrl}/groups/:group/devices`, async ({ params: { group }, request }) => {\n const deviceIds = await request.json();\n if (!!group && deviceIds.every(id => !!mockApiResponses.devices.byId[id])) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 508 });\n }),\n http.post(`${deviceAuthV2}/devices`, async ({ request }) => {\n const authset = await request.json();\n if (\n Object.values(mockApiResponses.devices.byId).some(device =>\n device.auth_sets.some(deviceAuthSet => deviceAuthSet.pubkey == authset.pubkey || deviceAuthSet.identity_data == authset.identity_data)\n )\n ) {\n return new HttpResponse(null, { status: 409 });\n }\n return new HttpResponse(null, { status: 200 });\n }),\n http.post(`${inventoryApiUrlV2}/filters/search`, searchHandler),\n http.post(`${reportingApiUrl}/filters/search`, searchHandler),\n http.post(`${inventoryApiUrlV2}/filters`, async ({ request }) => {\n const { name, terms } = await request.json();\n if (\n [name, terms].some(item => !item) ||\n mockApiResponses.devices.groups[name] ||\n !terms.every(term => DEVICE_FILTERING_OPTIONS[term.type] && ['identity', 'inventory', 'system'].includes(term.scope) && !!term.value && !!term.attribute)\n ) {\n return new HttpResponse(null, { status: 510 });\n }\n return new HttpResponse(JSON.stringify({}), { headers: { location: 'find/me/here/createdFilterId' } });\n }),\n http.put(`${deviceAuthV2}/devices/:deviceId/auth/:authId/status`, async ({ params: { authId, deviceId }, request }) => {\n const { status } = await request.json();\n if (mockApiResponses.devices.byId[deviceId].auth_sets.find(authSet => authSet.id === authId) && DEVICE_STATES[status]) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 511 });\n }),\n http.get(`${deviceConfig}/:deviceId`, ({ params: { deviceId } }) => {\n if (deviceId === 'testId') {\n return new HttpResponse(JSON.stringify({ error: { status_code: 404 } }), { status: 404 });\n }\n if (mockApiResponses.devices.byId[deviceId]) {\n return HttpResponse.json({\n configured: { test: true, something: 'else', aNumber: 42 },\n deployment_id: 'config1',\n reported: { test: true, something: 'else', aNumber: 42 },\n updated_ts: updatedTime,\n reported_ts: '2019-01-01T09:25:01.000Z'\n });\n }\n return new HttpResponse(null, { status: 512 });\n }),\n http.put(`${deviceConfig}/:deviceId`, async ({ params: { deviceId }, request }) => {\n const body = await request.text();\n if (body.includes('evilValue')) {\n return new HttpResponse(null, { status: 418 });\n }\n return new HttpResponse(null, { status: mockApiResponses.devices.byId[deviceId] ? 201 : 513 });\n }),\n http.post(`${deviceConfig}/:deviceId/deploy`, ({ params: { deviceId } }) => {\n if (mockApiResponses.devices.byId[deviceId]) {\n return HttpResponse.json({ deployment_id: 'config1' });\n }\n return new HttpResponse(null, { status: 514 });\n }),\n http.get(`${deviceConnect}/devices/:deviceId`, ({ params: { deviceId } }) => {\n if (deviceId === 'testId') {\n return new HttpResponse(JSON.stringify({ error: { status_code: 404 } }), { status: 404 });\n }\n if (mockApiResponses.devices.byId[deviceId]) {\n return HttpResponse.json({ status: 'connected', updated_ts: mockApiResponses.devices.byId[deviceId].updated_ts });\n }\n return new HttpResponse(null, { status: 512 });\n }),\n http.post(`${deviceConnect}/devices/:deviceId/:action`, ({ params: { deviceId, action } }) => {\n if (['check-update', 'send-inventory'].includes(action) && mockApiResponses.devices.byId[deviceId]) {\n return new HttpResponse(null, { status: 202 });\n }\n return new HttpResponse(null, { status: 518 });\n }),\n http.get(`${iotManagerBaseURL}/devices/:deviceId/state`, ({ params: { deviceId } }) => {\n if (mockApiResponses.devices.byId[deviceId]) {\n return HttpResponse.json({ deployment_id: mockApiResponses.deployments.byId.d1.id });\n }\n return new HttpResponse(null, { status: 515 });\n }),\n http.put(`${iotManagerBaseURL}/devices/:deviceId/state/:integrationId`, async ({ params: { deviceId }, request }) => {\n const body = await request.json();\n if (mockApiResponses.devices.byId[deviceId] && body) {\n return HttpResponse.json({ deployment_id: mockApiResponses.deployments.byId.d1.id });\n }\n return new HttpResponse(null, { status: 516 });\n }),\n http.put(\n `${deviceConnect}/devices/:deviceId/upload`,\n ({ params: { deviceId } }) => new HttpResponse(null, { status: mockApiResponses.devices.byId[deviceId] ? 200 : 517 })\n ),\n http.get(`${deviceAuthV2}/reports/devices`, () => HttpResponse.text('test,report'))\n];\n"],"mappings":"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","names":["filter"]}
|
|
1
|
+
{"version":3,"sources":["../src/requestHandlers/deviceHandlers.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 {\n DEVICE_FILTERING_OPTIONS,\n DEVICE_STATES,\n deviceAuthV2,\n deviceConfig,\n deviceConnect,\n headerNames,\n inventoryApiUrl,\n inventoryApiUrlV2,\n iotManagerBaseURL,\n reportingApiUrl\n} from '@northern.tech/utils/constants';\nimport { HttpResponse, http } from 'msw';\n\nimport { defaultCreationDate, defaultMacAddress, mockApiResponses } from '../mockData';\n\nexport const defaultDeviceId = 'a1';\n\nconst deviceAuthDevice = {\n id: defaultDeviceId,\n identity_data: { mac: defaultMacAddress },\n status: 'accepted',\n decommissioning: false,\n created_ts: defaultCreationDate,\n updated_ts: '2019-01-01T09:25:00.000Z',\n auth_sets: [\n {\n id: 'auth1',\n identity_data: { mac: defaultMacAddress },\n pubkey: '-----BEGIN PUBLIC KEY-----\\nMIIBojWELzgJ62hcXIhAfqfoNiaB1326XZByZwcnHr5BuSPAgMBAAE=\\n-----END PUBLIC KEY-----\\n',\n ts: defaultCreationDate,\n status: 'accepted'\n }\n ]\n};\n\nconst checkInTimeExact = '2019-01-01T10:25:00.000Z';\nconst updatedTime = '2019-01-01T09:25:00.000Z';\n\nexport const inventoryDevice = {\n id: defaultDeviceId,\n attributes: [\n { name: 'network_interfaces', value: ['eth0', 'wlan0'], scope: 'inventory' },\n { name: 'kernel', value: 'Linux version 4.19.75-v7l+', scope: 'inventory' },\n { name: 'artifact_name', value: 'raspotifyInstaller', scope: 'inventory' },\n { name: 'ipv6_wlan0', value: 'fe80::68d9:8453:3e9c:7c80/64', scope: 'inventory' },\n { name: 'mac_eth0', value: defaultMacAddress, scope: 'inventory' },\n { name: 'rootfs_type', value: 'ext4', scope: 'inventory' },\n { name: 'mender_bootloader_integration', value: 'unknown', scope: 'inventory' },\n { name: 'cpu_model', value: 'ARMv7 Processor rev 3 (v7l)', scope: 'inventory' },\n { name: 'hostname', value: 'raspberrypi', scope: 'inventory' },\n { name: 'mender_client_version', value: '2.1.0', scope: 'inventory' },\n { name: 'ipv4_wlan0', value: '192.168.10.141/24', scope: 'inventory' },\n { name: 'device_type', value: 'raspberrypi4', scope: 'inventory' },\n { name: 'mem_total_kB', value: '1986024', scope: 'inventory' },\n { name: 'mac_wlan0', value: 'dc:a6:32:12:ad:c0', scope: 'inventory' },\n { name: 'os', value: 'Raspbian GNU/Linux 10 (buster)', scope: 'inventory' },\n { name: 'created_ts', value: defaultCreationDate, scope: 'system' },\n { name: 'updated_ts', value: updatedTime, scope: 'system' },\n { name: 'status', value: 'accepted', scope: 'identity' },\n { name: 'mac', value: defaultMacAddress, scope: 'identity' },\n { name: 'group', value: 'test', scope: 'system' }\n ],\n check_in_time: checkInTimeExact,\n updated_ts: updatedTime\n};\n\nconst deviceAttributes = [\n { name: 'status', scope: 'identity', count: 5 },\n { name: 'created_ts', scope: 'system', count: 5 },\n { name: 'updated_ts', scope: 'system', count: 5 },\n { name: 'mac', scope: 'identity', count: 1 },\n { name: 'artifact_name', scope: 'inventory', count: 1 },\n { name: 'cpu_model', scope: 'inventory', count: 1 },\n { name: 'device_type', scope: 'inventory', count: 1 },\n { name: 'hostname', scope: 'inventory', count: 1 },\n { name: 'ipv4_wlan0', scope: 'inventory', count: 1 },\n { name: 'ipv6_wlan0', scope: 'inventory', count: 1 },\n { name: 'kernel', scope: 'inventory', count: 1 },\n { name: 'mac_eth0', scope: 'inventory', count: 1 },\n { name: 'mac_wlan0', scope: 'inventory', count: 1 },\n { name: 'mem_total_kB', scope: 'inventory', count: 1 },\n { name: 'mender_bootloader_integration', scope: 'inventory', count: 1 },\n { name: 'mender_client_version', scope: 'inventory', count: 1 },\n { name: 'network_interfaces', scope: 'inventory', count: 1 },\n { name: 'os', scope: 'inventory', count: 1 },\n { name: 'rootfs_type', scope: 'inventory', count: 1 },\n { name: 'group', scope: 'system', count: 1 }\n];\n\nconst searchHandler = async ({ request }) => {\n const { page, per_page, filters } = await request.json();\n if ([page, per_page, filters].some(item => !item)) {\n return new HttpResponse(null, { status: 509 });\n }\n const filter = filters.find(filter => filter.scope === 'identity' && filter.attribute === 'status' && Object.values(DEVICE_STATES).includes(filter.value));\n const status = filter?.value || '';\n if (!status || filters.length > 1) {\n if (filters.find(filter => filter.attribute === 'group' && filter.value.includes(Object.keys(mockApiResponses.devices.groups.byId)[0]))) {\n return new HttpResponse(JSON.stringify([inventoryDevice, { ...inventoryDevice, id: 'b1' }]), {\n headers: { [headerNames.total]: 2 }\n });\n }\n if (filters.find(filter => filter.scope === 'monitor' && ['failed_last_update', 'alerts', 'auth_request'].includes(filter.attribute))) {\n return new HttpResponse(JSON.stringify([inventoryDevice]), { headers: { [headerNames.total]: 4 } });\n }\n return new HttpResponse(JSON.stringify([]), { headers: { [headerNames.total]: 0 } });\n }\n let deviceList = Array.from({ length: mockApiResponses.devices.byStatus[status].total }, (_, index) => ({\n ...inventoryDevice,\n attributes: [...inventoryDevice.attributes, { name: 'test-count', value: index, scope: 'system' }],\n id: `${String.fromCharCode('a'.charCodeAt(0) + index)}1`\n }));\n deviceList = deviceList.slice((page - 1) * per_page, page * per_page);\n return new HttpResponse(JSON.stringify(deviceList), { headers: { [headerNames.total]: mockApiResponses.devices.byStatus[status].total } });\n};\n\nexport const deviceHandlers = [\n http.delete(`${deviceAuthV2}/devices/:deviceId/auth/:authId`, ({ params: { authId, deviceId } }) => {\n if (mockApiResponses.devices.byId[deviceId].auth_sets.find(authSet => authSet.id === authId)) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 501 });\n }),\n http.delete(`${deviceAuthV2}/devices/:deviceId`, ({ params: { deviceId } }) => {\n if (mockApiResponses.devices.byId[deviceId]) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 502 });\n }),\n http.delete(`${inventoryApiUrl}/groups/:group`, ({ params: { group } }) => {\n if (mockApiResponses.devices.groups.byId[group]) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 515 });\n }),\n http.delete(`${inventoryApiUrl}/groups/:group/devices`, async ({ params: { group }, request }) => {\n const deviceIds = await request.json();\n if (mockApiResponses.devices.groups.byId[group] && deviceIds.every(id => !!mockApiResponses.devices.byId[id])) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 503 });\n }),\n http.delete(`${inventoryApiUrlV2}/filters/:filterId`, ({ params: { filterId } }) => {\n if (Object.values(mockApiResponses.devices.groups.byId).find(group => group.id === filterId)) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 504 });\n }),\n http.get(`${deviceAuthV2}/devices`, ({ request }) => {\n const { searchParams } = new URL(request.url);\n const deviceIds = searchParams.getAll('id');\n if (deviceIds.every(id => !!mockApiResponses.devices.byId[id])) {\n return HttpResponse.json(deviceIds.map(id => ({ ...deviceAuthDevice, id })));\n }\n return new HttpResponse(null, { status: 505 });\n }),\n http.get(`${deviceAuthV2}/limits/max_devices`, () => HttpResponse.json({ limit: mockApiResponses.devices.limit })),\n http.get(`${inventoryApiUrl}/devices/:deviceId`, ({ params: { deviceId } }) => {\n if (mockApiResponses.devices.byId[deviceId]) {\n return HttpResponse.json(inventoryDevice);\n }\n return new HttpResponse(null, { status: 506 });\n }),\n http.put(`${inventoryApiUrl}/devices/:deviceId/tags`, async ({ params: { deviceId }, request }) => {\n const tags = await request.json();\n if (!mockApiResponses.devices.byId[deviceId] && !Array.isArray(tags) && !tags.every(item => item.name && item.value)) {\n return new HttpResponse(null, { status: 506 });\n }\n return HttpResponse.json(tags);\n }),\n http.get(`${inventoryApiUrl}/groups`, () => {\n const groups = Object.entries(mockApiResponses.devices.groups.byId).reduce((accu, [groupName, group]) => {\n if (!group.id) {\n accu.push(groupName);\n }\n return accu;\n }, []);\n return HttpResponse.json(groups);\n }),\n http.get(`${inventoryApiUrlV2}/filters/attributes`, () => HttpResponse.json(deviceAttributes)),\n http.get(`${reportingApiUrl}/devices/attributes`, () => HttpResponse.json({ attributes: deviceAttributes, count: deviceAttributes.length, limit: 100 })),\n http.get(`${reportingApiUrl}/devices/search/attributes`, () => HttpResponse.json(deviceAttributes)),\n http.post(`${reportingApiUrl}/devices/aggregate`, () =>\n HttpResponse.json([\n {\n name: '*',\n items: [\n { key: 'test', count: 6 },\n { key: 'original', count: 1 }\n ],\n other_count: 42\n }\n ])\n ),\n http.get(`${inventoryApiUrlV2}/filters`, () =>\n HttpResponse.json([\n {\n id: 'filter1',\n name: 'testGroupDynamic',\n terms: [\n { scope: 'identity', attribute: 'id', type: '$in', value: [defaultDeviceId] },\n { scope: 'identity', attribute: 'mac', type: '$exists', value: false },\n { scope: 'identity', attribute: 'kernel', type: '$exists', value: true }\n ]\n }\n ])\n ),\n http.patch(`${inventoryApiUrl}/groups/:group/devices`, async ({ params: { group }, request }) => {\n const deviceIds = await request.json();\n if (!!group && deviceIds.every(id => !!mockApiResponses.devices.byId[id])) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 508 });\n }),\n http.post(`${deviceAuthV2}/devices`, async ({ request }) => {\n const authset = await request.json();\n if (\n Object.values(mockApiResponses.devices.byId).some(device =>\n device.auth_sets.some(deviceAuthSet => deviceAuthSet.pubkey == authset.pubkey || deviceAuthSet.identity_data == authset.identity_data)\n )\n ) {\n return new HttpResponse(null, { status: 409 });\n }\n return new HttpResponse(null, { status: 200 });\n }),\n http.post(`${inventoryApiUrlV2}/filters/search`, searchHandler),\n http.post(`${reportingApiUrl}/filters/search`, searchHandler),\n http.post(`${inventoryApiUrlV2}/filters`, async ({ request }) => {\n const { name, terms } = await request.json();\n if (\n [name, terms].some(item => !item) ||\n mockApiResponses.devices.groups[name] ||\n !terms.every(term => DEVICE_FILTERING_OPTIONS[term.type] && ['identity', 'inventory', 'system'].includes(term.scope) && !!term.value && !!term.attribute)\n ) {\n return new HttpResponse(null, { status: 510 });\n }\n return new HttpResponse(JSON.stringify({}), { headers: { location: 'find/me/here/createdFilterId' } });\n }),\n http.put(`${deviceAuthV2}/devices/:deviceId/auth/:authId/status`, async ({ params: { authId, deviceId }, request }) => {\n const { status } = await request.json();\n if (mockApiResponses.devices.byId[deviceId].auth_sets.find(authSet => authSet.id === authId) && DEVICE_STATES[status]) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 511 });\n }),\n http.get(`${deviceConfig}/:deviceId`, ({ params: { deviceId } }) => {\n if (deviceId === 'testId') {\n return new HttpResponse(JSON.stringify({ error: { status_code: 404 } }), { status: 404 });\n }\n if (mockApiResponses.devices.byId[deviceId]) {\n return HttpResponse.json({\n configured: { test: true, something: 'else', aNumber: 42 },\n deployment_id: 'config1',\n reported: { test: true, something: 'else', aNumber: 42 },\n updated_ts: updatedTime,\n reported_ts: '2019-01-01T09:25:01.000Z'\n });\n }\n return new HttpResponse(null, { status: 512 });\n }),\n http.put(`${deviceConfig}/:deviceId`, async ({ params: { deviceId }, request }) => {\n const body = await request.text();\n if (body.includes('evilValue')) {\n return new HttpResponse(null, { status: 418 });\n }\n return new HttpResponse(null, { status: mockApiResponses.devices.byId[deviceId] ? 201 : 513 });\n }),\n http.post(`${deviceConfig}/:deviceId/deploy`, ({ params: { deviceId } }) => {\n if (mockApiResponses.devices.byId[deviceId]) {\n return HttpResponse.json({ deployment_id: 'config1' });\n }\n return new HttpResponse(null, { status: 514 });\n }),\n http.get(`${deviceConnect}/devices/:deviceId`, ({ params: { deviceId } }) => {\n if (deviceId === 'testId') {\n return new HttpResponse(JSON.stringify({ error: { status_code: 404 } }), { status: 404 });\n }\n if (mockApiResponses.devices.byId[deviceId]) {\n return HttpResponse.json({ status: 'connected', updated_ts: mockApiResponses.devices.byId[deviceId].updated_ts });\n }\n return new HttpResponse(null, { status: 512 });\n }),\n http.post(`${deviceConnect}/devices/:deviceId/:action`, ({ params: { deviceId, action } }) => {\n if (['check-update', 'send-inventory'].includes(action) && mockApiResponses.devices.byId[deviceId]) {\n return new HttpResponse(null, { status: 202 });\n }\n return new HttpResponse(null, { status: 518 });\n }),\n http.get(`${iotManagerBaseURL}/devices/:deviceId/state`, ({ params: { deviceId } }) => {\n if (mockApiResponses.devices.byId[deviceId]) {\n return HttpResponse.json({ deployment_id: mockApiResponses.deployments.byId.d1.id });\n }\n return new HttpResponse(null, { status: 515 });\n }),\n http.put(`${iotManagerBaseURL}/devices/:deviceId/state/:integrationId`, async ({ params: { deviceId }, request }) => {\n const body = await request.json();\n if (mockApiResponses.devices.byId[deviceId] && body) {\n return HttpResponse.json({ deployment_id: mockApiResponses.deployments.byId.d1.id });\n }\n return new HttpResponse(null, { status: 516 });\n }),\n http.put(\n `${deviceConnect}/devices/:deviceId/upload`,\n ({ params: { deviceId } }) => new HttpResponse(null, { status: mockApiResponses.devices.byId[deviceId] ? 200 : 517 })\n ),\n http.get(`${deviceAuthV2}/license`, () => HttpResponse.text('test,report'))\n];\n"],"mappings":"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","names":["filter"]}
|
|
@@ -64,10 +64,10 @@ var userHandlers = [
|
|
|
64
64
|
return HttpResponse.json(mockApiResponses.users.byId[userId]);
|
|
65
65
|
}),
|
|
66
66
|
http.get(`${useradmApiUrl}/users/exists`, ({ request }) => {
|
|
67
|
-
const
|
|
68
|
-
const email = searchParams.get("email");
|
|
69
|
-
if (email
|
|
70
|
-
return HttpResponse
|
|
67
|
+
const url = new URL(request.url);
|
|
68
|
+
const email = url.searchParams.get("email");
|
|
69
|
+
if (!decodeURIComponent(email).includes("child+123")) {
|
|
70
|
+
return new HttpResponse(null, { status: 578 });
|
|
71
71
|
}
|
|
72
72
|
return HttpResponse.json({ exists: true });
|
|
73
73
|
}),
|
|
@@ -114,6 +114,7 @@ var userHandlers = [
|
|
|
114
114
|
}
|
|
115
115
|
return new HttpResponse(null, { status: 568 });
|
|
116
116
|
}),
|
|
117
|
+
http.post(`${useradmApiUrlv2}/support/feedback/product`, async () => new HttpResponse(null, { status: 200 })),
|
|
117
118
|
http.delete(
|
|
118
119
|
`${useradmApiUrl}/roles/:roleId`,
|
|
119
120
|
({ params: { roleId } }) => new HttpResponse(null, { status: mockApiResponses.users.rolesById[roleId] ? 200 : 569 })
|
|
@@ -184,4 +185,4 @@ var userHandlers = [
|
|
|
184
185
|
export {
|
|
185
186
|
userHandlers
|
|
186
187
|
};
|
|
187
|
-
//# sourceMappingURL=chunk-
|
|
188
|
+
//# sourceMappingURL=chunk-VCFPBRLT.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/requestHandlers/userHandlers.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 { APPLICATION_JWT_CONTENT_TYPE, useradmApiUrl, useradmApiUrlv2 } from '@northern.tech/utils/constants';\nimport { HttpResponse, http } from 'msw';\n\nimport { accessTokens, defaultPassword, userId as defaultUserId, mockApiResponses, permissionSets, rbacRoles, testSsoId, token } from '../mockData';\n\nexport const userHandlers = [\n http.post(`${useradmApiUrl}/auth/login`, ({ request }) => {\n const authHeader = request.headers.get('authorization');\n const authInfo = atob(authHeader?.split(' ')[1]);\n const [user, password] = authInfo.split(':');\n\n if (!password) {\n return HttpResponse.json({ id: testSsoId, kind: 'sso/saml' });\n } else if (password !== defaultPassword) {\n return new HttpResponse(null, { status: 401 });\n } else if (user.includes('limited')) {\n return new HttpResponse('limitedToken', { headers: { 'Content-Type': APPLICATION_JWT_CONTENT_TYPE } });\n } else if (user.includes('2fa')) {\n return new HttpResponse(JSON.stringify({ error: '2fa needed' }), { status: 401 });\n }\n\n return new HttpResponse(token, { headers: { 'Content-Type': APPLICATION_JWT_CONTENT_TYPE } });\n }),\n http.get(`https://hosted.mender.io${useradmApiUrl}/auth/magic/:id`, ({ params: { id } }) => {\n if (id) {\n return new HttpResponse('test', { headers: { 'Set-Cookie': 'JWT=test' } });\n }\n return new HttpResponse(null, { status: 400 });\n }),\n http.post(`${useradmApiUrl}/auth/logout`, () => new HttpResponse(null, { status: 200 })),\n http.post(`${useradmApiUrl}/auth/password-reset/:status`, async ({ params: { status }, request }) => {\n const { email, secret_hash, password } = await request.json();\n if (!['start', 'complete'].includes(status) && ![email, secret_hash, password].some(item => item)) {\n return new HttpResponse(null, { status: 560 });\n }\n if (status === 'start' && email) {\n return new HttpResponse(null, { status: 200 });\n }\n if (status === 'complete' && secret_hash && password) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 561 });\n }),\n http.put(`${useradmApiUrl}/2faverify`, async ({ request }) => {\n const { token2fa } = await request.json();\n if (!token2fa) {\n return new HttpResponse(null, { status: 562 });\n }\n return new HttpResponse(null, { status: 200 });\n }),\n http.get(`${useradmApiUrl}/users`, () => HttpResponse.json(Object.values(mockApiResponses.users.byId))),\n http.get(`${useradmApiUrl}/users/me`, ({ request }) => {\n const authHeader = request.headers.get('authorization');\n if (authHeader?.includes('limited')) {\n return new HttpResponse(JSON.stringify({ error: 'forbidden by role-based access control' }), { status: 403 });\n }\n return HttpResponse.json(mockApiResponses.users.byId[defaultUserId]);\n }),\n http.get(`${useradmApiUrl}/users/exists`, ({ request }) => {\n const { searchParams } = new URL(request.url);\n const email = searchParams.get('email');\n if (email === 'bad@example.com') { \n return HttpResponse.json({ exists: false });\n }\n return HttpResponse.json({ exists: true });\n }),\n http.get(`${useradmApiUrl}/users/:userId`, ({ params: { userId } }) => {\n if (userId === 'me' || mockApiResponses.users.byId[userId]) {\n const user = userId === 'me' ? defaultUserId : userId;\n return HttpResponse.json(mockApiResponses.users.byId[user]);\n }\n return new HttpResponse(null, { status: 563 });\n }),\n http.post(`${useradmApiUrl}/users`, async ({ request }) => {\n const { email, password } = await request.json();\n if (email === 'test@test.com' || [email, password].every(value => value)) {\n return HttpResponse.json(mockApiResponses.users.byId.a1);\n }\n return new HttpResponse(null, { status: 564 });\n }),\n http.put(`${useradmApiUrl}/users/:userId`, async ({ params: { userId }, request }) => {\n const { email, password, current_password } = await request.json();\n if (current_password === 'bad_password') {\n return new HttpResponse(null, { status: 401 });\n }\n if (\n (mockApiResponses.users.byId[userId] && [email, password].some(value => Object.values(mockApiResponses.users.byId[userId]).includes(value))) ||\n email === 'test@test.com'\n ) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 565 });\n }),\n http.delete(\n `${useradmApiUrl}/users/:userId`,\n ({ params: { userId } }) => new HttpResponse(null, { status: mockApiResponses.users.byId[userId] ? 200 : 566 })\n ),\n http.get(`${useradmApiUrl}/roles`, () => HttpResponse.json(rbacRoles)),\n http.post(`${useradmApiUrl}/roles`, async ({ request }) => {\n const { name, permissions } = await request.json();\n if (\n [name, permissions].every(value => value) &&\n permissions.every(permission => permission.action && permission.object && permission.object.type && permission.object.value)\n ) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 567 });\n }),\n http.put(`${useradmApiUrl}/roles/:roleId`, async ({ params: { roleId }, request }) => {\n const { description, name, permissions } = await request.json();\n if (mockApiResponses.users.rolesById[roleId] && [description, name, permissions].some(value => value)) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 568 });\n }),\n http.delete(\n `${useradmApiUrl}/roles/:roleId`,\n ({ params: { roleId } }) => new HttpResponse(null, { status: mockApiResponses.users.rolesById[roleId] ? 200 : 569 })\n ),\n http.get(`${useradmApiUrlv2}/roles`, () => HttpResponse.json(rbacRoles)),\n http.get(`${useradmApiUrlv2}/roles/:roleId`, async ({ params: { roleId } }) => {\n if (mockApiResponses.users.rolesById[roleId]) {\n return HttpResponse.json(mockApiResponses.users.rolesById[roleId]);\n }\n return new HttpResponse(null, { status: 571 });\n }),\n http.post(`${useradmApiUrlv2}/roles`, async ({ request }) => {\n const { name, permission_sets_with_scope } = await request.json();\n if (\n !!name &&\n permission_sets_with_scope.every(permission => permission.name && permissionSets.find(permissionSet => permissionSet.name === permission.name))\n ) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 572 });\n }),\n http.put(`${useradmApiUrlv2}/roles/:roleId`, async ({ params: { roleId }, request }) => {\n const { description, name, permission_sets_with_scope } = await request.json();\n if (mockApiResponses.users.rolesById[roleId] && [description, name, permission_sets_with_scope].some(value => value)) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 573 });\n }),\n http.delete(`${useradmApiUrlv2}/roles/:roleId`, ({ params: { roleId } }) => {\n if (mockApiResponses.users.rolesById[roleId]) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 574 });\n }),\n http.get(`${useradmApiUrl}/settings`, () => HttpResponse.json(mockApiResponses.users.globalSettings)),\n http.post(`${useradmApiUrl}/settings`, () => new HttpResponse(null, { status: 200 })),\n http.get(`${useradmApiUrl}/settings/me`, () => HttpResponse.json(mockApiResponses.users.userSettings)),\n http.post(`${useradmApiUrl}/settings/me`, () => new HttpResponse(null, { status: 200 })),\n http.get(`${useradmApiUrl}/settings/tokens`, () => HttpResponse.json(accessTokens)),\n http.post(`${useradmApiUrl}/settings/tokens`, () => HttpResponse.json('aNewToken')),\n http.delete(\n `${useradmApiUrl}/settings/tokens/:tokenId`,\n ({ params: { tokenId } }) => new HttpResponse(null, { status: tokenId === 'some-id-1' ? 200 : 577 })\n ),\n http.get(`${useradmApiUrl}/2faqr`, () => HttpResponse.json({ qr: btoa('test') })),\n http.post(`${useradmApiUrl}/users/:userId/2fa/enable`, ({ params: { userId } }) => {\n if (mockApiResponses.users.byId[userId] || userId === 'me') {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 570 });\n }),\n http.post(`${useradmApiUrl}/users/:userId/2fa/disable`, ({ params: { userId } }) => {\n if (mockApiResponses.users.byId[userId] || userId === 'me') {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 571 });\n }),\n http.post(`${useradmApiUrl}/auth/verify-email/start`, () => new HttpResponse(null, { status: 200 })),\n http.post(`${useradmApiUrl}/auth/verify-email/complete`, async ({ request }) => {\n const { secret_hash } = await request.json();\n return new HttpResponse(null, { status: secret_hash === 'superSecret' ? 200 : 576 });\n }),\n http.get(`${useradmApiUrlv2}/permission_sets`, () => HttpResponse.json(permissionSets)),\n http.post(`${useradmApiUrl}/users/:userId/assign`, async ({ request }) => {\n const { tenant_ids } = await request.json();\n return new HttpResponse(null, { status: tenant_ids.length ? 200 : 577 });\n }),\n http.get(`${useradmApiUrl}/users/tenants/:tenantId/token`, () => HttpResponse.text('differentToken'))\n];\n"],"mappings":"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","names":["userId"]}
|
|
1
|
+
{"version":3,"sources":["../src/requestHandlers/userHandlers.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 { APPLICATION_JWT_CONTENT_TYPE, useradmApiUrl, useradmApiUrlv2 } from '@northern.tech/utils/constants';\nimport { HttpResponse, http } from 'msw';\n\nimport { accessTokens, defaultPassword, userId as defaultUserId, mockApiResponses, permissionSets, rbacRoles, testSsoId, token } from '../mockData';\n\nexport const userHandlers = [\n http.post(`${useradmApiUrl}/auth/login`, ({ request }) => {\n const authHeader = request.headers.get('authorization');\n const authInfo = atob(authHeader?.split(' ')[1]);\n const [user, password] = authInfo.split(':');\n\n if (!password) {\n return HttpResponse.json({ id: testSsoId, kind: 'sso/saml' });\n } else if (password !== defaultPassword) {\n return new HttpResponse(null, { status: 401 });\n } else if (user.includes('limited')) {\n return new HttpResponse('limitedToken', { headers: { 'Content-Type': APPLICATION_JWT_CONTENT_TYPE } });\n } else if (user.includes('2fa')) {\n return new HttpResponse(JSON.stringify({ error: '2fa needed' }), { status: 401 });\n }\n\n return new HttpResponse(token, { headers: { 'Content-Type': APPLICATION_JWT_CONTENT_TYPE } });\n }),\n http.get(`https://hosted.mender.io${useradmApiUrl}/auth/magic/:id`, ({ params: { id } }) => {\n if (id) {\n return new HttpResponse('test', { headers: { 'Set-Cookie': 'JWT=test' } });\n }\n return new HttpResponse(null, { status: 400 });\n }),\n http.post(`${useradmApiUrl}/auth/logout`, () => new HttpResponse(null, { status: 200 })),\n http.post(`${useradmApiUrl}/auth/password-reset/:status`, async ({ params: { status }, request }) => {\n const { email, secret_hash, password } = await request.json();\n if (!['start', 'complete'].includes(status) && ![email, secret_hash, password].some(item => item)) {\n return new HttpResponse(null, { status: 560 });\n }\n if (status === 'start' && email) {\n return new HttpResponse(null, { status: 200 });\n }\n if (status === 'complete' && secret_hash && password) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 561 });\n }),\n http.put(`${useradmApiUrl}/2faverify`, async ({ request }) => {\n const { token2fa } = await request.json();\n if (!token2fa) {\n return new HttpResponse(null, { status: 562 });\n }\n return new HttpResponse(null, { status: 200 });\n }),\n http.get(`${useradmApiUrl}/users`, () => HttpResponse.json(Object.values(mockApiResponses.users.byId))),\n http.get(`${useradmApiUrl}/users/me`, ({ request }) => {\n const authHeader = request.headers.get('authorization');\n if (authHeader?.includes('limited')) {\n return new HttpResponse(JSON.stringify({ error: 'forbidden by role-based access control' }), { status: 403 });\n }\n return HttpResponse.json(mockApiResponses.users.byId[defaultUserId]);\n }),\n http.get(`${useradmApiUrl}/users/exists`, ({ request }) => {\n const url = new URL(request.url);\n const email = url.searchParams.get('email');\n if (!decodeURIComponent(email).includes('child+123')) {\n return new HttpResponse(null, { status: 578 });\n }\n return HttpResponse.json({ exists: true });\n }),\n http.get(`${useradmApiUrl}/users/:userId`, ({ params: { userId } }) => {\n if (userId === 'me' || mockApiResponses.users.byId[userId]) {\n const user = userId === 'me' ? defaultUserId : userId;\n return HttpResponse.json(mockApiResponses.users.byId[user]);\n }\n return new HttpResponse(null, { status: 563 });\n }),\n http.post(`${useradmApiUrl}/users`, async ({ request }) => {\n const { email, password } = await request.json();\n if (email === 'test@test.com' || [email, password].every(value => value)) {\n return HttpResponse.json(mockApiResponses.users.byId.a1);\n }\n return new HttpResponse(null, { status: 564 });\n }),\n http.put(`${useradmApiUrl}/users/:userId`, async ({ params: { userId }, request }) => {\n const { email, password, current_password } = await request.json();\n if (current_password === 'bad_password') {\n return new HttpResponse(null, { status: 401 });\n }\n if (\n (mockApiResponses.users.byId[userId] && [email, password].some(value => Object.values(mockApiResponses.users.byId[userId]).includes(value))) ||\n email === 'test@test.com'\n ) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 565 });\n }),\n http.delete(\n `${useradmApiUrl}/users/:userId`,\n ({ params: { userId } }) => new HttpResponse(null, { status: mockApiResponses.users.byId[userId] ? 200 : 566 })\n ),\n http.get(`${useradmApiUrl}/roles`, () => HttpResponse.json(rbacRoles)),\n http.post(`${useradmApiUrl}/roles`, async ({ request }) => {\n const { name, permissions } = await request.json();\n if (\n [name, permissions].every(value => value) &&\n permissions.every(permission => permission.action && permission.object && permission.object.type && permission.object.value)\n ) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 567 });\n }),\n http.put(`${useradmApiUrl}/roles/:roleId`, async ({ params: { roleId }, request }) => {\n const { description, name, permissions } = await request.json();\n if (mockApiResponses.users.rolesById[roleId] && [description, name, permissions].some(value => value)) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 568 });\n }),\n http.post(`${useradmApiUrlv2}/support/feedback/product`, async () => new HttpResponse(null, { status: 200 })),\n http.delete(\n `${useradmApiUrl}/roles/:roleId`,\n ({ params: { roleId } }) => new HttpResponse(null, { status: mockApiResponses.users.rolesById[roleId] ? 200 : 569 })\n ),\n http.get(`${useradmApiUrlv2}/roles`, () => HttpResponse.json(rbacRoles)),\n http.get(`${useradmApiUrlv2}/roles/:roleId`, async ({ params: { roleId } }) => {\n if (mockApiResponses.users.rolesById[roleId]) {\n return HttpResponse.json(mockApiResponses.users.rolesById[roleId]);\n }\n return new HttpResponse(null, { status: 571 });\n }),\n http.post(`${useradmApiUrlv2}/roles`, async ({ request }) => {\n const { name, permission_sets_with_scope } = await request.json();\n if (\n !!name &&\n permission_sets_with_scope.every(permission => permission.name && permissionSets.find(permissionSet => permissionSet.name === permission.name))\n ) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 572 });\n }),\n http.put(`${useradmApiUrlv2}/roles/:roleId`, async ({ params: { roleId }, request }) => {\n const { description, name, permission_sets_with_scope } = await request.json();\n if (mockApiResponses.users.rolesById[roleId] && [description, name, permission_sets_with_scope].some(value => value)) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 573 });\n }),\n http.delete(`${useradmApiUrlv2}/roles/:roleId`, ({ params: { roleId } }) => {\n if (mockApiResponses.users.rolesById[roleId]) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 574 });\n }),\n http.get(`${useradmApiUrl}/settings`, () => HttpResponse.json(mockApiResponses.users.globalSettings)),\n http.post(`${useradmApiUrl}/settings`, () => new HttpResponse(null, { status: 200 })),\n http.get(`${useradmApiUrl}/settings/me`, () => HttpResponse.json(mockApiResponses.users.userSettings)),\n http.post(`${useradmApiUrl}/settings/me`, () => new HttpResponse(null, { status: 200 })),\n http.get(`${useradmApiUrl}/settings/tokens`, () => HttpResponse.json(accessTokens)),\n http.post(`${useradmApiUrl}/settings/tokens`, () => HttpResponse.json('aNewToken')),\n http.delete(\n `${useradmApiUrl}/settings/tokens/:tokenId`,\n ({ params: { tokenId } }) => new HttpResponse(null, { status: tokenId === 'some-id-1' ? 200 : 577 })\n ),\n http.get(`${useradmApiUrl}/2faqr`, () => HttpResponse.json({ qr: btoa('test') })),\n http.post(`${useradmApiUrl}/users/:userId/2fa/enable`, ({ params: { userId } }) => {\n if (mockApiResponses.users.byId[userId] || userId === 'me') {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 570 });\n }),\n http.post(`${useradmApiUrl}/users/:userId/2fa/disable`, ({ params: { userId } }) => {\n if (mockApiResponses.users.byId[userId] || userId === 'me') {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 571 });\n }),\n http.post(`${useradmApiUrl}/auth/verify-email/start`, () => new HttpResponse(null, { status: 200 })),\n http.post(`${useradmApiUrl}/auth/verify-email/complete`, async ({ request }) => {\n const { secret_hash } = await request.json();\n return new HttpResponse(null, { status: secret_hash === 'superSecret' ? 200 : 576 });\n }),\n http.get(`${useradmApiUrlv2}/permission_sets`, () => HttpResponse.json(permissionSets)),\n http.post(`${useradmApiUrl}/users/:userId/assign`, async ({ request }) => {\n const { tenant_ids } = await request.json();\n return new HttpResponse(null, { status: tenant_ids.length ? 200 : 577 });\n }),\n http.get(`${useradmApiUrl}/users/tenants/:tenantId/token`, () => HttpResponse.text('differentToken'))\n];\n"],"mappings":"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","names":["userId"]}
|