@northern.tech/testing 0.8.4 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/openapi.yaml.d.cjs +0 -0
  2. package/dist/openapi.yaml.d.cts +4 -0
  3. package/dist/openapi.yaml.d.ts +5 -0
  4. package/dist/requestHandlers/deploymentHandlers.cjs +13 -12
  5. package/dist/requestHandlers/deploymentHandlers.cjs.map +1 -1
  6. package/dist/requestHandlers/deploymentHandlers.js +13 -12
  7. package/dist/requestHandlers/deploymentHandlers.js.map +1 -1
  8. package/dist/requestHandlers/deviceHandlers.cjs +24 -23
  9. package/dist/requestHandlers/deviceHandlers.cjs.map +1 -1
  10. package/dist/requestHandlers/deviceHandlers.js +24 -23
  11. package/dist/requestHandlers/deviceHandlers.js.map +1 -1
  12. package/dist/requestHandlers/monitorHandlers.cjs +3 -2
  13. package/dist/requestHandlers/monitorHandlers.cjs.map +1 -1
  14. package/dist/requestHandlers/monitorHandlers.js +3 -2
  15. package/dist/requestHandlers/monitorHandlers.js.map +1 -1
  16. package/dist/requestHandlers/organizationHandlers.cjs +24 -24
  17. package/dist/requestHandlers/organizationHandlers.cjs.map +1 -1
  18. package/dist/requestHandlers/organizationHandlers.js +24 -24
  19. package/dist/requestHandlers/organizationHandlers.js.map +1 -1
  20. package/dist/requestHandlers/releaseHandlers.cjs +7 -6
  21. package/dist/requestHandlers/releaseHandlers.cjs.map +1 -1
  22. package/dist/requestHandlers/releaseHandlers.js +7 -6
  23. package/dist/requestHandlers/releaseHandlers.js.map +1 -1
  24. package/dist/requestHandlers/userHandlers.cjs +21 -20
  25. package/dist/requestHandlers/userHandlers.cjs.map +1 -1
  26. package/dist/requestHandlers/userHandlers.js +21 -20
  27. package/dist/requestHandlers/userHandlers.js.map +1 -1
  28. package/dist/requestHandlers/validation.cjs +4 -0
  29. package/dist/requestHandlers/validation.d.cts +6 -0
  30. package/dist/requestHandlers/validation.d.ts +6 -0
  31. package/dist/requestHandlers/validation.js +2 -0
  32. package/dist/validation-qz6hVrWn.cjs +76 -0
  33. package/dist/validation-qz6hVrWn.cjs.map +1 -0
  34. package/dist/validation-vBjmzPxs.js +64 -0
  35. package/dist/validation-vBjmzPxs.js.map +1 -0
  36. package/package.json +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"deviceHandlers.cjs","names":["defaultMacAddress","defaultCreationDate","HttpResponse","DEVICE_STATES","mockApiResponses","headerNames","http","deviceAuthV2","inventoryApiUrl","inventoryApiUrlV2","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 iotManagerBaseURL\n} from '@northern.tech/utils/constants';\nimport { HttpResponse, http } from 'msw';\n\nimport { defaultCreationDate, defaultMacAddress, mockApiResponses } from '../mockData';\n\nexport const defaultDeviceId = 'a1';\n\nconst deviceAuthDevice = {\n id: defaultDeviceId,\n identity_data: { mac: defaultMacAddress },\n status: 'accepted',\n decommissioning: false,\n created_ts: defaultCreationDate,\n updated_ts: '2019-01-01T09:25:00.000Z',\n auth_sets: [\n {\n id: 'auth1',\n identity_data: { mac: defaultMacAddress },\n pubkey: '-----BEGIN PUBLIC KEY-----\\nMIIBojWELzgJ62hcXIhAfqfoNiaB1326XZByZwcnHr5BuSPAgMBAAE=\\n-----END PUBLIC KEY-----\\n',\n ts: defaultCreationDate,\n status: 'accepted'\n }\n ]\n};\n\nconst checkInTimeExact = '2019-01-01T10:25:00.000Z';\nconst updatedTime = '2019-01-01T09:25:00.000Z';\n\nexport const inventoryDevice = {\n id: defaultDeviceId,\n attributes: [\n { name: 'network_interfaces', value: ['eth0', 'wlan0'], scope: 'inventory' },\n { name: 'kernel', value: 'Linux version 4.19.75-v7l+', scope: 'inventory' },\n { name: 'artifact_name', value: 'raspotifyInstaller', scope: 'inventory' },\n { name: 'ipv6_wlan0', value: 'fe80::68d9:8453:3e9c:7c80/64', scope: 'inventory' },\n { name: 'mac_eth0', value: defaultMacAddress, scope: 'inventory' },\n { name: 'rootfs_type', value: 'ext4', scope: 'inventory' },\n { name: 'mender_bootloader_integration', value: 'unknown', scope: 'inventory' },\n { name: 'cpu_model', value: 'ARMv7 Processor rev 3 (v7l)', scope: 'inventory' },\n { name: 'hostname', value: 'raspberrypi', scope: 'inventory' },\n { name: 'mender_client_version', value: '2.1.0', scope: 'inventory' },\n { name: 'ipv4_wlan0', value: '192.168.10.141/24', scope: 'inventory' },\n { name: 'device_type', value: 'raspberrypi4', scope: 'inventory' },\n { name: 'mem_total_kB', value: '1986024', scope: 'inventory' },\n { name: 'mac_wlan0', value: 'dc:a6:32:12:ad:c0', scope: 'inventory' },\n { name: 'os', value: 'Raspbian GNU/Linux 10 (buster)', scope: 'inventory' },\n { name: 'created_ts', value: defaultCreationDate, scope: 'system' },\n { name: 'updated_ts', value: updatedTime, scope: 'system' },\n { name: 'status', value: 'accepted', scope: 'identity' },\n { name: 'mac', value: defaultMacAddress, scope: 'identity' },\n { name: 'group', value: 'test', scope: 'system' }\n ],\n check_in_time: checkInTimeExact,\n updated_ts: updatedTime\n};\n\nconst deviceAttributes = [\n { name: 'status', scope: 'identity', count: 5 },\n { name: 'created_ts', scope: 'system', count: 5 },\n { name: 'updated_ts', scope: 'system', count: 5 },\n { name: 'mac', scope: 'identity', count: 1 },\n { name: 'artifact_name', scope: 'inventory', count: 1 },\n { name: 'cpu_model', scope: 'inventory', count: 1 },\n { name: 'device_type', scope: 'inventory', count: 1 },\n { name: 'hostname', scope: 'inventory', count: 1 },\n { name: 'ipv4_wlan0', scope: 'inventory', count: 1 },\n { name: 'ipv6_wlan0', scope: 'inventory', count: 1 },\n { name: 'kernel', scope: 'inventory', count: 1 },\n { name: 'mac_eth0', scope: 'inventory', count: 1 },\n { name: 'mac_wlan0', scope: 'inventory', count: 1 },\n { name: 'mem_total_kB', scope: 'inventory', count: 1 },\n { name: 'mender_bootloader_integration', scope: 'inventory', count: 1 },\n { name: 'mender_client_version', scope: 'inventory', count: 1 },\n { name: 'network_interfaces', scope: 'inventory', count: 1 },\n { name: 'os', scope: 'inventory', count: 1 },\n { name: 'rootfs_type', scope: 'inventory', count: 1 },\n { name: 'group', scope: 'system', count: 1 }\n];\n\nconst searchHandler = async ({ request }) => {\n const { page, per_page, filters } = await request.json();\n if ([page, per_page, filters].some(item => !item)) {\n return new HttpResponse(null, { status: 509 });\n }\n const filter = filters.find(filter => filter.scope === 'identity' && filter.attribute === 'status' && Object.values(DEVICE_STATES).includes(filter.value));\n const status = filter?.value || '';\n if (!status || filters.length > 1) {\n if (filters.find(filter => filter.attribute === 'group' && filter.value.includes(Object.keys(mockApiResponses.devices.groups.byId)[0]))) {\n return new HttpResponse(JSON.stringify([inventoryDevice, { ...inventoryDevice, id: 'b1' }]), {\n headers: { [headerNames.total]: 2 }\n });\n }\n if (filters.find(filter => filter.scope === 'monitor' && ['failed_last_update', 'alerts', 'auth_request'].includes(filter.attribute))) {\n return new HttpResponse(JSON.stringify([inventoryDevice]), { headers: { [headerNames.total]: 4 } });\n }\n return new HttpResponse(JSON.stringify([]), { headers: { [headerNames.total]: 0 } });\n }\n let deviceList = Array.from({ length: mockApiResponses.devices.byStatus[status].total }, (_, index) => ({\n ...inventoryDevice,\n attributes: [...inventoryDevice.attributes, { name: 'test-count', value: index, scope: 'system' }],\n id: `${String.fromCharCode('a'.charCodeAt(0) + index)}1`\n }));\n deviceList = deviceList.slice((page - 1) * per_page, page * per_page);\n return new HttpResponse(JSON.stringify(deviceList), { headers: { [headerNames.total]: mockApiResponses.devices.byStatus[status].total } });\n};\n\nexport const deviceHandlers = [\n http.delete(`${deviceAuthV2}/devices/:deviceId/auth/:authId`, ({ params: { authId, deviceId } }) => {\n if (mockApiResponses.devices.byId[deviceId].auth_sets.find(authSet => authSet.id === authId)) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 501 });\n }),\n http.delete(`${deviceAuthV2}/devices/:deviceId`, ({ params: { deviceId } }) => {\n if (mockApiResponses.devices.byId[deviceId]) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 502 });\n }),\n http.delete(`${inventoryApiUrl}/groups/:group`, ({ params: { group } }) => {\n if (mockApiResponses.devices.groups.byId[group]) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 515 });\n }),\n http.delete(`${inventoryApiUrl}/groups/:group/devices`, async ({ params: { group }, request }) => {\n const deviceIds = await request.json();\n if (mockApiResponses.devices.groups.byId[group] && deviceIds.every(id => !!mockApiResponses.devices.byId[id])) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 503 });\n }),\n http.delete(`${inventoryApiUrlV2}/filters/:filterId`, ({ params: { filterId } }) => {\n if (Object.values(mockApiResponses.devices.groups.byId).find(group => group.id === filterId)) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 504 });\n }),\n http.get(`${deviceAuthV2}/devices`, ({ request }) => {\n const { searchParams } = new URL(request.url);\n const deviceIds = searchParams.getAll('id');\n if (deviceIds.every(id => !!mockApiResponses.devices.byId[id])) {\n return HttpResponse.json(deviceIds.map(id => ({ ...deviceAuthDevice, id })));\n }\n return new HttpResponse(null, { status: 505 });\n }),\n http.get(`${deviceAuthV2}/limits/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.put(`${inventoryApiUrl}/devices/:deviceId/tags`, async ({ params: { deviceId }, request }) => {\n const tags = await request.json();\n if (!mockApiResponses.devices.byId[deviceId] && !Array.isArray(tags) && !tags.every(item => item.name && item.value)) {\n return new HttpResponse(null, { status: 506 });\n }\n return HttpResponse.json(tags);\n }),\n http.get(`${inventoryApiUrl}/groups`, () => {\n const groups = Object.entries(mockApiResponses.devices.groups.byId).reduce((accu, [groupName, group]) => {\n if (!group.id) {\n accu.push(groupName);\n }\n return accu;\n }, []);\n return HttpResponse.json(groups);\n }),\n http.get(`${inventoryApiUrlV2}/filters/attributes`, () => HttpResponse.json(deviceAttributes)),\n http.get(`${inventoryApiUrlV2}/filters`, () =>\n HttpResponse.json([\n {\n id: 'filter1',\n name: 'testGroupDynamic',\n terms: [\n { scope: 'identity', attribute: 'id', type: '$in', value: [defaultDeviceId] },\n { scope: 'identity', attribute: 'mac', type: '$exists', value: false },\n { scope: 'identity', attribute: 'kernel', type: '$exists', value: true }\n ]\n }\n ])\n ),\n http.patch(`${inventoryApiUrl}/groups/:group/devices`, async ({ params: { group }, request }) => {\n const deviceIds = await request.json();\n if (!!group && deviceIds.every(id => !!mockApiResponses.devices.byId[id])) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 508 });\n }),\n http.post(`${deviceAuthV2}/devices`, async ({ request }) => {\n const authset = await request.json();\n if (\n Object.values(mockApiResponses.devices.byId).some(device =>\n device.auth_sets.some(deviceAuthSet => deviceAuthSet.pubkey == authset.pubkey || deviceAuthSet.identity_data == authset.identity_data)\n )\n ) {\n return new HttpResponse(null, { status: 409 });\n }\n return new HttpResponse(null, { status: 200 });\n }),\n http.post(`${inventoryApiUrlV2}/filters/search`, searchHandler),\n http.post(`${inventoryApiUrlV2}/filters`, async ({ request }) => {\n const { name, terms } = await request.json();\n if (\n [name, terms].some(item => !item) ||\n mockApiResponses.devices.groups[name] ||\n !terms.every(term => DEVICE_FILTERING_OPTIONS[term.type] && ['identity', 'inventory', 'system'].includes(term.scope) && !!term.value && !!term.attribute)\n ) {\n return new HttpResponse(null, { status: 510 });\n }\n return new HttpResponse(JSON.stringify({}), { headers: { location: 'find/me/here/createdFilterId' } });\n }),\n http.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(`${deviceAuthV2}/devices/:deviceId/auth/:authId/status`, async ({ params: { authId, deviceId }, request }) => {\n const { status } = await request.json();\n if (mockApiResponses.devices.byId[deviceId].auth_sets.find(authSet => authSet.id === authId) && DEVICE_STATES[status]) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 511 });\n }),\n http.get(`${deviceConfig}/:deviceId`, ({ params: { deviceId } }) => {\n if (deviceId === 'testId') {\n return new HttpResponse(JSON.stringify({ error: { status_code: 404 } }), { status: 404 });\n }\n if (mockApiResponses.devices.byId[deviceId]) {\n return HttpResponse.json({\n configured: { test: true, something: 'else', aNumber: 42 },\n deployment_id: 'config1',\n reported: { test: true, something: 'else', aNumber: 42 },\n updated_ts: updatedTime,\n reported_ts: '2019-01-01T09:25:01.000Z'\n });\n }\n return new HttpResponse(null, { status: 512 });\n }),\n http.put(`${deviceConfig}/:deviceId`, async ({ params: { deviceId }, request }) => {\n const body = await request.text();\n if (body.includes('evilValue')) {\n return new HttpResponse(null, { status: 418 });\n }\n return new HttpResponse(null, { status: mockApiResponses.devices.byId[deviceId] ? 201 : 513 });\n }),\n http.post(`${deviceConfig}/:deviceId/deploy`, ({ params: { deviceId } }) => {\n if (mockApiResponses.devices.byId[deviceId]) {\n return HttpResponse.json({ deployment_id: 'config1' });\n }\n return new HttpResponse(null, { status: 514 });\n }),\n http.get(`${deviceConnect}/devices/:deviceId`, ({ params: { deviceId } }) => {\n if (deviceId === 'testId') {\n return new HttpResponse(JSON.stringify({ error: { status_code: 404 } }), { status: 404 });\n }\n if (mockApiResponses.devices.byId[deviceId]) {\n return HttpResponse.json({ status: 'connected', updated_ts: mockApiResponses.devices.byId[deviceId].updated_ts });\n }\n return new HttpResponse(null, { status: 512 });\n }),\n http.post(`${deviceConnect}/devices/:deviceId/:action`, ({ params: { deviceId, action } }) => {\n if (['check-update', 'send-inventory'].includes(action) && mockApiResponses.devices.byId[deviceId]) {\n return new HttpResponse(null, { status: 202 });\n }\n return new HttpResponse(null, { status: 518 });\n }),\n http.get(`${iotManagerBaseURL}/devices/:deviceId/state`, ({ params: { deviceId } }) => {\n if (mockApiResponses.devices.byId[deviceId]) {\n return HttpResponse.json({ deployment_id: mockApiResponses.deployments.byId.d1.id });\n }\n return new HttpResponse(null, { status: 515 });\n }),\n http.put(`${iotManagerBaseURL}/devices/:deviceId/state/:integrationId`, async ({ params: { deviceId }, request }) => {\n const body = await request.json();\n if (mockApiResponses.devices.byId[deviceId] && body) {\n return HttpResponse.json({ deployment_id: mockApiResponses.deployments.byId.d1.id });\n }\n return new HttpResponse(null, { status: 516 });\n }),\n http.put(\n `${deviceConnect}/devices/:deviceId/upload`,\n ({ params: { deviceId } }) => new HttpResponse(null, { status: mockApiResponses.devices.byId[deviceId] ? 200 : 517 })\n ),\n http.get(`${deviceAuthV2}/license`, () => HttpResponse.text('test,report'))\n];\n"],"mappings":"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"}
1
+ {"version":3,"file":"deviceHandlers.cjs","names":["defaultMacAddress","defaultCreationDate","validated","HttpResponse","DEVICE_STATES","mockApiResponses","headerNames","http","deviceAuthV2","inventoryApiUrl","inventoryApiUrlV2","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 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\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 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.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.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 `${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,4 +1,5 @@
1
1
  import { defaultCreationDate, defaultMacAddress, mockApiResponses } from "../mockData.js";
2
+ import { n as validated } from "../validation-vBjmzPxs.js";
2
3
  import { DEVICE_FILTERING_OPTIONS, DEVICE_STATES, deviceAuthV2, deviceConfig, deviceConnect, headerNames, inventoryApiUrl, inventoryApiUrlV2, iotManagerBaseURL } from "@northern.tech/utils/constants";
3
4
  import { HttpResponse, http } from "msw";
4
5
  //#region src/requestHandlers/deviceHandlers.ts
@@ -229,7 +230,7 @@ const deviceAttributes = [
229
230
  count: 1
230
231
  }
231
232
  ];
232
- const searchHandler = async ({ request }) => {
233
+ const searchHandler = validated(async ({ request }) => {
233
234
  const { page, per_page, filters } = await request.json();
234
235
  if ([
235
236
  page,
@@ -260,7 +261,7 @@ const searchHandler = async ({ request }) => {
260
261
  }));
261
262
  deviceList = deviceList.slice((page - 1) * per_page, page * per_page);
262
263
  return new HttpResponse(JSON.stringify(deviceList), { headers: { [headerNames.total]: mockApiResponses.devices.byStatus[status].total } });
263
- };
264
+ });
264
265
  const deviceHandlers = [
265
266
  http.delete(`${deviceAuthV2}/devices/:deviceId/auth/:authId`, ({ params: { authId, deviceId } }) => {
266
267
  if (mockApiResponses.devices.byId[deviceId].auth_sets.find((authSet) => authSet.id === authId)) return new HttpResponse(null, { status: 200 });
@@ -274,11 +275,11 @@ const deviceHandlers = [
274
275
  if (mockApiResponses.devices.groups.byId[group]) return new HttpResponse(null, { status: 200 });
275
276
  return new HttpResponse(null, { status: 515 });
276
277
  }),
277
- http.delete(`${inventoryApiUrl}/groups/:group/devices`, async ({ params: { group }, request }) => {
278
+ http.delete(`${inventoryApiUrl}/groups/:group/devices`, validated(async ({ params: { group }, request }) => {
278
279
  const deviceIds = await request.json();
279
280
  if (mockApiResponses.devices.groups.byId[group] && deviceIds.every((id) => !!mockApiResponses.devices.byId[id])) return new HttpResponse(null, { status: 200 });
280
281
  return new HttpResponse(null, { status: 503 });
281
- }),
282
+ })),
282
283
  http.delete(`${inventoryApiUrlV2}/filters/:filterId`, ({ params: { filterId } }) => {
283
284
  if (Object.values(mockApiResponses.devices.groups.byId).find((group) => group.id === filterId)) return new HttpResponse(null, { status: 200 });
284
285
  return new HttpResponse(null, { status: 504 });
@@ -297,11 +298,11 @@ const deviceHandlers = [
297
298
  if (mockApiResponses.devices.byId[deviceId]) return HttpResponse.json(inventoryDevice);
298
299
  return new HttpResponse(null, { status: 506 });
299
300
  }),
300
- http.put(`${inventoryApiUrl}/devices/:deviceId/tags`, async ({ params: { deviceId }, request }) => {
301
+ http.put(`${inventoryApiUrl}/devices/:deviceId/tags`, validated(async ({ params: { deviceId }, request }) => {
301
302
  const tags = await request.json();
302
303
  if (!mockApiResponses.devices.byId[deviceId] && !Array.isArray(tags) && !tags.every((item) => item.name && item.value)) return new HttpResponse(null, { status: 506 });
303
304
  return HttpResponse.json(tags);
304
- }),
305
+ })),
305
306
  http.get(`${inventoryApiUrl}/groups`, () => {
306
307
  const groups = Object.entries(mockApiResponses.devices.groups.byId).reduce((accu, [groupName, group]) => {
307
308
  if (!group.id) accu.push(groupName);
@@ -334,18 +335,18 @@ const deviceHandlers = [
334
335
  }
335
336
  ]
336
337
  }])),
337
- http.patch(`${inventoryApiUrl}/groups/:group/devices`, async ({ params: { group }, request }) => {
338
+ http.patch(`${inventoryApiUrl}/groups/:group/devices`, validated(async ({ params: { group }, request }) => {
338
339
  const deviceIds = await request.json();
339
340
  if (!!group && deviceIds.every((id) => !!mockApiResponses.devices.byId[id])) return new HttpResponse(null, { status: 200 });
340
341
  return new HttpResponse(null, { status: 508 });
341
- }),
342
- http.post(`${deviceAuthV2}/devices`, async ({ request }) => {
342
+ })),
343
+ http.post(`${deviceAuthV2}/devices`, validated(async ({ request }) => {
343
344
  const authset = await request.json();
344
345
  if (Object.values(mockApiResponses.devices.byId).some((device) => device.auth_sets.some((deviceAuthSet) => deviceAuthSet.pubkey == authset.pubkey || deviceAuthSet.identity_data == authset.identity_data))) return new HttpResponse(null, { status: 409 });
345
346
  return new HttpResponse(null, { status: 200 });
346
- }),
347
+ })),
347
348
  http.post(`${inventoryApiUrlV2}/filters/search`, searchHandler),
348
- http.post(`${inventoryApiUrlV2}/filters`, async ({ request }) => {
349
+ http.post(`${inventoryApiUrlV2}/filters`, validated(async ({ request }) => {
349
350
  const { name, terms } = await request.json();
350
351
  if ([name, terms].some((item) => !item) || mockApiResponses.devices.groups[name] || !terms.every((term) => DEVICE_FILTERING_OPTIONS[term.type] && [
351
352
  "identity",
@@ -353,7 +354,7 @@ const deviceHandlers = [
353
354
  "system"
354
355
  ].includes(term.scope) && !!term.value && !!term.attribute)) return new HttpResponse(null, { status: 510 });
355
356
  return new HttpResponse(JSON.stringify({}), { headers: { location: "find/me/here/createdFilterId" } });
356
- }),
357
+ })),
357
358
  http.get(`${inventoryApiUrlV2}/statistics`, async () => HttpResponse.json({ devices_by_status: {
358
359
  accepted: {
359
360
  standard: mockApiResponses.devices.byStatus.accepted.total,
@@ -366,11 +367,11 @@ const deviceHandlers = [
366
367
  system: 0
367
368
  }
368
369
  } })),
369
- http.put(`${deviceAuthV2}/devices/:deviceId/auth/:authId/status`, async ({ params: { authId, deviceId }, request }) => {
370
+ http.put(`${deviceAuthV2}/devices/:deviceId/auth/:authId/status`, validated(async ({ params: { authId, deviceId }, request }) => {
370
371
  const { status } = await request.json();
371
372
  if (mockApiResponses.devices.byId[deviceId].auth_sets.find((authSet) => authSet.id === authId) && DEVICE_STATES[status]) return new HttpResponse(null, { status: 200 });
372
373
  return new HttpResponse(null, { status: 511 });
373
- }),
374
+ })),
374
375
  http.get(`${deviceConfig}/:deviceId`, ({ params: { deviceId } }) => {
375
376
  if (deviceId === "testId") return new HttpResponse(JSON.stringify({ error: { status_code: 404 } }), { status: 404 });
376
377
  if (mockApiResponses.devices.byId[deviceId]) return HttpResponse.json({
@@ -390,14 +391,14 @@ const deviceHandlers = [
390
391
  });
391
392
  return new HttpResponse(null, { status: 512 });
392
393
  }),
393
- http.put(`${deviceConfig}/:deviceId`, async ({ params: { deviceId }, request }) => {
394
+ http.put(`${deviceConfig}/:deviceId`, validated(async ({ params: { deviceId }, request }) => {
394
395
  if ((await request.text()).includes("evilValue")) return new HttpResponse(null, { status: 418 });
395
396
  return new HttpResponse(null, { status: mockApiResponses.devices.byId[deviceId] ? 201 : 513 });
396
- }),
397
- http.post(`${deviceConfig}/:deviceId/deploy`, ({ params: { deviceId } }) => {
397
+ })),
398
+ http.post(`${deviceConfig}/:deviceId/deploy`, validated(({ params: { deviceId } }) => {
398
399
  if (mockApiResponses.devices.byId[deviceId]) return HttpResponse.json({ deployment_id: "config1" });
399
400
  return new HttpResponse(null, { status: 514 });
400
- }),
401
+ })),
401
402
  http.get(`${deviceConnect}/devices/:deviceId`, ({ params: { deviceId } }) => {
402
403
  if (deviceId === "testId") return new HttpResponse(JSON.stringify({ error: { status_code: 404 } }), { status: 404 });
403
404
  if (mockApiResponses.devices.byId[deviceId]) return HttpResponse.json({
@@ -406,20 +407,20 @@ const deviceHandlers = [
406
407
  });
407
408
  return new HttpResponse(null, { status: 512 });
408
409
  }),
409
- http.post(`${deviceConnect}/devices/:deviceId/:action`, ({ params: { deviceId, action } }) => {
410
+ http.post(`${deviceConnect}/devices/:deviceId/:action`, validated(({ params: { deviceId, action } }) => {
410
411
  if (["check-update", "send-inventory"].includes(action) && mockApiResponses.devices.byId[deviceId]) return new HttpResponse(null, { status: 202 });
411
412
  return new HttpResponse(null, { status: 518 });
412
- }),
413
+ })),
413
414
  http.get(`${iotManagerBaseURL}/devices/:deviceId/state`, ({ params: { deviceId } }) => {
414
415
  if (mockApiResponses.devices.byId[deviceId]) return HttpResponse.json({ deployment_id: mockApiResponses.deployments.byId.d1.id });
415
416
  return new HttpResponse(null, { status: 515 });
416
417
  }),
417
- http.put(`${iotManagerBaseURL}/devices/:deviceId/state/:integrationId`, async ({ params: { deviceId }, request }) => {
418
+ http.put(`${iotManagerBaseURL}/devices/:deviceId/state/:integrationId`, validated(async ({ params: { deviceId }, request }) => {
418
419
  const body = await request.json();
419
420
  if (mockApiResponses.devices.byId[deviceId] && body) return HttpResponse.json({ deployment_id: mockApiResponses.deployments.byId.d1.id });
420
421
  return new HttpResponse(null, { status: 516 });
421
- }),
422
- http.put(`${deviceConnect}/devices/:deviceId/upload`, ({ params: { deviceId } }) => new HttpResponse(null, { status: mockApiResponses.devices.byId[deviceId] ? 200 : 517 })),
422
+ })),
423
+ http.put(`${deviceConnect}/devices/:deviceId/upload`, validated(({ params: { deviceId } }) => new HttpResponse(null, { status: mockApiResponses.devices.byId[deviceId] ? 200 : 517 }))),
423
424
  http.get(`${deviceAuthV2}/license`, () => HttpResponse.text("test,report"))
424
425
  ];
425
426
  //#endregion
@@ -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 iotManagerBaseURL\n} from '@northern.tech/utils/constants';\nimport { HttpResponse, http } from 'msw';\n\nimport { defaultCreationDate, defaultMacAddress, mockApiResponses } from '../mockData';\n\nexport const defaultDeviceId = 'a1';\n\nconst deviceAuthDevice = {\n id: defaultDeviceId,\n identity_data: { mac: defaultMacAddress },\n status: 'accepted',\n decommissioning: false,\n created_ts: defaultCreationDate,\n updated_ts: '2019-01-01T09:25:00.000Z',\n auth_sets: [\n {\n id: 'auth1',\n identity_data: { mac: defaultMacAddress },\n pubkey: '-----BEGIN PUBLIC KEY-----\\nMIIBojWELzgJ62hcXIhAfqfoNiaB1326XZByZwcnHr5BuSPAgMBAAE=\\n-----END PUBLIC KEY-----\\n',\n ts: defaultCreationDate,\n status: 'accepted'\n }\n ]\n};\n\nconst checkInTimeExact = '2019-01-01T10:25:00.000Z';\nconst updatedTime = '2019-01-01T09:25:00.000Z';\n\nexport const inventoryDevice = {\n id: defaultDeviceId,\n attributes: [\n { name: 'network_interfaces', value: ['eth0', 'wlan0'], scope: 'inventory' },\n { name: 'kernel', value: 'Linux version 4.19.75-v7l+', scope: 'inventory' },\n { name: 'artifact_name', value: 'raspotifyInstaller', scope: 'inventory' },\n { name: 'ipv6_wlan0', value: 'fe80::68d9:8453:3e9c:7c80/64', scope: 'inventory' },\n { name: 'mac_eth0', value: defaultMacAddress, scope: 'inventory' },\n { name: 'rootfs_type', value: 'ext4', scope: 'inventory' },\n { name: 'mender_bootloader_integration', value: 'unknown', scope: 'inventory' },\n { name: 'cpu_model', value: 'ARMv7 Processor rev 3 (v7l)', scope: 'inventory' },\n { name: 'hostname', value: 'raspberrypi', scope: 'inventory' },\n { name: 'mender_client_version', value: '2.1.0', scope: 'inventory' },\n { name: 'ipv4_wlan0', value: '192.168.10.141/24', scope: 'inventory' },\n { name: 'device_type', value: 'raspberrypi4', scope: 'inventory' },\n { name: 'mem_total_kB', value: '1986024', scope: 'inventory' },\n { name: 'mac_wlan0', value: 'dc:a6:32:12:ad:c0', scope: 'inventory' },\n { name: 'os', value: 'Raspbian GNU/Linux 10 (buster)', scope: 'inventory' },\n { name: 'created_ts', value: defaultCreationDate, scope: 'system' },\n { name: 'updated_ts', value: updatedTime, scope: 'system' },\n { name: 'status', value: 'accepted', scope: 'identity' },\n { name: 'mac', value: defaultMacAddress, scope: 'identity' },\n { name: 'group', value: 'test', scope: 'system' }\n ],\n check_in_time: checkInTimeExact,\n updated_ts: updatedTime\n};\n\nconst deviceAttributes = [\n { name: 'status', scope: 'identity', count: 5 },\n { name: 'created_ts', scope: 'system', count: 5 },\n { name: 'updated_ts', scope: 'system', count: 5 },\n { name: 'mac', scope: 'identity', count: 1 },\n { name: 'artifact_name', scope: 'inventory', count: 1 },\n { name: 'cpu_model', scope: 'inventory', count: 1 },\n { name: 'device_type', scope: 'inventory', count: 1 },\n { name: 'hostname', scope: 'inventory', count: 1 },\n { name: 'ipv4_wlan0', scope: 'inventory', count: 1 },\n { name: 'ipv6_wlan0', scope: 'inventory', count: 1 },\n { name: 'kernel', scope: 'inventory', count: 1 },\n { name: 'mac_eth0', scope: 'inventory', count: 1 },\n { name: 'mac_wlan0', scope: 'inventory', count: 1 },\n { name: 'mem_total_kB', scope: 'inventory', count: 1 },\n { name: 'mender_bootloader_integration', scope: 'inventory', count: 1 },\n { name: 'mender_client_version', scope: 'inventory', count: 1 },\n { name: 'network_interfaces', scope: 'inventory', count: 1 },\n { name: 'os', scope: 'inventory', count: 1 },\n { name: 'rootfs_type', scope: 'inventory', count: 1 },\n { name: 'group', scope: 'system', count: 1 }\n];\n\nconst searchHandler = async ({ request }) => {\n const { page, per_page, filters } = await request.json();\n if ([page, per_page, filters].some(item => !item)) {\n return new HttpResponse(null, { status: 509 });\n }\n const filter = filters.find(filter => filter.scope === 'identity' && filter.attribute === 'status' && Object.values(DEVICE_STATES).includes(filter.value));\n const status = filter?.value || '';\n if (!status || filters.length > 1) {\n if (filters.find(filter => filter.attribute === 'group' && filter.value.includes(Object.keys(mockApiResponses.devices.groups.byId)[0]))) {\n return new HttpResponse(JSON.stringify([inventoryDevice, { ...inventoryDevice, id: 'b1' }]), {\n headers: { [headerNames.total]: 2 }\n });\n }\n if (filters.find(filter => filter.scope === 'monitor' && ['failed_last_update', 'alerts', 'auth_request'].includes(filter.attribute))) {\n return new HttpResponse(JSON.stringify([inventoryDevice]), { headers: { [headerNames.total]: 4 } });\n }\n return new HttpResponse(JSON.stringify([]), { headers: { [headerNames.total]: 0 } });\n }\n let deviceList = Array.from({ length: mockApiResponses.devices.byStatus[status].total }, (_, index) => ({\n ...inventoryDevice,\n attributes: [...inventoryDevice.attributes, { name: 'test-count', value: index, scope: 'system' }],\n id: `${String.fromCharCode('a'.charCodeAt(0) + index)}1`\n }));\n deviceList = deviceList.slice((page - 1) * per_page, page * per_page);\n return new HttpResponse(JSON.stringify(deviceList), { headers: { [headerNames.total]: mockApiResponses.devices.byStatus[status].total } });\n};\n\nexport const deviceHandlers = [\n http.delete(`${deviceAuthV2}/devices/:deviceId/auth/:authId`, ({ params: { authId, deviceId } }) => {\n if (mockApiResponses.devices.byId[deviceId].auth_sets.find(authSet => authSet.id === authId)) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 501 });\n }),\n http.delete(`${deviceAuthV2}/devices/:deviceId`, ({ params: { deviceId } }) => {\n if (mockApiResponses.devices.byId[deviceId]) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 502 });\n }),\n http.delete(`${inventoryApiUrl}/groups/:group`, ({ params: { group } }) => {\n if (mockApiResponses.devices.groups.byId[group]) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 515 });\n }),\n http.delete(`${inventoryApiUrl}/groups/:group/devices`, async ({ params: { group }, request }) => {\n const deviceIds = await request.json();\n if (mockApiResponses.devices.groups.byId[group] && deviceIds.every(id => !!mockApiResponses.devices.byId[id])) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 503 });\n }),\n http.delete(`${inventoryApiUrlV2}/filters/:filterId`, ({ params: { filterId } }) => {\n if (Object.values(mockApiResponses.devices.groups.byId).find(group => group.id === filterId)) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 504 });\n }),\n http.get(`${deviceAuthV2}/devices`, ({ request }) => {\n const { searchParams } = new URL(request.url);\n const deviceIds = searchParams.getAll('id');\n if (deviceIds.every(id => !!mockApiResponses.devices.byId[id])) {\n return HttpResponse.json(deviceIds.map(id => ({ ...deviceAuthDevice, id })));\n }\n return new HttpResponse(null, { status: 505 });\n }),\n http.get(`${deviceAuthV2}/limits/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.put(`${inventoryApiUrl}/devices/:deviceId/tags`, async ({ params: { deviceId }, request }) => {\n const tags = await request.json();\n if (!mockApiResponses.devices.byId[deviceId] && !Array.isArray(tags) && !tags.every(item => item.name && item.value)) {\n return new HttpResponse(null, { status: 506 });\n }\n return HttpResponse.json(tags);\n }),\n http.get(`${inventoryApiUrl}/groups`, () => {\n const groups = Object.entries(mockApiResponses.devices.groups.byId).reduce((accu, [groupName, group]) => {\n if (!group.id) {\n accu.push(groupName);\n }\n return accu;\n }, []);\n return HttpResponse.json(groups);\n }),\n http.get(`${inventoryApiUrlV2}/filters/attributes`, () => HttpResponse.json(deviceAttributes)),\n http.get(`${inventoryApiUrlV2}/filters`, () =>\n HttpResponse.json([\n {\n id: 'filter1',\n name: 'testGroupDynamic',\n terms: [\n { scope: 'identity', attribute: 'id', type: '$in', value: [defaultDeviceId] },\n { scope: 'identity', attribute: 'mac', type: '$exists', value: false },\n { scope: 'identity', attribute: 'kernel', type: '$exists', value: true }\n ]\n }\n ])\n ),\n http.patch(`${inventoryApiUrl}/groups/:group/devices`, async ({ params: { group }, request }) => {\n const deviceIds = await request.json();\n if (!!group && deviceIds.every(id => !!mockApiResponses.devices.byId[id])) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 508 });\n }),\n http.post(`${deviceAuthV2}/devices`, async ({ request }) => {\n const authset = await request.json();\n if (\n Object.values(mockApiResponses.devices.byId).some(device =>\n device.auth_sets.some(deviceAuthSet => deviceAuthSet.pubkey == authset.pubkey || deviceAuthSet.identity_data == authset.identity_data)\n )\n ) {\n return new HttpResponse(null, { status: 409 });\n }\n return new HttpResponse(null, { status: 200 });\n }),\n http.post(`${inventoryApiUrlV2}/filters/search`, searchHandler),\n http.post(`${inventoryApiUrlV2}/filters`, async ({ request }) => {\n const { name, terms } = await request.json();\n if (\n [name, terms].some(item => !item) ||\n mockApiResponses.devices.groups[name] ||\n !terms.every(term => DEVICE_FILTERING_OPTIONS[term.type] && ['identity', 'inventory', 'system'].includes(term.scope) && !!term.value && !!term.attribute)\n ) {\n return new HttpResponse(null, { status: 510 });\n }\n return new HttpResponse(JSON.stringify({}), { headers: { location: 'find/me/here/createdFilterId' } });\n }),\n http.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(`${deviceAuthV2}/devices/:deviceId/auth/:authId/status`, async ({ params: { authId, deviceId }, request }) => {\n const { status } = await request.json();\n if (mockApiResponses.devices.byId[deviceId].auth_sets.find(authSet => authSet.id === authId) && DEVICE_STATES[status]) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 511 });\n }),\n http.get(`${deviceConfig}/:deviceId`, ({ params: { deviceId } }) => {\n if (deviceId === 'testId') {\n return new HttpResponse(JSON.stringify({ error: { status_code: 404 } }), { status: 404 });\n }\n if (mockApiResponses.devices.byId[deviceId]) {\n return HttpResponse.json({\n configured: { test: true, something: 'else', aNumber: 42 },\n deployment_id: 'config1',\n reported: { test: true, something: 'else', aNumber: 42 },\n updated_ts: updatedTime,\n reported_ts: '2019-01-01T09:25:01.000Z'\n });\n }\n return new HttpResponse(null, { status: 512 });\n }),\n http.put(`${deviceConfig}/:deviceId`, async ({ params: { deviceId }, request }) => {\n const body = await request.text();\n if (body.includes('evilValue')) {\n return new HttpResponse(null, { status: 418 });\n }\n return new HttpResponse(null, { status: mockApiResponses.devices.byId[deviceId] ? 201 : 513 });\n }),\n http.post(`${deviceConfig}/:deviceId/deploy`, ({ params: { deviceId } }) => {\n if (mockApiResponses.devices.byId[deviceId]) {\n return HttpResponse.json({ deployment_id: 'config1' });\n }\n return new HttpResponse(null, { status: 514 });\n }),\n http.get(`${deviceConnect}/devices/:deviceId`, ({ params: { deviceId } }) => {\n if (deviceId === 'testId') {\n return new HttpResponse(JSON.stringify({ error: { status_code: 404 } }), { status: 404 });\n }\n if (mockApiResponses.devices.byId[deviceId]) {\n return HttpResponse.json({ status: 'connected', updated_ts: mockApiResponses.devices.byId[deviceId].updated_ts });\n }\n return new HttpResponse(null, { status: 512 });\n }),\n http.post(`${deviceConnect}/devices/:deviceId/:action`, ({ params: { deviceId, action } }) => {\n if (['check-update', 'send-inventory'].includes(action) && mockApiResponses.devices.byId[deviceId]) {\n return new HttpResponse(null, { status: 202 });\n }\n return new HttpResponse(null, { status: 518 });\n }),\n http.get(`${iotManagerBaseURL}/devices/:deviceId/state`, ({ params: { deviceId } }) => {\n if (mockApiResponses.devices.byId[deviceId]) {\n return HttpResponse.json({ deployment_id: mockApiResponses.deployments.byId.d1.id });\n }\n return new HttpResponse(null, { status: 515 });\n }),\n http.put(`${iotManagerBaseURL}/devices/:deviceId/state/:integrationId`, async ({ params: { deviceId }, request }) => {\n const body = await request.json();\n if (mockApiResponses.devices.byId[deviceId] && body) {\n return HttpResponse.json({ deployment_id: mockApiResponses.deployments.byId.d1.id });\n }\n return new HttpResponse(null, { status: 516 });\n }),\n http.put(\n `${deviceConnect}/devices/:deviceId/upload`,\n ({ params: { deviceId } }) => new HttpResponse(null, { status: mockApiResponses.devices.byId[deviceId] ? 200 : 517 })\n ),\n http.get(`${deviceAuthV2}/license`, () => HttpResponse.text('test,report'))\n];\n"],"mappings":"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"}
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 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\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 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.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.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 `${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,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_mockData = require("../mockData.cjs");
3
3
  require("../setupTests.cjs");
4
+ const require_validation = require("../validation-qz6hVrWn.cjs");
4
5
  let _northern_tech_utils_constants = require("@northern.tech/utils/constants");
5
6
  let msw = require("msw");
6
7
  //#region src/requestHandlers/monitorHandlers.ts
@@ -11,11 +12,11 @@ const monitorHandlers = [
11
12
  if (id === require_mockData.mockApiResponses.devices.byId.a1.id) return msw.HttpResponse.json([{ something: "here" }]);
12
13
  return msw.HttpResponse.json([]);
13
14
  }),
14
- msw.http.put(`${_northern_tech_utils_constants.monitorApiUrlv1}/settings/global/channel/alerts/:channel/status`, async ({ params: { channel }, request }) => {
15
+ msw.http.put(`${_northern_tech_utils_constants.monitorApiUrlv1}/settings/global/channel/alerts/:channel/status`, require_validation.validated(async ({ params: { channel }, request }) => {
15
16
  const { enabled } = await request.json();
16
17
  if (Object.keys(_northern_tech_utils_constants.alertChannels).includes(channel) && enabled !== void 0) return new msw.HttpResponse(null, { status: 200 });
17
18
  return new msw.HttpResponse(null, { status: 590 });
18
- })
19
+ }))
19
20
  ];
20
21
  //#endregion
21
22
  exports.monitorHandlers = monitorHandlers;
@@ -1 +1 @@
1
- {"version":3,"file":"monitorHandlers.cjs","names":["http","monitorApiUrlv1","HttpResponse","headerNames","mockApiResponses","alertChannels"],"sources":["../../src/requestHandlers/monitorHandlers.ts"],"sourcesContent":["// Copyright 2021 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 { alertChannels, headerNames, monitorApiUrlv1 } from '@northern.tech/utils/constants';\nimport { HttpResponse, http } from 'msw';\n\nimport { mockApiResponses } from '../mockData';\n\nexport const monitorHandlers = [\n http.get(`${monitorApiUrlv1}/devices/:id/alerts`, () => new HttpResponse(JSON.stringify([]), { headers: { [headerNames.total]: 1 } })),\n http.get(`${monitorApiUrlv1}/devices/:id/alerts/latest`, () => HttpResponse.json([])),\n http.get(`${monitorApiUrlv1}/devices/:id/config`, ({ params: { id } }) => {\n if (id === mockApiResponses.devices.byId.a1.id) {\n return HttpResponse.json([{ something: 'here' }]);\n }\n return HttpResponse.json([]);\n }),\n http.put(`${monitorApiUrlv1}/settings/global/channel/alerts/:channel/status`, async ({ params: { channel }, request }) => {\n const { enabled } = await request.json();\n if (Object.keys(alertChannels).includes(channel) && enabled !== undefined) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 590 });\n })\n];\n"],"mappings":";;;;;;AAmBA,MAAa,kBAAkB;CAC7BA,IAAAA,KAAK,IAAI,GAAGC,+BAAAA,gBAAgB,4BAA4B,IAAIC,IAAAA,aAAa,KAAK,UAAU,EAAE,CAAC,EAAE,EAAE,SAAS,GAAGC,+BAAAA,YAAY,QAAQ,GAAG,EAAE,CAAC,CAAC;CACtIH,IAAAA,KAAK,IAAI,GAAGC,+BAAAA,gBAAgB,mCAAmCC,IAAAA,aAAa,KAAK,EAAE,CAAC,CAAC;CACrFF,IAAAA,KAAK,IAAI,GAAGC,+BAAAA,gBAAgB,uBAAuB,EAAE,QAAQ,EAAE,WAAW;AACxE,MAAI,OAAOG,iBAAAA,iBAAiB,QAAQ,KAAK,GAAG,GAC1C,QAAOF,IAAAA,aAAa,KAAK,CAAC,EAAE,WAAW,QAAQ,CAAC,CAAC;AAEnD,SAAOA,IAAAA,aAAa,KAAK,EAAE,CAAC;GAC5B;CACFF,IAAAA,KAAK,IAAI,GAAGC,+BAAAA,gBAAgB,kDAAkD,OAAO,EAAE,QAAQ,EAAE,WAAW,cAAc;EACxH,MAAM,EAAE,YAAY,MAAM,QAAQ,MAAM;AACxC,MAAI,OAAO,KAAKI,+BAAAA,cAAc,CAAC,SAAS,QAAQ,IAAI,YAAY,KAAA,EAC9D,QAAO,IAAIH,IAAAA,aAAa,MAAM,EAAE,QAAQ,KAAK,CAAC;AAEhD,SAAO,IAAIA,IAAAA,aAAa,MAAM,EAAE,QAAQ,KAAK,CAAC;GAC9C;CACH"}
1
+ {"version":3,"file":"monitorHandlers.cjs","names":["http","monitorApiUrlv1","HttpResponse","headerNames","mockApiResponses","validated","alertChannels"],"sources":["../../src/requestHandlers/monitorHandlers.ts"],"sourcesContent":["// Copyright 2021 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 { alertChannels, headerNames, monitorApiUrlv1 } from '@northern.tech/utils/constants';\nimport { HttpResponse, http } from 'msw';\n\nimport { mockApiResponses } from '../mockData';\nimport { validated } from './validation';\n\nexport const monitorHandlers = [\n http.get(`${monitorApiUrlv1}/devices/:id/alerts`, () => new HttpResponse(JSON.stringify([]), { headers: { [headerNames.total]: 1 } })),\n http.get(`${monitorApiUrlv1}/devices/:id/alerts/latest`, () => HttpResponse.json([])),\n http.get(`${monitorApiUrlv1}/devices/:id/config`, ({ params: { id } }) => {\n if (id === mockApiResponses.devices.byId.a1.id) {\n return HttpResponse.json([{ something: 'here' }]);\n }\n return HttpResponse.json([]);\n }),\n http.put(\n `${monitorApiUrlv1}/settings/global/channel/alerts/:channel/status`,\n validated(async ({ params: { channel }, request }) => {\n const { enabled } = await request.json();\n if (Object.keys(alertChannels).includes(channel) && enabled !== undefined) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 590 });\n })\n )\n];\n"],"mappings":";;;;;;;AAoBA,MAAa,kBAAkB;CAC7BA,IAAAA,KAAK,IAAI,GAAGC,+BAAAA,gBAAgB,4BAA4B,IAAIC,IAAAA,aAAa,KAAK,UAAU,EAAE,CAAC,EAAE,EAAE,SAAS,GAAGC,+BAAAA,YAAY,QAAQ,GAAG,EAAE,CAAC,CAAC;CACtIH,IAAAA,KAAK,IAAI,GAAGC,+BAAAA,gBAAgB,mCAAmCC,IAAAA,aAAa,KAAK,EAAE,CAAC,CAAC;CACrFF,IAAAA,KAAK,IAAI,GAAGC,+BAAAA,gBAAgB,uBAAuB,EAAE,QAAQ,EAAE,WAAW;AACxE,MAAI,OAAOG,iBAAAA,iBAAiB,QAAQ,KAAK,GAAG,GAC1C,QAAOF,IAAAA,aAAa,KAAK,CAAC,EAAE,WAAW,QAAQ,CAAC,CAAC;AAEnD,SAAOA,IAAAA,aAAa,KAAK,EAAE,CAAC;GAC5B;CACFF,IAAAA,KAAK,IACH,GAAGC,+BAAAA,gBAAgB,kDACnBI,mBAAAA,UAAU,OAAO,EAAE,QAAQ,EAAE,WAAW,cAAc;EACpD,MAAM,EAAE,YAAY,MAAM,QAAQ,MAAM;AACxC,MAAI,OAAO,KAAKC,+BAAAA,cAAc,CAAC,SAAS,QAAQ,IAAI,YAAY,KAAA,EAC9D,QAAO,IAAIJ,IAAAA,aAAa,MAAM,EAAE,QAAQ,KAAK,CAAC;AAEhD,SAAO,IAAIA,IAAAA,aAAa,MAAM,EAAE,QAAQ,KAAK,CAAC;GAC9C,CACH;CACF"}
@@ -1,4 +1,5 @@
1
1
  import { mockApiResponses } from "../mockData.js";
2
+ import { n as validated } from "../validation-vBjmzPxs.js";
2
3
  import { alertChannels, headerNames, monitorApiUrlv1 } from "@northern.tech/utils/constants";
3
4
  import { HttpResponse, http } from "msw";
4
5
  //#region src/requestHandlers/monitorHandlers.ts
@@ -9,11 +10,11 @@ const monitorHandlers = [
9
10
  if (id === mockApiResponses.devices.byId.a1.id) return HttpResponse.json([{ something: "here" }]);
10
11
  return HttpResponse.json([]);
11
12
  }),
12
- http.put(`${monitorApiUrlv1}/settings/global/channel/alerts/:channel/status`, async ({ params: { channel }, request }) => {
13
+ http.put(`${monitorApiUrlv1}/settings/global/channel/alerts/:channel/status`, validated(async ({ params: { channel }, request }) => {
13
14
  const { enabled } = await request.json();
14
15
  if (Object.keys(alertChannels).includes(channel) && enabled !== void 0) return new HttpResponse(null, { status: 200 });
15
16
  return new HttpResponse(null, { status: 590 });
16
- })
17
+ }))
17
18
  ];
18
19
  //#endregion
19
20
  export { monitorHandlers };
@@ -1 +1 @@
1
- {"version":3,"file":"monitorHandlers.js","names":[],"sources":["../../src/requestHandlers/monitorHandlers.ts"],"sourcesContent":["// Copyright 2021 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 { alertChannels, headerNames, monitorApiUrlv1 } from '@northern.tech/utils/constants';\nimport { HttpResponse, http } from 'msw';\n\nimport { mockApiResponses } from '../mockData';\n\nexport const monitorHandlers = [\n http.get(`${monitorApiUrlv1}/devices/:id/alerts`, () => new HttpResponse(JSON.stringify([]), { headers: { [headerNames.total]: 1 } })),\n http.get(`${monitorApiUrlv1}/devices/:id/alerts/latest`, () => HttpResponse.json([])),\n http.get(`${monitorApiUrlv1}/devices/:id/config`, ({ params: { id } }) => {\n if (id === mockApiResponses.devices.byId.a1.id) {\n return HttpResponse.json([{ something: 'here' }]);\n }\n return HttpResponse.json([]);\n }),\n http.put(`${monitorApiUrlv1}/settings/global/channel/alerts/:channel/status`, async ({ params: { channel }, request }) => {\n const { enabled } = await request.json();\n if (Object.keys(alertChannels).includes(channel) && enabled !== undefined) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 590 });\n })\n];\n"],"mappings":";;;;AAmBA,MAAa,kBAAkB;CAC7B,KAAK,IAAI,GAAG,gBAAgB,4BAA4B,IAAI,aAAa,KAAK,UAAU,EAAE,CAAC,EAAE,EAAE,SAAS,GAAG,YAAY,QAAQ,GAAG,EAAE,CAAC,CAAC;CACtI,KAAK,IAAI,GAAG,gBAAgB,mCAAmC,aAAa,KAAK,EAAE,CAAC,CAAC;CACrF,KAAK,IAAI,GAAG,gBAAgB,uBAAuB,EAAE,QAAQ,EAAE,WAAW;AACxE,MAAI,OAAO,iBAAiB,QAAQ,KAAK,GAAG,GAC1C,QAAO,aAAa,KAAK,CAAC,EAAE,WAAW,QAAQ,CAAC,CAAC;AAEnD,SAAO,aAAa,KAAK,EAAE,CAAC;GAC5B;CACF,KAAK,IAAI,GAAG,gBAAgB,kDAAkD,OAAO,EAAE,QAAQ,EAAE,WAAW,cAAc;EACxH,MAAM,EAAE,YAAY,MAAM,QAAQ,MAAM;AACxC,MAAI,OAAO,KAAK,cAAc,CAAC,SAAS,QAAQ,IAAI,YAAY,KAAA,EAC9D,QAAO,IAAI,aAAa,MAAM,EAAE,QAAQ,KAAK,CAAC;AAEhD,SAAO,IAAI,aAAa,MAAM,EAAE,QAAQ,KAAK,CAAC;GAC9C;CACH"}
1
+ {"version":3,"file":"monitorHandlers.js","names":[],"sources":["../../src/requestHandlers/monitorHandlers.ts"],"sourcesContent":["// Copyright 2021 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 { alertChannels, headerNames, monitorApiUrlv1 } from '@northern.tech/utils/constants';\nimport { HttpResponse, http } from 'msw';\n\nimport { mockApiResponses } from '../mockData';\nimport { validated } from './validation';\n\nexport const monitorHandlers = [\n http.get(`${monitorApiUrlv1}/devices/:id/alerts`, () => new HttpResponse(JSON.stringify([]), { headers: { [headerNames.total]: 1 } })),\n http.get(`${monitorApiUrlv1}/devices/:id/alerts/latest`, () => HttpResponse.json([])),\n http.get(`${monitorApiUrlv1}/devices/:id/config`, ({ params: { id } }) => {\n if (id === mockApiResponses.devices.byId.a1.id) {\n return HttpResponse.json([{ something: 'here' }]);\n }\n return HttpResponse.json([]);\n }),\n http.put(\n `${monitorApiUrlv1}/settings/global/channel/alerts/:channel/status`,\n validated(async ({ params: { channel }, request }) => {\n const { enabled } = await request.json();\n if (Object.keys(alertChannels).includes(channel) && enabled !== undefined) {\n return new HttpResponse(null, { status: 200 });\n }\n return new HttpResponse(null, { status: 590 });\n })\n )\n];\n"],"mappings":";;;;;AAoBA,MAAa,kBAAkB;CAC7B,KAAK,IAAI,GAAG,gBAAgB,4BAA4B,IAAI,aAAa,KAAK,UAAU,EAAE,CAAC,EAAE,EAAE,SAAS,GAAG,YAAY,QAAQ,GAAG,EAAE,CAAC,CAAC;CACtI,KAAK,IAAI,GAAG,gBAAgB,mCAAmC,aAAa,KAAK,EAAE,CAAC,CAAC;CACrF,KAAK,IAAI,GAAG,gBAAgB,uBAAuB,EAAE,QAAQ,EAAE,WAAW;AACxE,MAAI,OAAO,iBAAiB,QAAQ,KAAK,GAAG,GAC1C,QAAO,aAAa,KAAK,CAAC,EAAE,WAAW,QAAQ,CAAC,CAAC;AAEnD,SAAO,aAAa,KAAK,EAAE,CAAC;GAC5B;CACF,KAAK,IACH,GAAG,gBAAgB,kDACnB,UAAU,OAAO,EAAE,QAAQ,EAAE,WAAW,cAAc;EACpD,MAAM,EAAE,YAAY,MAAM,QAAQ,MAAM;AACxC,MAAI,OAAO,KAAK,cAAc,CAAC,SAAS,QAAQ,IAAI,YAAY,KAAA,EAC9D,QAAO,IAAI,aAAa,MAAM,EAAE,QAAQ,KAAK,CAAC;AAEhD,SAAO,IAAI,aAAa,MAAM,EAAE,QAAQ,KAAK,CAAC;GAC9C,CACH;CACF"}
@@ -1,6 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_mockData = require("../mockData.cjs");
3
3
  require("../setupTests.cjs");
4
+ const require_validation = require("../validation-qz6hVrWn.cjs");
4
5
  let _northern_tech_utils_constants = require("@northern.tech/utils/constants");
5
6
  let msw = require("msw");
6
7
  //#region src/requestHandlers/organizationHandlers.ts
@@ -110,16 +111,15 @@ const tagsSample = [{
110
111
  name: "saas-v2023.05.02",
111
112
  more: "here"
112
113
  }];
113
- const signupHandler = async ({ request }) => {
114
+ const signupHandler = require_validation.validated(async ({ request }) => {
114
115
  const signup = await request.json();
115
116
  if ([
116
117
  "email",
117
118
  "organization",
118
- "plan",
119
- "tos"
119
+ "plan"
120
120
  ].every((item) => !!signup[item])) return msw.HttpResponse.text("test");
121
121
  return new msw.HttpResponse(null, { status: 400 });
122
- };
122
+ });
123
123
  const invoicePreviewBasic = {
124
124
  id: "upcoming_in_1RlAkbFlFfXikjZVOHK5VQx0",
125
125
  period_start: "2025-07-15T15:25:22Z",
@@ -155,8 +155,8 @@ const organizationHandlers = [
155
155
  msw.http.get("/tags.json", () => msw.HttpResponse.json(tagsSample)),
156
156
  msw.http.get("/versions.json", () => msw.HttpResponse.json(releasesSample)),
157
157
  msw.http.get(`${_northern_tech_utils_constants.tenantadmApiUrlv1}/user/tenant`, () => msw.HttpResponse.json(require_mockData.mockApiResponses.organization.organization)),
158
- msw.http.put(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/tenants/:tenantId/child`, () => new msw.HttpResponse(null, { status: 200 })),
159
- msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/tenants/:tenantId/cancel`, () => new msw.HttpResponse(null, { status: 200 })),
158
+ msw.http.put(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/tenants/:tenantId/child`, require_validation.validated(() => new msw.HttpResponse(null, { status: 200 }))),
159
+ msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/tenants/:tenantId/cancel`, require_validation.validated(() => new msw.HttpResponse(null, { status: 200 }))),
160
160
  msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/tenants/trial`, signupHandler),
161
161
  msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/tenants`, async ({ request }) => {
162
162
  const { users } = await request.json();
@@ -190,11 +190,11 @@ const organizationHandlers = [
190
190
  postal_code: "0123"
191
191
  } }
192
192
  })),
193
- msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/billing/card`, () => msw.HttpResponse.json({
193
+ msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/billing/card`, require_validation.validated(() => msw.HttpResponse.json({
194
194
  intent_id: require_mockData.mockApiResponses.organization.intentId,
195
195
  secret: "testSecret"
196
- })),
197
- msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/billing/card/:intentId/confirm`, ({ params: { intentId } }) => new msw.HttpResponse(null, { status: intentId == require_mockData.mockApiResponses.organization.intentId ? 200 : 540 })),
196
+ }))),
197
+ msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/billing/card/:intentId/confirm`, require_validation.validated(({ params: { intentId } }) => new msw.HttpResponse(null, { status: intentId == require_mockData.mockApiResponses.organization.intentId ? 200 : 540 }))),
198
198
  msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/tenants/:tenantId/upgrade/:status`, async ({ params: { status, tenantId }, request }) => {
199
199
  if (tenantId != require_mockData.mockApiResponses.organization.organization.id || ![
200
200
  "cancel",
@@ -209,7 +209,7 @@ const organizationHandlers = [
209
209
  if (plan && !Object.keys(PLANS).includes(plan)) return new msw.HttpResponse(null, { status: 542 });
210
210
  return new msw.HttpResponse(null, { status: 200 });
211
211
  }),
212
- msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/tenants/:tenantId/plan`, async ({ params: { tenantId }, request }) => {
212
+ msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/tenants/:tenantId/plan`, require_validation.validated(async ({ params: { tenantId }, request }) => {
213
213
  const body = await request.json();
214
214
  const expectedKeys = [
215
215
  "current_plan",
@@ -221,15 +221,15 @@ const organizationHandlers = [
221
221
  if (tenantId != require_mockData.mockApiResponses.organization.organization.id || !Object.keys(body).every((key) => expectedKeys.includes(key))) return new msw.HttpResponse(null, { status: 544 });
222
222
  if (body.requested_plan && !Object.values(PLANS).some((item) => item.name === body.requested_plan)) return new msw.HttpResponse(null, { status: 545 });
223
223
  return new msw.HttpResponse(null, { status: 200 });
224
- }),
225
- msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/contact/support`, async ({ request }) => {
224
+ })),
225
+ msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/contact/support`, require_validation.validated(async ({ request }) => {
226
226
  const { subject, body } = await request.json();
227
227
  if (!(subject && body)) return new msw.HttpResponse(null, { status: 543 });
228
228
  return new msw.HttpResponse(null, { status: 200 });
229
- }),
230
- msw.http.patch(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/billing/profile`, () => new msw.HttpResponse(null, { status: 200 })),
231
- msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/billing/profile`, () => new msw.HttpResponse(null, { status: 200 })),
232
- msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/billing/subscription`, () => new msw.HttpResponse(null, { status: 202 })),
229
+ })),
230
+ msw.http.patch(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/billing/profile`, require_validation.validated(() => new msw.HttpResponse(null, { status: 200 }))),
231
+ msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/billing/profile`, require_validation.validated(() => new msw.HttpResponse(null, { status: 200 }))),
232
+ msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/billing/subscription`, require_validation.validated(() => new msw.HttpResponse(null, { status: 202 }))),
233
233
  msw.http.post(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/billing/subscription/invoices/preview`, () => msw.HttpResponse.json(invoicePreviewBasic)),
234
234
  msw.http.get(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/billing/subscription`, () => msw.HttpResponse.json(subscriptionBasic)),
235
235
  msw.http.get(`${_northern_tech_utils_constants.tenantadmApiUrlv2}/billing/products`, () => msw.HttpResponse.json(require_mockData.mockApiResponses.organization.products)),
@@ -262,18 +262,18 @@ const organizationHandlers = [
262
262
  provider: "iot-core",
263
263
  something: "new"
264
264
  }])),
265
- msw.http.post(`${_northern_tech_utils_constants.iotManagerBaseURL}/integrations`, () => msw.HttpResponse.json([{
265
+ msw.http.post(`${_northern_tech_utils_constants.iotManagerBaseURL}/integrations`, require_validation.validated(() => msw.HttpResponse.json([{
266
266
  connection_string: "something_else",
267
267
  provider: "iot-hub"
268
- }])),
269
- msw.http.put(`${_northern_tech_utils_constants.iotManagerBaseURL}/integrations/:integrationId`, ({ params: { integrationId } }) => {
268
+ }]))),
269
+ msw.http.put(`${_northern_tech_utils_constants.iotManagerBaseURL}/integrations/:integrationId`, require_validation.validated(({ params: { integrationId } }) => {
270
270
  if (!integrationId) return new msw.HttpResponse(null, { status: 547 });
271
271
  return new msw.HttpResponse(null, { status: 200 });
272
- }),
273
- msw.http.put(`${_northern_tech_utils_constants.iotManagerBaseURL}/integrations/:integrationId/credentials`, ({ params: { integrationId } }) => {
272
+ })),
273
+ msw.http.put(`${_northern_tech_utils_constants.iotManagerBaseURL}/integrations/:integrationId/credentials`, require_validation.validated(({ params: { integrationId } }) => {
274
274
  if (!integrationId) return new msw.HttpResponse(null, { status: 548 });
275
275
  return new msw.HttpResponse(null, { status: 200 });
276
- }),
276
+ })),
277
277
  msw.http.delete(`${_northern_tech_utils_constants.iotManagerBaseURL}/integrations/:integrationId`, ({ params: { integrationId } }) => {
278
278
  if (!integrationId) return new msw.HttpResponse(null, { status: 549 });
279
279
  return new msw.HttpResponse(null, { status: 200 });
@@ -293,7 +293,7 @@ const organizationHandlers = [
293
293
  issuer: "https://samltest2.id/saml/idp",
294
294
  valid_until: "2030-10-24T21:14:09Z"
295
295
  }])),
296
- msw.http.post(_northern_tech_utils_constants.ssoIdpApiUrlv1, () => new msw.HttpResponse(null, { status: 200 })),
296
+ msw.http.post(_northern_tech_utils_constants.ssoIdpApiUrlv1, require_validation.validated(() => new msw.HttpResponse(null, { status: 200 }))),
297
297
  msw.http.get(`${_northern_tech_utils_constants.ssoIdpApiUrlv1}/:configId`, ({ params: { configId } }) => {
298
298
  if (!configId) return new msw.HttpResponse(null, { status: 550 });
299
299
  return msw.HttpResponse.json({
@@ -303,7 +303,7 @@ const organizationHandlers = [
303
303
  config: "<div>not quite right</div>"
304
304
  });
305
305
  }),
306
- msw.http.put(`${_northern_tech_utils_constants.ssoIdpApiUrlv1}/:configId`, ({ params: { configId } }) => new msw.HttpResponse(null, { status: configId ? 200 : 551 })),
306
+ msw.http.put(`${_northern_tech_utils_constants.ssoIdpApiUrlv1}/:configId`, require_validation.validated(({ params: { configId } }) => new msw.HttpResponse(null, { status: configId ? 200 : 551 }))),
307
307
  msw.http.delete(`${_northern_tech_utils_constants.ssoIdpApiUrlv1}/:configId`, ({ params: { configId } }) => new msw.HttpResponse(null, { status: configId ? 200 : 552 }))
308
308
  ];
309
309
  //#endregion