@northern.tech/testing 0.18.3 → 0.18.4
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/requestHandlers/deploymentHandlers.cjs +1 -1
- package/dist/requestHandlers/deploymentHandlers.js +1 -1
- package/dist/requestHandlers/deviceHandlers.cjs +3 -7
- package/dist/requestHandlers/deviceHandlers.cjs.map +1 -1
- package/dist/requestHandlers/deviceHandlers.js +3 -7
- package/dist/requestHandlers/deviceHandlers.js.map +1 -1
- package/dist/requestHandlers/monitorHandlers.cjs +1 -1
- package/dist/requestHandlers/monitorHandlers.js +1 -1
- package/dist/requestHandlers/organizationHandlers.cjs +2 -2
- package/dist/requestHandlers/organizationHandlers.cjs.map +1 -1
- package/dist/requestHandlers/organizationHandlers.js +2 -2
- package/dist/requestHandlers/organizationHandlers.js.map +1 -1
- package/dist/requestHandlers/releaseHandlers.cjs +1 -1
- package/dist/requestHandlers/releaseHandlers.js +1 -1
- package/dist/requestHandlers/userHandlers.cjs +1 -1
- package/dist/requestHandlers/userHandlers.js +1 -1
- package/dist/requestHandlers/validation.cjs +1 -1
- package/dist/requestHandlers/validation.js +1 -1
- package/dist/validation-DHpIYTTi.js +64 -0
- package/dist/validation-DHpIYTTi.js.map +1 -0
- package/dist/validation-m8rbcHeR.cjs +75 -0
- package/dist/validation-m8rbcHeR.cjs.map +1 -0
- package/package.json +2 -1
- package/dist/validation-2v8lSCSx.cjs +0 -75
- package/dist/validation-2v8lSCSx.cjs.map +0 -1
- package/dist/validation-BQQeMmiR.js +0 -64
- package/dist/validation-BQQeMmiR.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_mockData = require("../mockData.cjs");
|
|
3
|
-
const require_validation = require("../validation-
|
|
3
|
+
const require_validation = require("../validation-m8rbcHeR.cjs");
|
|
4
4
|
let _northern_tech_utils_constants = require("@northern.tech/utils/constants");
|
|
5
5
|
let msw = require("msw");
|
|
6
6
|
//#region src/requestHandlers/deploymentHandlers.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { mockApiResponses } from "../mockData.js";
|
|
2
|
-
import { n as validated } from "../validation-
|
|
2
|
+
import { n as validated } from "../validation-DHpIYTTi.js";
|
|
3
3
|
import { deploymentsApiUrl, deploymentsApiUrlV2, headerNames, limitDefault } from "@northern.tech/utils/constants";
|
|
4
4
|
import { HttpResponse, http } from "msw";
|
|
5
5
|
//#region src/requestHandlers/deploymentHandlers.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_mockData = require("../mockData.cjs");
|
|
3
|
-
const require_validation = require("../validation-
|
|
3
|
+
const require_validation = require("../validation-m8rbcHeR.cjs");
|
|
4
4
|
let _northern_tech_utils_constants = require("@northern.tech/utils/constants");
|
|
5
5
|
let msw = require("msw");
|
|
6
6
|
//#region src/requestHandlers/deviceHandlers.ts
|
|
@@ -377,12 +377,8 @@ const deviceHandlers = [
|
|
|
377
377
|
})),
|
|
378
378
|
msw.http.post(`${_northern_tech_utils_constants.inventoryApiUrlV2}/filters/search`, searchHandler),
|
|
379
379
|
msw.http.post(`${_northern_tech_utils_constants.inventoryApiUrlV2alpha1}/identities/search`, require_validation.validated(async ({ request }) => {
|
|
380
|
-
const {
|
|
381
|
-
if ([
|
|
382
|
-
name,
|
|
383
|
-
scope,
|
|
384
|
-
value_prefix
|
|
385
|
-
].some((item) => !item)) return new msw.HttpResponse(null, { status: 519 });
|
|
380
|
+
const { attribute, value_prefix } = await request.json();
|
|
381
|
+
if (!value_prefix || attribute && [attribute.name, attribute.scope].some((item) => !item)) return new msw.HttpResponse(null, { status: 519 });
|
|
386
382
|
return new msw.HttpResponse(JSON.stringify([inventoryDevice]), { headers: { [_northern_tech_utils_constants.headerNames.total]: 1 } });
|
|
387
383
|
})),
|
|
388
384
|
msw.http.post(`${_northern_tech_utils_constants.inventoryApiUrlV2}/filters`, require_validation.validated(async ({ request }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deviceHandlers.cjs","names":["defaultMacAddress","defaultCreationDate","validated","HttpResponse","DEVICE_STATES","mockApiResponses","headerNames","http","deviceAuthV2","inventoryApiUrl","inventoryApiUrlV2","inventoryApiUrlV2alpha1","DEVICE_FILTERING_OPTIONS","deviceConfig","deviceConnect","iotManagerBaseURL"],"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 inventoryApiUrlV2alpha1,\n iotManagerBaseURL\n} from '@northern.tech/utils/constants';\nimport { HttpResponse, http } from 'msw';\n\nimport { defaultCreationDate, defaultMacAddress, mockApiResponses } from '../mockData';\nimport { validated } from './validation';\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\nexport const deviceComponents = {\n R123: [\n { name: 'component_type', value: 'rtos', scope: 'inventory' },\n { name: 'version', value: 'v1', scope: 'inventory' }\n ],\n R456: [\n { name: 'component_type', value: 'rtos', scope: 'inventory' },\n { name: 'version', value: 'v2', scope: 'inventory' }\n ]\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 = validated(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 if (filters.find(filter => filter.scope === 'system' && filter.attribute === 'test_device')) {\n return new HttpResponse(JSON.stringify([inventoryDevice]), { headers: { [headerNames.total]: 3 } });\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(\n `${inventoryApiUrl}/groups/:group/devices`,\n validated(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 ),\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/devices`, () => HttpResponse.json(mockApiResponses.devices.limits)),\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.get(\n `${inventoryApiUrlV2alpha1}/devices/:deviceId/components`,\n validated(({ params: { deviceId } }) => {\n if (mockApiResponses.devices.byId[deviceId]) {\n return HttpResponse.json(deviceComponents);\n }\n return new HttpResponse(null, { status: 507 });\n })\n ),\n http.put(\n `${inventoryApiUrl}/devices/:deviceId/tags`,\n validated(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 ),\n http.put(`${deviceAuthV2}/devices/:deviceId/flags`, ({ params: { deviceId } }) => {\n if (!mockApiResponses.devices.byId[deviceId]) {\n return new HttpResponse(null, { status: 506 });\n }\n return new HttpResponse(null, { status: 204 });\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(`${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(\n `${inventoryApiUrl}/groups/:group/devices`,\n validated(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 ),\n http.post(\n `${deviceAuthV2}/devices`,\n validated(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 ),\n http.post(`${inventoryApiUrlV2}/filters/search`, searchHandler),\n http.post(\n `${inventoryApiUrlV2alpha1}/identities/search`,\n validated(async ({ request }) => {\n const { name, scope, value_prefix } = await request.json();\n if ([name, scope, value_prefix].some(item => !item)) {\n return new HttpResponse(null, { status: 519 });\n }\n return new HttpResponse(JSON.stringify([inventoryDevice]), { headers: { [headerNames.total]: 1 } });\n })\n ),\n http.post(\n `${inventoryApiUrlV2}/filters`,\n validated(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(\n term => DEVICE_FILTERING_OPTIONS[term.type] && ['identity', 'inventory', 'system'].includes(term.scope) && !!term.value && !!term.attribute\n )\n ) {\n return new HttpResponse(null, { status: 510 });\n }\n return new HttpResponse(JSON.stringify({}), { headers: { location: 'find/me/here/createdFilterId' } });\n })\n ),\n http.get(`${inventoryApiUrlV2}/statistics`, async () =>\n HttpResponse.json({\n devices_by_status: {\n accepted: { standard: mockApiResponses.devices.byStatus.accepted.total, micro: 0, system: 0 },\n pending: { standard: mockApiResponses.devices.byStatus.pending.total, micro: 0, system: 0 }\n }\n })\n ),\n http.put(\n `${deviceAuthV2}/devices/:deviceId/auth/:authId/status`,\n validated(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 ),\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(\n `${deviceConfig}/:deviceId`,\n validated(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 ),\n http.post(\n `${deviceConfig}/:deviceId/deploy`,\n validated(({ 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 ),\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(\n `${deviceConnect}/devices/:deviceId/:action`,\n validated(({ 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 ),\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(\n `${iotManagerBaseURL}/devices/:deviceId/state/:integrationId`,\n validated(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 ),\n http.put(\n `${deviceConnect}/devices/:deviceId/upload`,\n validated(({ 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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"}
|
|
1
|
+
{"version":3,"file":"deviceHandlers.cjs","names":["defaultMacAddress","defaultCreationDate","validated","HttpResponse","DEVICE_STATES","mockApiResponses","headerNames","http","deviceAuthV2","inventoryApiUrl","inventoryApiUrlV2","inventoryApiUrlV2alpha1","DEVICE_FILTERING_OPTIONS","deviceConfig","deviceConnect","iotManagerBaseURL"],"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 inventoryApiUrlV2alpha1,\n iotManagerBaseURL\n} from '@northern.tech/utils/constants';\nimport { HttpResponse, http } from 'msw';\n\nimport { defaultCreationDate, defaultMacAddress, mockApiResponses } from '../mockData';\nimport { validated } from './validation';\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\nexport const deviceComponents = {\n R123: [\n { name: 'component_type', value: 'rtos', scope: 'inventory' },\n { name: 'version', value: 'v1', scope: 'inventory' }\n ],\n R456: [\n { name: 'component_type', value: 'rtos', scope: 'inventory' },\n { name: 'version', value: 'v2', scope: 'inventory' }\n ]\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 = validated(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 if (filters.find(filter => filter.scope === 'system' && filter.attribute === 'test_device')) {\n return new HttpResponse(JSON.stringify([inventoryDevice]), { headers: { [headerNames.total]: 3 } });\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(\n `${inventoryApiUrl}/groups/:group/devices`,\n validated(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 ),\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/devices`, () => HttpResponse.json(mockApiResponses.devices.limits)),\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.get(\n `${inventoryApiUrlV2alpha1}/devices/:deviceId/components`,\n validated(({ params: { deviceId } }) => {\n if (mockApiResponses.devices.byId[deviceId]) {\n return HttpResponse.json(deviceComponents);\n }\n return new HttpResponse(null, { status: 507 });\n })\n ),\n http.put(\n `${inventoryApiUrl}/devices/:deviceId/tags`,\n validated(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 ),\n http.put(`${deviceAuthV2}/devices/:deviceId/flags`, ({ params: { deviceId } }) => {\n if (!mockApiResponses.devices.byId[deviceId]) {\n return new HttpResponse(null, { status: 506 });\n }\n return new HttpResponse(null, { status: 204 });\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(`${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(\n `${inventoryApiUrl}/groups/:group/devices`,\n validated(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 ),\n http.post(\n `${deviceAuthV2}/devices`,\n validated(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 ),\n http.post(`${inventoryApiUrlV2}/filters/search`, searchHandler),\n http.post(\n `${inventoryApiUrlV2alpha1}/identities/search`,\n validated(async ({ request }) => {\n const { attribute, value_prefix } = await request.json();\n if (!value_prefix || (attribute && [attribute.name, attribute.scope].some(item => !item))) {\n return new HttpResponse(null, { status: 519 });\n }\n return new HttpResponse(JSON.stringify([inventoryDevice]), { headers: { [headerNames.total]: 1 } });\n })\n ),\n http.post(\n `${inventoryApiUrlV2}/filters`,\n validated(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(\n term => DEVICE_FILTERING_OPTIONS[term.type] && ['identity', 'inventory', 'system'].includes(term.scope) && !!term.value && !!term.attribute\n )\n ) {\n return new HttpResponse(null, { status: 510 });\n }\n return new HttpResponse(JSON.stringify({}), { headers: { location: 'find/me/here/createdFilterId' } });\n })\n ),\n http.get(`${inventoryApiUrlV2}/statistics`, async () =>\n HttpResponse.json({\n devices_by_status: {\n accepted: { standard: mockApiResponses.devices.byStatus.accepted.total, micro: 0, system: 0 },\n pending: { standard: mockApiResponses.devices.byStatus.pending.total, micro: 0, system: 0 }\n }\n })\n ),\n http.put(\n `${deviceAuthV2}/devices/:deviceId/auth/:authId/status`,\n validated(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 ),\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(\n `${deviceConfig}/:deviceId`,\n validated(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 ),\n http.post(\n `${deviceConfig}/:deviceId/deploy`,\n validated(({ 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 ),\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(\n `${deviceConnect}/devices/:deviceId/:action`,\n validated(({ 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 ),\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(\n `${iotManagerBaseURL}/devices/:deviceId/state/:integrationId`,\n validated(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 ),\n http.put(\n `${deviceConnect}/devices/:deviceId/upload`,\n validated(({ 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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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defaultCreationDate, defaultMacAddress, mockApiResponses } from "../mockData.js";
|
|
2
|
-
import { n as validated } from "../validation-
|
|
2
|
+
import { n as validated } from "../validation-DHpIYTTi.js";
|
|
3
3
|
import { DEVICE_FILTERING_OPTIONS, DEVICE_STATES, deviceAuthV2, deviceConfig, deviceConnect, headerNames, inventoryApiUrl, inventoryApiUrlV2, inventoryApiUrlV2alpha1, iotManagerBaseURL } from "@northern.tech/utils/constants";
|
|
4
4
|
import { HttpResponse, http } from "msw";
|
|
5
5
|
//#region src/requestHandlers/deviceHandlers.ts
|
|
@@ -376,12 +376,8 @@ const deviceHandlers = [
|
|
|
376
376
|
})),
|
|
377
377
|
http.post(`${inventoryApiUrlV2}/filters/search`, searchHandler),
|
|
378
378
|
http.post(`${inventoryApiUrlV2alpha1}/identities/search`, validated(async ({ request }) => {
|
|
379
|
-
const {
|
|
380
|
-
if ([
|
|
381
|
-
name,
|
|
382
|
-
scope,
|
|
383
|
-
value_prefix
|
|
384
|
-
].some((item) => !item)) return new HttpResponse(null, { status: 519 });
|
|
379
|
+
const { attribute, value_prefix } = await request.json();
|
|
380
|
+
if (!value_prefix || attribute && [attribute.name, attribute.scope].some((item) => !item)) return new HttpResponse(null, { status: 519 });
|
|
385
381
|
return new HttpResponse(JSON.stringify([inventoryDevice]), { headers: { [headerNames.total]: 1 } });
|
|
386
382
|
})),
|
|
387
383
|
http.post(`${inventoryApiUrlV2}/filters`, validated(async ({ request }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deviceHandlers.js","names":[],"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 inventoryApiUrlV2alpha1,\n iotManagerBaseURL\n} from '@northern.tech/utils/constants';\nimport { HttpResponse, http } from 'msw';\n\nimport { defaultCreationDate, defaultMacAddress, mockApiResponses } from '../mockData';\nimport { validated } from './validation';\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\nexport const deviceComponents = {\n R123: [\n { name: 'component_type', value: 'rtos', scope: 'inventory' },\n { name: 'version', value: 'v1', scope: 'inventory' }\n ],\n R456: [\n { name: 'component_type', value: 'rtos', scope: 'inventory' },\n { name: 'version', value: 'v2', scope: 'inventory' }\n ]\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 = validated(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 if (filters.find(filter => filter.scope === 'system' && filter.attribute === 'test_device')) {\n return new HttpResponse(JSON.stringify([inventoryDevice]), { headers: { [headerNames.total]: 3 } });\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(\n `${inventoryApiUrl}/groups/:group/devices`,\n validated(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 ),\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/devices`, () => HttpResponse.json(mockApiResponses.devices.limits)),\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.get(\n `${inventoryApiUrlV2alpha1}/devices/:deviceId/components`,\n validated(({ params: { deviceId } }) => {\n if (mockApiResponses.devices.byId[deviceId]) {\n return HttpResponse.json(deviceComponents);\n }\n return new HttpResponse(null, { status: 507 });\n })\n ),\n http.put(\n `${inventoryApiUrl}/devices/:deviceId/tags`,\n validated(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 ),\n http.put(`${deviceAuthV2}/devices/:deviceId/flags`, ({ params: { deviceId } }) => {\n if (!mockApiResponses.devices.byId[deviceId]) {\n return new HttpResponse(null, { status: 506 });\n }\n return new HttpResponse(null, { status: 204 });\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(`${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(\n `${inventoryApiUrl}/groups/:group/devices`,\n validated(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 ),\n http.post(\n `${deviceAuthV2}/devices`,\n validated(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 ),\n http.post(`${inventoryApiUrlV2}/filters/search`, searchHandler),\n http.post(\n `${inventoryApiUrlV2alpha1}/identities/search`,\n validated(async ({ request }) => {\n const { name, scope, value_prefix } = await request.json();\n if ([name, scope, value_prefix].some(item => !item)) {\n return new HttpResponse(null, { status: 519 });\n }\n return new HttpResponse(JSON.stringify([inventoryDevice]), { headers: { [headerNames.total]: 1 } });\n })\n ),\n http.post(\n `${inventoryApiUrlV2}/filters`,\n validated(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(\n term => DEVICE_FILTERING_OPTIONS[term.type] && ['identity', 'inventory', 'system'].includes(term.scope) && !!term.value && !!term.attribute\n )\n ) {\n return new HttpResponse(null, { status: 510 });\n }\n return new HttpResponse(JSON.stringify({}), { headers: { location: 'find/me/here/createdFilterId' } });\n })\n ),\n http.get(`${inventoryApiUrlV2}/statistics`, async () =>\n HttpResponse.json({\n devices_by_status: {\n accepted: { standard: mockApiResponses.devices.byStatus.accepted.total, micro: 0, system: 0 },\n pending: { standard: mockApiResponses.devices.byStatus.pending.total, micro: 0, system: 0 }\n }\n })\n ),\n http.put(\n `${deviceAuthV2}/devices/:deviceId/auth/:authId/status`,\n validated(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 ),\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(\n `${deviceConfig}/:deviceId`,\n validated(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 ),\n http.post(\n `${deviceConfig}/:deviceId/deploy`,\n validated(({ 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 ),\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(\n `${deviceConnect}/devices/:deviceId/:action`,\n validated(({ 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 ),\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(\n `${iotManagerBaseURL}/devices/:deviceId/state/:integrationId`,\n validated(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 ),\n http.put(\n `${deviceConnect}/devices/:deviceId/upload`,\n validated(({ 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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"}
|
|
1
|
+
{"version":3,"file":"deviceHandlers.js","names":[],"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 inventoryApiUrlV2alpha1,\n iotManagerBaseURL\n} from '@northern.tech/utils/constants';\nimport { HttpResponse, http } from 'msw';\n\nimport { defaultCreationDate, defaultMacAddress, mockApiResponses } from '../mockData';\nimport { validated } from './validation';\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\nexport const deviceComponents = {\n R123: [\n { name: 'component_type', value: 'rtos', scope: 'inventory' },\n { name: 'version', value: 'v1', scope: 'inventory' }\n ],\n R456: [\n { name: 'component_type', value: 'rtos', scope: 'inventory' },\n { name: 'version', value: 'v2', scope: 'inventory' }\n ]\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 = validated(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 if (filters.find(filter => filter.scope === 'system' && filter.attribute === 'test_device')) {\n return new HttpResponse(JSON.stringify([inventoryDevice]), { headers: { [headerNames.total]: 3 } });\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(\n `${inventoryApiUrl}/groups/:group/devices`,\n validated(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 ),\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/devices`, () => HttpResponse.json(mockApiResponses.devices.limits)),\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.get(\n `${inventoryApiUrlV2alpha1}/devices/:deviceId/components`,\n validated(({ params: { deviceId } }) => {\n if (mockApiResponses.devices.byId[deviceId]) {\n return HttpResponse.json(deviceComponents);\n }\n return new HttpResponse(null, { status: 507 });\n })\n ),\n http.put(\n `${inventoryApiUrl}/devices/:deviceId/tags`,\n validated(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 ),\n http.put(`${deviceAuthV2}/devices/:deviceId/flags`, ({ params: { deviceId } }) => {\n if (!mockApiResponses.devices.byId[deviceId]) {\n return new HttpResponse(null, { status: 506 });\n }\n return new HttpResponse(null, { status: 204 });\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(`${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(\n `${inventoryApiUrl}/groups/:group/devices`,\n validated(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 ),\n http.post(\n `${deviceAuthV2}/devices`,\n validated(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 ),\n http.post(`${inventoryApiUrlV2}/filters/search`, searchHandler),\n http.post(\n `${inventoryApiUrlV2alpha1}/identities/search`,\n validated(async ({ request }) => {\n const { attribute, value_prefix } = await request.json();\n if (!value_prefix || (attribute && [attribute.name, attribute.scope].some(item => !item))) {\n return new HttpResponse(null, { status: 519 });\n }\n return new HttpResponse(JSON.stringify([inventoryDevice]), { headers: { [headerNames.total]: 1 } });\n })\n ),\n http.post(\n `${inventoryApiUrlV2}/filters`,\n validated(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(\n term => DEVICE_FILTERING_OPTIONS[term.type] && ['identity', 'inventory', 'system'].includes(term.scope) && !!term.value && !!term.attribute\n )\n ) {\n return new HttpResponse(null, { status: 510 });\n }\n return new HttpResponse(JSON.stringify({}), { headers: { location: 'find/me/here/createdFilterId' } });\n })\n ),\n http.get(`${inventoryApiUrlV2}/statistics`, async () =>\n HttpResponse.json({\n devices_by_status: {\n accepted: { standard: mockApiResponses.devices.byStatus.accepted.total, micro: 0, system: 0 },\n pending: { standard: mockApiResponses.devices.byStatus.pending.total, micro: 0, system: 0 }\n }\n })\n ),\n http.put(\n `${deviceAuthV2}/devices/:deviceId/auth/:authId/status`,\n validated(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 ),\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(\n `${deviceConfig}/:deviceId`,\n validated(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 ),\n http.post(\n `${deviceConfig}/:deviceId/deploy`,\n validated(({ 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 ),\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(\n `${deviceConnect}/devices/:deviceId/:action`,\n validated(({ 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 ),\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(\n `${iotManagerBaseURL}/devices/:deviceId/state/:integrationId`,\n validated(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 ),\n http.put(\n `${deviceConnect}/devices/:deviceId/upload`,\n validated(({ 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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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_mockData = require("../mockData.cjs");
|
|
3
|
-
const require_validation = require("../validation-
|
|
3
|
+
const require_validation = require("../validation-m8rbcHeR.cjs");
|
|
4
4
|
let _northern_tech_utils_constants = require("@northern.tech/utils/constants");
|
|
5
5
|
let msw = require("msw");
|
|
6
6
|
//#region src/requestHandlers/monitorHandlers.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { mockApiResponses } from "../mockData.js";
|
|
2
|
-
import { n as validated } from "../validation-
|
|
2
|
+
import { n as validated } from "../validation-DHpIYTTi.js";
|
|
3
3
|
import { alertChannels, headerNames, monitorApiUrlv1 } from "@northern.tech/utils/constants";
|
|
4
4
|
import { HttpResponse, http } from "msw";
|
|
5
5
|
//#region src/requestHandlers/monitorHandlers.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_mockData = require("../mockData.cjs");
|
|
3
|
-
const require_validation = require("../validation-
|
|
3
|
+
const require_validation = require("../validation-m8rbcHeR.cjs");
|
|
4
4
|
let _northern_tech_utils_constants = require("@northern.tech/utils/constants");
|
|
5
5
|
let msw = require("msw");
|
|
6
6
|
//#region src/requestHandlers/organizationHandlers.ts
|
|
@@ -282,7 +282,7 @@ const organizationHandlers = [
|
|
|
282
282
|
const { searchParams } = new URL(request.url);
|
|
283
283
|
const page = Number(searchParams.get("page"));
|
|
284
284
|
const perPage = Number(searchParams.get("per_page"));
|
|
285
|
-
return msw.HttpResponse.json(require_mockData.webhookEvents.slice(page - 1, page * perPage));
|
|
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
286
|
}),
|
|
287
287
|
msw.http.get(_northern_tech_utils_constants.ssoIdpApiUrlv1, () => msw.HttpResponse.json([{
|
|
288
288
|
id: "1",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organizationHandlers.cjs","names":["validated","HttpResponse","http","tenantadmApiUrlv2","mockApiResponses","tenants","auditLogsApiUrl","headerNames","iotManagerBaseURL","webhookEvents","ssoIdpApiUrlv1"],"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, tenantadmApiUrlv2 } from '@northern.tech/utils/constants';\nimport { HttpResponse, http } from 'msw';\n\nimport { mockApiResponses, 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, 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(\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];\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"organizationHandlers.cjs","names":["validated","HttpResponse","http","tenantadmApiUrlv2","mockApiResponses","tenants","auditLogsApiUrl","headerNames","iotManagerBaseURL","webhookEvents","ssoIdpApiUrlv1"],"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, tenantadmApiUrlv2 } from '@northern.tech/utils/constants';\nimport { HttpResponse, http } from 'msw';\n\nimport { mockApiResponses, 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];\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { mockApiResponses, tenants, webhookEvents } from "../mockData.js";
|
|
2
|
-
import { n as validated } from "../validation-
|
|
2
|
+
import { n as validated } from "../validation-DHpIYTTi.js";
|
|
3
3
|
import { auditLogsApiUrl, headerNames, iotManagerBaseURL, ssoIdpApiUrlv1, tenantadmApiUrlv2 } from "@northern.tech/utils/constants";
|
|
4
4
|
import { HttpResponse, http } from "msw";
|
|
5
5
|
//#region src/requestHandlers/organizationHandlers.ts
|
|
@@ -281,7 +281,7 @@ const organizationHandlers = [
|
|
|
281
281
|
const { searchParams } = new URL(request.url);
|
|
282
282
|
const page = Number(searchParams.get("page"));
|
|
283
283
|
const perPage = Number(searchParams.get("per_page"));
|
|
284
|
-
return HttpResponse.json(webhookEvents.slice(page - 1, page * perPage));
|
|
284
|
+
return HttpResponse.json(webhookEvents.slice((page - 1) * perPage, page * perPage), { headers: { [headerNames.total]: `${webhookEvents.length}` } });
|
|
285
285
|
}),
|
|
286
286
|
http.get(ssoIdpApiUrlv1, () => HttpResponse.json([{
|
|
287
287
|
id: "1",
|