@northern.tech/testing 0.18.2 → 0.18.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/mockData.d.cts +25 -51
- package/dist/mockData.d.ts +25 -51
- package/dist/requestHandlers/deploymentHandlers.cjs +3 -3
- package/dist/requestHandlers/deploymentHandlers.cjs.map +1 -1
- package/dist/requestHandlers/deploymentHandlers.d.cts +1 -2
- package/dist/requestHandlers/deploymentHandlers.d.ts +1 -2
- package/dist/requestHandlers/deploymentHandlers.js +3 -3
- package/dist/requestHandlers/deploymentHandlers.js.map +1 -1
- package/dist/requestHandlers/deviceHandlers.cjs +3 -7
- package/dist/requestHandlers/deviceHandlers.cjs.map +1 -1
- package/dist/requestHandlers/deviceHandlers.d.cts +4 -5
- package/dist/requestHandlers/deviceHandlers.d.ts +4 -5
- package/dist/requestHandlers/deviceHandlers.js +3 -7
- package/dist/requestHandlers/deviceHandlers.js.map +1 -1
- package/dist/requestHandlers/monitorHandlers.cjs +1 -1
- package/dist/requestHandlers/monitorHandlers.d.cts +1 -2
- package/dist/requestHandlers/monitorHandlers.d.ts +1 -2
- package/dist/requestHandlers/monitorHandlers.js +1 -1
- package/dist/requestHandlers/organizationHandlers.cjs +2 -2
- package/dist/requestHandlers/organizationHandlers.cjs.map +1 -1
- package/dist/requestHandlers/organizationHandlers.d.cts +1 -2
- package/dist/requestHandlers/organizationHandlers.d.ts +1 -2
- package/dist/requestHandlers/organizationHandlers.js +2 -2
- package/dist/requestHandlers/organizationHandlers.js.map +1 -1
- package/dist/requestHandlers/releaseHandlers.cjs +1 -1
- package/dist/requestHandlers/releaseHandlers.d.cts +1 -2
- package/dist/requestHandlers/releaseHandlers.d.ts +1 -2
- package/dist/requestHandlers/releaseHandlers.js +1 -1
- package/dist/requestHandlers/userHandlers.cjs +2 -2
- package/dist/requestHandlers/userHandlers.cjs.map +1 -1
- package/dist/requestHandlers/userHandlers.d.cts +1 -2
- package/dist/requestHandlers/userHandlers.d.ts +1 -2
- package/dist/requestHandlers/userHandlers.js +2 -2
- package/dist/requestHandlers/userHandlers.js.map +1 -1
- package/dist/requestHandlers/validation.cjs +1 -1
- package/dist/requestHandlers/validation.d.cts +2 -3
- package/dist/requestHandlers/validation.d.ts +2 -3
- package/dist/requestHandlers/validation.js +1 -1
- package/dist/setupTests.d.cts +7 -7
- package/dist/setupTests.d.ts +7 -7
- package/dist/theme/light.d.cts +1 -2
- package/dist/theme/light.d.ts +1 -2
- package/dist/theme/mui.d.cts +1 -0
- package/dist/theme/mui.d.ts +1 -0
- package/dist/utils.d.cts +2 -3
- package/dist/utils.d.ts +2 -3
- package/dist/validation-DHpIYTTi.js +64 -0
- package/dist/validation-DHpIYTTi.js.map +1 -0
- package/dist/validation-m8rbcHeR.cjs +75 -0
- package/dist/validation-m8rbcHeR.cjs.map +1 -0
- package/package.json +5 -3
- package/dist/validation-CRPLRTor.js +0 -64
- package/dist/validation-CRPLRTor.js.map +0 -1
- package/dist/validation-D5btBOXJ.cjs +0 -75
- package/dist/validation-D5btBOXJ.cjs.map +0 -1
package/dist/mockData.d.cts
CHANGED
|
@@ -1,44 +1,19 @@
|
|
|
1
|
-
//#region ../types/dist/types.gen.d.ts
|
|
2
|
-
/**
|
|
3
|
-
* Role permission
|
|
4
|
-
*/
|
|
5
|
-
type RolePermission = {
|
|
6
|
-
/**
|
|
7
|
-
* Action
|
|
8
|
-
*/
|
|
9
|
-
action: 'any' | 'http' | 'CREATE_DEPLOYMENT' | 'MANAGE_DEVICE' | 'REMOTE_TERMINAL' | 'VIEW_DEVICE';
|
|
10
|
-
object: RolePermissionObject;
|
|
11
|
-
};
|
|
12
|
-
/**
|
|
13
|
-
* Role permission object
|
|
14
|
-
*/
|
|
15
|
-
type RolePermissionObject = {
|
|
16
|
-
/**
|
|
17
|
-
* Type
|
|
18
|
-
*/
|
|
19
|
-
type: string;
|
|
20
|
-
/**
|
|
21
|
-
* Value
|
|
22
|
-
*/
|
|
23
|
-
value: string;
|
|
24
|
-
};
|
|
25
|
-
//#endregion
|
|
26
1
|
//#region src/mockData.d.ts
|
|
27
|
-
declare const undefineds: RegExp;
|
|
28
|
-
declare const menderEnvironment: {
|
|
2
|
+
export declare const undefineds: RegExp;
|
|
3
|
+
export declare const menderEnvironment: {
|
|
29
4
|
features: {
|
|
30
5
|
hasMultitenancy: boolean;
|
|
31
6
|
};
|
|
32
7
|
version: string;
|
|
33
8
|
};
|
|
34
|
-
declare const TEST_SESSION_DATETIME = "2019-01-13T13:00:00.000Z";
|
|
35
|
-
declare const mockDate: Date;
|
|
36
|
-
declare const defaultPassword = "mysecretpassword!123";
|
|
37
|
-
declare const defaultCreationDate = "2019-01-13T06:25:00.000Z";
|
|
38
|
-
declare const defaultMacAddress = "dc:a6:32:12:ad:bf";
|
|
39
|
-
declare const testSsoId = "sso_id";
|
|
40
|
-
declare const token = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJjZTNkMGY4Yy1hZWRlLTQwMzAtYjM5MS03ZDUwMjBlYjg3M2UiLCJzdWIiOiJhMzBhNzgwYi1iODQzLTUzNDQtODBlMy0wZmQ5NWE0ZjZmYzMiLCJleHAiOjE2MDY4MTUzNjksImlhdCI6MTYwNjIxMDU2OSwibWVuZGVyLnRlbmFudCI6IjVmODVjMTdiY2U2MmI3ZmE3ZjVmNzA0MCIsIm1lbmRlci51c2VyIjp0cnVlLCJpc3MiOiJNZW5kZXIgVXNlcnMiLCJzY3AiOiJtZW5kZXIuKiIsIm1lbmRlci5wbGFuIjoicHJvZmVzc2lvbmFsIiwibmJmIjoxNjA2MjEwNTY5fQ.qVgYdCzLTf8OdK9uUctqqaY_HWkIiwpekuGvuGQAXCEgOv4bRNDlZRN_ZRSbxQoARG3pquhScbQrjBV9tcF4irTUPlTn3yrsXNO17DpcbTVeKRkb88RDtIKiRw3orVZ_GlIb-ckTQ5dS-Nqlyyf3Fmrhca-gwt6m_xv2UrmJK6eYYTMfggdRRWb-4u7mEkBI_pHPMTQrT8kJ2BeX-vHgazH9AoH0k85LHtFZQXD7pXHlDZRnLxJXukncwMGDmF17374gavYAIyDIzcC8sEBMDnVXgpikeA1sauzirqix6mAVs6XmxdQO7aF0wfXO1_PTYUA3Nk1oQfMYNlEI3U9uLRJRZIq2L8fmrrBryhstKd4y0KlBbGAQrx8NtRkgajjd1ljMfPBUEZrb7uSerVjneiO-aIBO76CuH0zdklphIjpGJeogkBhe8pAYNggp1XsZHgpZfl7IE5faKaDkMGnutaea--Czor6bhqUNCuY4tR0cpQJbNwy6LS9o1CFy4Log";
|
|
41
|
-
declare const accessTokens: ({
|
|
9
|
+
export declare const TEST_SESSION_DATETIME = "2019-01-13T13:00:00.000Z";
|
|
10
|
+
export declare const mockDate: Date;
|
|
11
|
+
export declare const defaultPassword = "mysecretpassword!123";
|
|
12
|
+
export declare const defaultCreationDate = "2019-01-13T06:25:00.000Z";
|
|
13
|
+
export declare const defaultMacAddress = "dc:a6:32:12:ad:bf";
|
|
14
|
+
export declare const testSsoId = "sso_id";
|
|
15
|
+
export declare const token = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJjZTNkMGY4Yy1hZWRlLTQwMzAtYjM5MS03ZDUwMjBlYjg3M2UiLCJzdWIiOiJhMzBhNzgwYi1iODQzLTUzNDQtODBlMy0wZmQ5NWE0ZjZmYzMiLCJleHAiOjE2MDY4MTUzNjksImlhdCI6MTYwNjIxMDU2OSwibWVuZGVyLnRlbmFudCI6IjVmODVjMTdiY2U2MmI3ZmE3ZjVmNzA0MCIsIm1lbmRlci51c2VyIjp0cnVlLCJpc3MiOiJNZW5kZXIgVXNlcnMiLCJzY3AiOiJtZW5kZXIuKiIsIm1lbmRlci5wbGFuIjoicHJvZmVzc2lvbmFsIiwibmJmIjoxNjA2MjEwNTY5fQ.qVgYdCzLTf8OdK9uUctqqaY_HWkIiwpekuGvuGQAXCEgOv4bRNDlZRN_ZRSbxQoARG3pquhScbQrjBV9tcF4irTUPlTn3yrsXNO17DpcbTVeKRkb88RDtIKiRw3orVZ_GlIb-ckTQ5dS-Nqlyyf3Fmrhca-gwt6m_xv2UrmJK6eYYTMfggdRRWb-4u7mEkBI_pHPMTQrT8kJ2BeX-vHgazH9AoH0k85LHtFZQXD7pXHlDZRnLxJXukncwMGDmF17374gavYAIyDIzcC8sEBMDnVXgpikeA1sauzirqix6mAVs6XmxdQO7aF0wfXO1_PTYUA3Nk1oQfMYNlEI3U9uLRJRZIq2L8fmrrBryhstKd4y0KlBbGAQrx8NtRkgajjd1ljMfPBUEZrb7uSerVjneiO-aIBO76CuH0zdklphIjpGJeogkBhe8pAYNggp1XsZHgpZfl7IE5faKaDkMGnutaea--Czor6bhqUNCuY4tR0cpQJbNwy6LS9o1CFy4Log";
|
|
16
|
+
export declare const accessTokens: ({
|
|
42
17
|
id: string;
|
|
43
18
|
expiration_date: string;
|
|
44
19
|
name: string;
|
|
@@ -49,12 +24,12 @@ declare const accessTokens: ({
|
|
|
49
24
|
last_used: string;
|
|
50
25
|
name: string;
|
|
51
26
|
})[];
|
|
52
|
-
declare const pendingEmailChange: {
|
|
27
|
+
export declare const pendingEmailChange: {
|
|
53
28
|
new_email: string;
|
|
54
29
|
created_ts: string;
|
|
55
30
|
valid_until: string;
|
|
56
31
|
};
|
|
57
|
-
declare const webhookEvents: {
|
|
32
|
+
export declare const webhookEvents: {
|
|
58
33
|
id: string;
|
|
59
34
|
type: string;
|
|
60
35
|
data: {
|
|
@@ -68,7 +43,7 @@ declare const webhookEvents: {
|
|
|
68
43
|
status_code: number;
|
|
69
44
|
}[];
|
|
70
45
|
}[];
|
|
71
|
-
declare const spTenantLimits: {
|
|
46
|
+
export declare const spTenantLimits: {
|
|
72
47
|
max_devices: {
|
|
73
48
|
current_value: number;
|
|
74
49
|
name: string;
|
|
@@ -88,7 +63,7 @@ declare const spTenantLimits: {
|
|
|
88
63
|
value: number;
|
|
89
64
|
};
|
|
90
65
|
};
|
|
91
|
-
declare const tenants: {
|
|
66
|
+
export declare const tenants: {
|
|
92
67
|
id: string;
|
|
93
68
|
parent_tenant_id: string;
|
|
94
69
|
name: string;
|
|
@@ -130,7 +105,7 @@ declare const tenants: {
|
|
|
130
105
|
};
|
|
131
106
|
binary_delta: boolean;
|
|
132
107
|
}[];
|
|
133
|
-
declare const adminUserCapabilities: {
|
|
108
|
+
export declare const adminUserCapabilities: {
|
|
134
109
|
canAuditlog: boolean;
|
|
135
110
|
canConfigure: boolean;
|
|
136
111
|
canDeploy: boolean;
|
|
@@ -145,8 +120,8 @@ declare const adminUserCapabilities: {
|
|
|
145
120
|
canUploadReleases: boolean;
|
|
146
121
|
canWriteDevices: boolean;
|
|
147
122
|
};
|
|
148
|
-
declare const userId = "a30a780b-b843-5344-80e3-0fd95a4f6fc3";
|
|
149
|
-
declare const mockApiResponses: {
|
|
123
|
+
export declare const userId = "a30a780b-b843-5344-80e3-0fd95a4f6fc3";
|
|
124
|
+
export declare const mockApiResponses: {
|
|
150
125
|
deployments: {
|
|
151
126
|
byId: {
|
|
152
127
|
d1: {
|
|
@@ -568,7 +543,7 @@ declare const mockApiResponses: {
|
|
|
568
543
|
};
|
|
569
544
|
};
|
|
570
545
|
};
|
|
571
|
-
declare const manifestsList: {
|
|
546
|
+
export declare const manifestsList: {
|
|
572
547
|
name: string;
|
|
573
548
|
modified: string;
|
|
574
549
|
artifact: {
|
|
@@ -595,7 +570,7 @@ declare const manifestsList: {
|
|
|
595
570
|
tags: never[];
|
|
596
571
|
notes: string;
|
|
597
572
|
}[];
|
|
598
|
-
declare const softwareList: ({
|
|
573
|
+
export declare const softwareList: ({
|
|
599
574
|
name: string;
|
|
600
575
|
modified: string;
|
|
601
576
|
kind: "release";
|
|
@@ -612,7 +587,7 @@ declare const softwareList: ({
|
|
|
612
587
|
compatible_types: string[];
|
|
613
588
|
notes: string;
|
|
614
589
|
})[];
|
|
615
|
-
declare const releasesList: {
|
|
590
|
+
export declare const releasesList: {
|
|
616
591
|
artifacts: {
|
|
617
592
|
id: string;
|
|
618
593
|
description: string;
|
|
@@ -638,7 +613,7 @@ declare const releasesList: {
|
|
|
638
613
|
name: string;
|
|
639
614
|
modified: number;
|
|
640
615
|
}[];
|
|
641
|
-
declare const permissionSets: ({
|
|
616
|
+
export declare const permissionSets: ({
|
|
642
617
|
object: string;
|
|
643
618
|
description: string;
|
|
644
619
|
permissions: {
|
|
@@ -665,7 +640,7 @@ declare const permissionSets: ({
|
|
|
665
640
|
};
|
|
666
641
|
}[];
|
|
667
642
|
})[];
|
|
668
|
-
declare const rbacRoles: ({
|
|
643
|
+
export declare const rbacRoles: ({
|
|
669
644
|
name: string;
|
|
670
645
|
description: string;
|
|
671
646
|
permission_sets_with_scope: ({
|
|
@@ -708,7 +683,7 @@ declare const rbacRoles: ({
|
|
|
708
683
|
}[] | undefined;
|
|
709
684
|
permission_sets_with_scope?: undefined;
|
|
710
685
|
})[];
|
|
711
|
-
declare const receivedRoles: {
|
|
686
|
+
export declare const receivedRoles: {
|
|
712
687
|
test: {
|
|
713
688
|
name: string;
|
|
714
689
|
description: string;
|
|
@@ -726,10 +701,9 @@ declare const receivedRoles: {
|
|
|
726
701
|
userManagement: string[];
|
|
727
702
|
};
|
|
728
703
|
isCustom?: boolean;
|
|
729
|
-
permissions?: RolePermission[];
|
|
704
|
+
permissions?: import("@northern.tech/types/types.gen").RolePermission[];
|
|
730
705
|
};
|
|
731
706
|
};
|
|
732
|
-
declare const receivedPermissionSets: {};
|
|
707
|
+
export declare const receivedPermissionSets: {};
|
|
733
708
|
//#endregion
|
|
734
|
-
export { TEST_SESSION_DATETIME, accessTokens, adminUserCapabilities, defaultCreationDate, defaultMacAddress, defaultPassword, manifestsList, menderEnvironment, mockApiResponses, mockDate, pendingEmailChange, permissionSets, rbacRoles, receivedPermissionSets, receivedRoles, releasesList, softwareList, spTenantLimits, tenants, testSsoId, token, undefineds, userId, webhookEvents };
|
|
735
709
|
//# sourceMappingURL=mockData.d.cts.map
|
package/dist/mockData.d.ts
CHANGED
|
@@ -1,44 +1,19 @@
|
|
|
1
|
-
//#region ../types/dist/types.gen.d.ts
|
|
2
|
-
/**
|
|
3
|
-
* Role permission
|
|
4
|
-
*/
|
|
5
|
-
type RolePermission = {
|
|
6
|
-
/**
|
|
7
|
-
* Action
|
|
8
|
-
*/
|
|
9
|
-
action: 'any' | 'http' | 'CREATE_DEPLOYMENT' | 'MANAGE_DEVICE' | 'REMOTE_TERMINAL' | 'VIEW_DEVICE';
|
|
10
|
-
object: RolePermissionObject;
|
|
11
|
-
};
|
|
12
|
-
/**
|
|
13
|
-
* Role permission object
|
|
14
|
-
*/
|
|
15
|
-
type RolePermissionObject = {
|
|
16
|
-
/**
|
|
17
|
-
* Type
|
|
18
|
-
*/
|
|
19
|
-
type: string;
|
|
20
|
-
/**
|
|
21
|
-
* Value
|
|
22
|
-
*/
|
|
23
|
-
value: string;
|
|
24
|
-
};
|
|
25
|
-
//#endregion
|
|
26
1
|
//#region src/mockData.d.ts
|
|
27
|
-
declare const undefineds: RegExp;
|
|
28
|
-
declare const menderEnvironment: {
|
|
2
|
+
export declare const undefineds: RegExp;
|
|
3
|
+
export declare const menderEnvironment: {
|
|
29
4
|
features: {
|
|
30
5
|
hasMultitenancy: boolean;
|
|
31
6
|
};
|
|
32
7
|
version: string;
|
|
33
8
|
};
|
|
34
|
-
declare const TEST_SESSION_DATETIME = "2019-01-13T13:00:00.000Z";
|
|
35
|
-
declare const mockDate: Date;
|
|
36
|
-
declare const defaultPassword = "mysecretpassword!123";
|
|
37
|
-
declare const defaultCreationDate = "2019-01-13T06:25:00.000Z";
|
|
38
|
-
declare const defaultMacAddress = "dc:a6:32:12:ad:bf";
|
|
39
|
-
declare const testSsoId = "sso_id";
|
|
40
|
-
declare const token = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJjZTNkMGY4Yy1hZWRlLTQwMzAtYjM5MS03ZDUwMjBlYjg3M2UiLCJzdWIiOiJhMzBhNzgwYi1iODQzLTUzNDQtODBlMy0wZmQ5NWE0ZjZmYzMiLCJleHAiOjE2MDY4MTUzNjksImlhdCI6MTYwNjIxMDU2OSwibWVuZGVyLnRlbmFudCI6IjVmODVjMTdiY2U2MmI3ZmE3ZjVmNzA0MCIsIm1lbmRlci51c2VyIjp0cnVlLCJpc3MiOiJNZW5kZXIgVXNlcnMiLCJzY3AiOiJtZW5kZXIuKiIsIm1lbmRlci5wbGFuIjoicHJvZmVzc2lvbmFsIiwibmJmIjoxNjA2MjEwNTY5fQ.qVgYdCzLTf8OdK9uUctqqaY_HWkIiwpekuGvuGQAXCEgOv4bRNDlZRN_ZRSbxQoARG3pquhScbQrjBV9tcF4irTUPlTn3yrsXNO17DpcbTVeKRkb88RDtIKiRw3orVZ_GlIb-ckTQ5dS-Nqlyyf3Fmrhca-gwt6m_xv2UrmJK6eYYTMfggdRRWb-4u7mEkBI_pHPMTQrT8kJ2BeX-vHgazH9AoH0k85LHtFZQXD7pXHlDZRnLxJXukncwMGDmF17374gavYAIyDIzcC8sEBMDnVXgpikeA1sauzirqix6mAVs6XmxdQO7aF0wfXO1_PTYUA3Nk1oQfMYNlEI3U9uLRJRZIq2L8fmrrBryhstKd4y0KlBbGAQrx8NtRkgajjd1ljMfPBUEZrb7uSerVjneiO-aIBO76CuH0zdklphIjpGJeogkBhe8pAYNggp1XsZHgpZfl7IE5faKaDkMGnutaea--Czor6bhqUNCuY4tR0cpQJbNwy6LS9o1CFy4Log";
|
|
41
|
-
declare const accessTokens: ({
|
|
9
|
+
export declare const TEST_SESSION_DATETIME = "2019-01-13T13:00:00.000Z";
|
|
10
|
+
export declare const mockDate: Date;
|
|
11
|
+
export declare const defaultPassword = "mysecretpassword!123";
|
|
12
|
+
export declare const defaultCreationDate = "2019-01-13T06:25:00.000Z";
|
|
13
|
+
export declare const defaultMacAddress = "dc:a6:32:12:ad:bf";
|
|
14
|
+
export declare const testSsoId = "sso_id";
|
|
15
|
+
export declare const token = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJjZTNkMGY4Yy1hZWRlLTQwMzAtYjM5MS03ZDUwMjBlYjg3M2UiLCJzdWIiOiJhMzBhNzgwYi1iODQzLTUzNDQtODBlMy0wZmQ5NWE0ZjZmYzMiLCJleHAiOjE2MDY4MTUzNjksImlhdCI6MTYwNjIxMDU2OSwibWVuZGVyLnRlbmFudCI6IjVmODVjMTdiY2U2MmI3ZmE3ZjVmNzA0MCIsIm1lbmRlci51c2VyIjp0cnVlLCJpc3MiOiJNZW5kZXIgVXNlcnMiLCJzY3AiOiJtZW5kZXIuKiIsIm1lbmRlci5wbGFuIjoicHJvZmVzc2lvbmFsIiwibmJmIjoxNjA2MjEwNTY5fQ.qVgYdCzLTf8OdK9uUctqqaY_HWkIiwpekuGvuGQAXCEgOv4bRNDlZRN_ZRSbxQoARG3pquhScbQrjBV9tcF4irTUPlTn3yrsXNO17DpcbTVeKRkb88RDtIKiRw3orVZ_GlIb-ckTQ5dS-Nqlyyf3Fmrhca-gwt6m_xv2UrmJK6eYYTMfggdRRWb-4u7mEkBI_pHPMTQrT8kJ2BeX-vHgazH9AoH0k85LHtFZQXD7pXHlDZRnLxJXukncwMGDmF17374gavYAIyDIzcC8sEBMDnVXgpikeA1sauzirqix6mAVs6XmxdQO7aF0wfXO1_PTYUA3Nk1oQfMYNlEI3U9uLRJRZIq2L8fmrrBryhstKd4y0KlBbGAQrx8NtRkgajjd1ljMfPBUEZrb7uSerVjneiO-aIBO76CuH0zdklphIjpGJeogkBhe8pAYNggp1XsZHgpZfl7IE5faKaDkMGnutaea--Czor6bhqUNCuY4tR0cpQJbNwy6LS9o1CFy4Log";
|
|
16
|
+
export declare const accessTokens: ({
|
|
42
17
|
id: string;
|
|
43
18
|
expiration_date: string;
|
|
44
19
|
name: string;
|
|
@@ -49,12 +24,12 @@ declare const accessTokens: ({
|
|
|
49
24
|
last_used: string;
|
|
50
25
|
name: string;
|
|
51
26
|
})[];
|
|
52
|
-
declare const pendingEmailChange: {
|
|
27
|
+
export declare const pendingEmailChange: {
|
|
53
28
|
new_email: string;
|
|
54
29
|
created_ts: string;
|
|
55
30
|
valid_until: string;
|
|
56
31
|
};
|
|
57
|
-
declare const webhookEvents: {
|
|
32
|
+
export declare const webhookEvents: {
|
|
58
33
|
id: string;
|
|
59
34
|
type: string;
|
|
60
35
|
data: {
|
|
@@ -68,7 +43,7 @@ declare const webhookEvents: {
|
|
|
68
43
|
status_code: number;
|
|
69
44
|
}[];
|
|
70
45
|
}[];
|
|
71
|
-
declare const spTenantLimits: {
|
|
46
|
+
export declare const spTenantLimits: {
|
|
72
47
|
max_devices: {
|
|
73
48
|
current_value: number;
|
|
74
49
|
name: string;
|
|
@@ -88,7 +63,7 @@ declare const spTenantLimits: {
|
|
|
88
63
|
value: number;
|
|
89
64
|
};
|
|
90
65
|
};
|
|
91
|
-
declare const tenants: {
|
|
66
|
+
export declare const tenants: {
|
|
92
67
|
id: string;
|
|
93
68
|
parent_tenant_id: string;
|
|
94
69
|
name: string;
|
|
@@ -130,7 +105,7 @@ declare const tenants: {
|
|
|
130
105
|
};
|
|
131
106
|
binary_delta: boolean;
|
|
132
107
|
}[];
|
|
133
|
-
declare const adminUserCapabilities: {
|
|
108
|
+
export declare const adminUserCapabilities: {
|
|
134
109
|
canAuditlog: boolean;
|
|
135
110
|
canConfigure: boolean;
|
|
136
111
|
canDeploy: boolean;
|
|
@@ -145,8 +120,8 @@ declare const adminUserCapabilities: {
|
|
|
145
120
|
canUploadReleases: boolean;
|
|
146
121
|
canWriteDevices: boolean;
|
|
147
122
|
};
|
|
148
|
-
declare const userId = "a30a780b-b843-5344-80e3-0fd95a4f6fc3";
|
|
149
|
-
declare const mockApiResponses: {
|
|
123
|
+
export declare const userId = "a30a780b-b843-5344-80e3-0fd95a4f6fc3";
|
|
124
|
+
export declare const mockApiResponses: {
|
|
150
125
|
deployments: {
|
|
151
126
|
byId: {
|
|
152
127
|
d1: {
|
|
@@ -568,7 +543,7 @@ declare const mockApiResponses: {
|
|
|
568
543
|
};
|
|
569
544
|
};
|
|
570
545
|
};
|
|
571
|
-
declare const manifestsList: {
|
|
546
|
+
export declare const manifestsList: {
|
|
572
547
|
name: string;
|
|
573
548
|
modified: string;
|
|
574
549
|
artifact: {
|
|
@@ -595,7 +570,7 @@ declare const manifestsList: {
|
|
|
595
570
|
tags: never[];
|
|
596
571
|
notes: string;
|
|
597
572
|
}[];
|
|
598
|
-
declare const softwareList: ({
|
|
573
|
+
export declare const softwareList: ({
|
|
599
574
|
name: string;
|
|
600
575
|
modified: string;
|
|
601
576
|
kind: "release";
|
|
@@ -612,7 +587,7 @@ declare const softwareList: ({
|
|
|
612
587
|
compatible_types: string[];
|
|
613
588
|
notes: string;
|
|
614
589
|
})[];
|
|
615
|
-
declare const releasesList: {
|
|
590
|
+
export declare const releasesList: {
|
|
616
591
|
artifacts: {
|
|
617
592
|
id: string;
|
|
618
593
|
description: string;
|
|
@@ -638,7 +613,7 @@ declare const releasesList: {
|
|
|
638
613
|
name: string;
|
|
639
614
|
modified: number;
|
|
640
615
|
}[];
|
|
641
|
-
declare const permissionSets: ({
|
|
616
|
+
export declare const permissionSets: ({
|
|
642
617
|
object: string;
|
|
643
618
|
description: string;
|
|
644
619
|
permissions: {
|
|
@@ -665,7 +640,7 @@ declare const permissionSets: ({
|
|
|
665
640
|
};
|
|
666
641
|
}[];
|
|
667
642
|
})[];
|
|
668
|
-
declare const rbacRoles: ({
|
|
643
|
+
export declare const rbacRoles: ({
|
|
669
644
|
name: string;
|
|
670
645
|
description: string;
|
|
671
646
|
permission_sets_with_scope: ({
|
|
@@ -708,7 +683,7 @@ declare const rbacRoles: ({
|
|
|
708
683
|
}[] | undefined;
|
|
709
684
|
permission_sets_with_scope?: undefined;
|
|
710
685
|
})[];
|
|
711
|
-
declare const receivedRoles: {
|
|
686
|
+
export declare const receivedRoles: {
|
|
712
687
|
test: {
|
|
713
688
|
name: string;
|
|
714
689
|
description: string;
|
|
@@ -726,10 +701,9 @@ declare const receivedRoles: {
|
|
|
726
701
|
userManagement: string[];
|
|
727
702
|
};
|
|
728
703
|
isCustom?: boolean;
|
|
729
|
-
permissions?: RolePermission[];
|
|
704
|
+
permissions?: import("@northern.tech/types/types.gen").RolePermission[];
|
|
730
705
|
};
|
|
731
706
|
};
|
|
732
|
-
declare const receivedPermissionSets: {};
|
|
707
|
+
export declare const receivedPermissionSets: {};
|
|
733
708
|
//#endregion
|
|
734
|
-
export { TEST_SESSION_DATETIME, accessTokens, adminUserCapabilities, defaultCreationDate, defaultMacAddress, defaultPassword, manifestsList, menderEnvironment, mockApiResponses, mockDate, pendingEmailChange, permissionSets, rbacRoles, receivedPermissionSets, receivedRoles, releasesList, softwareList, spTenantLimits, tenants, testSsoId, token, undefineds, userId, webhookEvents };
|
|
735
709
|
//# sourceMappingURL=mockData.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_mockData = require("../mockData.cjs");
|
|
3
|
-
const require_validation = require("../validation-
|
|
3
|
+
const require_validation = require("../validation-m8rbcHeR.cjs");
|
|
4
4
|
let _northern_tech_utils_constants = require("@northern.tech/utils/constants");
|
|
5
5
|
let msw = require("msw");
|
|
6
6
|
//#region src/requestHandlers/deploymentHandlers.ts
|
|
@@ -112,11 +112,11 @@ const deploymentHandlers = [
|
|
|
112
112
|
if (require_mockData.mockApiResponses.deployments.byId[deploymentId] && require_mockData.mockApiResponses.deployments.byId[deploymentId].devices[deviceId]) return msw.HttpResponse.text("test");
|
|
113
113
|
return new msw.HttpResponse(null, { status: 523 });
|
|
114
114
|
}),
|
|
115
|
-
msw.http.post(`${_northern_tech_utils_constants.deploymentsApiUrl}/deployments`,
|
|
115
|
+
msw.http.post(`${_northern_tech_utils_constants.deploymentsApiUrl}/deployments`, async ({ request }) => {
|
|
116
116
|
const body = await request.json();
|
|
117
117
|
if (!Object.keys(body).length) return new msw.HttpResponse(JSON.stringify({}), { status: 524 });
|
|
118
118
|
return new msw.HttpResponse(JSON.stringify({}), { headers: { location: `find/me/here/${createdDeployment.id}` } });
|
|
119
|
-
})
|
|
119
|
+
}),
|
|
120
120
|
msw.http.post(`${_northern_tech_utils_constants.deploymentsApiUrlV2}/deployments`, require_validation.validated(async ({ request }) => {
|
|
121
121
|
const { filter_id, devices = [], uniform_phases = [] } = await request.json();
|
|
122
122
|
if (!filter_id || !!devices.length || !!uniform_phases.length) return new msw.HttpResponse(JSON.stringify({}), { status: 525 });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploymentHandlers.cjs","names":["limitDefault","http","deploymentsApiUrlV2","HttpResponse","mockApiResponses","headerNames","deploymentsApiUrl","validated"],"sources":["../../src/requestHandlers/deploymentHandlers.ts"],"sourcesContent":["// Copyright 2020 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n//@ts-nocheck\nimport { deploymentsApiUrl, deploymentsApiUrlV2, headerNames, limitDefault } from '@northern.tech/utils/constants';\nimport { HttpResponse, http } from 'msw';\n\nimport { mockApiResponses } from '../mockData';\nimport { validated } from './validation';\n\nconst createdDeployment = {\n id: 'created-123',\n name: 'test deployment',\n artifact_name: 'r1',\n artifacts: ['123'],\n created: '2019-01-01T12:30:00.000Z',\n device_count: 1,\n devices: {\n a1: {\n attributes: {},\n id: 'a1',\n image: { size: 123 },\n status: 'installing'\n }\n },\n filter: undefined,\n group: undefined,\n statistics: {\n status: {\n downloading: 0,\n decommissioned: 0,\n failure: 0,\n installing: 1,\n noartifact: 0,\n pending: 0,\n rebooting: 0,\n success: 0,\n 'already-installed': 0\n },\n total_size: 1234\n }\n};\n\nconst defaultDeploymentConfig = {\n delta: {\n enabled: true,\n binary_delta: {\n xdelta_args: {\n disable_checksum: false,\n disable_external_decompression: false,\n compression_level: 6,\n source_window_size: 0,\n input_window_size: 0,\n compression_duplicates_window: 0,\n instruction_buffer_size: 0\n },\n timeout: 0\n },\n binary_delta_limits: {\n xdelta_args_limits: {\n source_window_size: limitDefault,\n input_window_size: limitDefault,\n compression_duplicates_window: limitDefault,\n instruction_buffer_size: limitDefault\n },\n timeout: { min: 60, max: 3600, default: 60 },\n jobs_in_parallel: limitDefault,\n queue_length: limitDefault\n }\n }\n};\n\nexport const deploymentHandlers = [\n http.get(\n `${deploymentsApiUrlV2}/deployments`,\n () =>\n new HttpResponse(JSON.stringify(Object.values(mockApiResponses.deployments.byId).reverse()), {\n headers: { [headerNames.total]: Object.keys(mockApiResponses.deployments.byId).length }\n })\n ),\n http.get(`${deploymentsApiUrl}/deployments/releases`, ({ request }) => {\n const { searchParams } = new URL(request.url);\n const releaseName = searchParams.get('name');\n const release = mockApiResponses.releases.byId[releaseName] || {};\n if (releaseName) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { device_types_compatible, ...remainder } = release;\n return Object.keys(remainder).length || releaseName === 'createdRelease' ? HttpResponse.json([remainder]) : new HttpResponse(null, { status: 520 });\n }\n const releases = Object.values(mockApiResponses.releases.byId).map(stateRelease => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { device_types_compatible, ...remainder } = stateRelease;\n return remainder;\n });\n return HttpResponse.json(releases);\n }),\n http.get(`${deploymentsApiUrl}/deployments/:deploymentId`, ({ params: { deploymentId } }) => {\n if (deploymentId === createdDeployment.id) {\n return HttpResponse.json(createdDeployment);\n } else if (deploymentId === 'config1') {\n return HttpResponse.json({\n ...createdDeployment,\n id: 'config1',\n created: '2019-01-01T09:25:01.000Z',\n finished: '2019-01-01T09:25:03.000Z',\n status: 'finished'\n });\n }\n return HttpResponse.json(mockApiResponses.deployments.byId[deploymentId]);\n }),\n http.get(`${deploymentsApiUrl}/deployments/:deploymentId/devices`, ({ params: { deploymentId } }) => {\n if (deploymentId === createdDeployment.id) {\n return HttpResponse.json(Object.values(createdDeployment.devices));\n } else if (mockApiResponses.deployments.byId[deploymentId]) {\n return HttpResponse.json(Object.values(mockApiResponses.deployments.byId[deploymentId].devices));\n }\n return new HttpResponse(null, { status: 521 });\n }),\n http.post(\n `${deploymentsApiUrl}/deployments/statistics/list`,\n validated(async ({ request }) => {\n const { deployment_ids = [] } = await request.json();\n if (deployment_ids.includes(createdDeployment.id)) {\n return HttpResponse.json([]);\n } else if (deployment_ids.every(id => mockApiResponses.deployments.byId[id])) {\n const stats = deployment_ids.map(id => ({ id, stats: mockApiResponses.deployments.byId[id].statistics.status }));\n return HttpResponse.json(stats);\n }\n return new HttpResponse(null, { status: 522 });\n })\n ),\n http.get(`${deploymentsApiUrl}/deployments/:deploymentId/devices/:deviceId/log`, ({ params: { deploymentId, deviceId } }) => {\n if (mockApiResponses.deployments.byId[deploymentId] && mockApiResponses.deployments.byId[deploymentId].devices[deviceId]) {\n return HttpResponse.text('test');\n }\n return new HttpResponse(null, { status: 523 });\n }),\n http.post(\n `${deploymentsApiUrl}/deployments`,\n validated(async ({ request }) => {\n const body = await request.json();\n if (!Object.keys(body).length) {\n return new HttpResponse(JSON.stringify({}), { status: 524 });\n }\n return new HttpResponse(JSON.stringify({}), { headers: { location: `find/me/here/${createdDeployment.id}` } });\n })\n ),\n http.post(\n `${deploymentsApiUrlV2}/deployments`,\n validated(async ({ request }) => {\n const { filter_id, devices = [], uniform_phases = [] } = await request.json();\n if (!filter_id || !!devices.length || !!uniform_phases.length) {\n return new HttpResponse(JSON.stringify({}), { status: 525 });\n }\n return new HttpResponse(JSON.stringify({}), { headers: { location: `find/me/here/${createdDeployment.id}` } });\n })\n ),\n http.post(\n `${deploymentsApiUrl}/deployments/group/:deploymentGroup`,\n validated(async ({ params: { deploymentGroup }, request }) => {\n const { filter_id, devices = [] } = await request.json();\n if (filter_id || !!devices.length || deploymentGroup !== Object.keys(mockApiResponses.devices.groups.byId)[0]) {\n return new HttpResponse(JSON.stringify({}), { status: 526 });\n }\n return new HttpResponse(JSON.stringify({}), { headers: { location: `find/me/here/${createdDeployment.id}` } });\n })\n ),\n http.patch(`${deploymentsApiUrl}/deployments/:deploymentId`, async ({ params: { deploymentId }, request }) => {\n const { update_control_map } = await request.json();\n if (deploymentId === createdDeployment.id && Object.keys(update_control_map).length) {\n return new HttpResponse(null, { status: 204 });\n }\n return new HttpResponse(null, { status: 581 });\n }),\n http.put(\n `${deploymentsApiUrl}/deployments/:deploymentId/status`,\n validated(async ({ params: { deploymentId }, request }) => {\n const { status } = await request.json();\n return new HttpResponse(JSON.stringify({}), {\n status:\n status === 'aborted' &&\n [...mockApiResponses.deployments.byStatus.pending.deploymentIds, ...mockApiResponses.deployments.byStatus.inprogress.deploymentIds].includes(\n deploymentId\n )\n ? 200\n : 528\n });\n })\n ),\n http.get(`${deploymentsApiUrl}/deployments/:deploymentId/devices/list`, ({ params: { deploymentId } }) => {\n if (deploymentId === createdDeployment.id) {\n return new HttpResponse(JSON.stringify(Object.values(createdDeployment.devices)), {\n headers: { [headerNames.total]: Object.keys(createdDeployment.devices).length }\n });\n } else if (mockApiResponses.deployments.byId[deploymentId]) {\n return new HttpResponse(JSON.stringify(Object.values(mockApiResponses.deployments.byId[deploymentId].devices)), {\n headers: { [headerNames.total]: Object.keys(mockApiResponses.deployments.byId[deploymentId].devices).length }\n });\n }\n return new HttpResponse(null, { status: 529 });\n }),\n http.get(`${deploymentsApiUrl}/config`, () => HttpResponse.json(defaultDeploymentConfig)),\n http.put(\n `${deploymentsApiUrl}/config/binary_delta`,\n validated(async ({ request }) => {\n const { xdelta_args = {} } = await request.json();\n if (xdelta_args.source_window_size === 55) {\n return new HttpResponse(null, { status: 530 });\n }\n return new HttpResponse(null, { status: 200 });\n })\n ),\n http.get(`${deploymentsApiUrl}/deployments/devices/:deviceId`, ({ params: { deviceId } }) => {\n if (deviceId === mockApiResponses.devices.byId.a1.id) {\n return new HttpResponse(\n JSON.stringify([\n {\n id: createdDeployment.id + 'something',\n deployment: { ...createdDeployment, id: mockApiResponses.deployments.byId.d1.id, status: 'inprogress' },\n device: {\n created: '2019-01-01T12:35:00.000Z',\n finished: '2019-01-01T12:40:00.000Z',\n status: 'noartifact',\n id: 'something',\n image: { ...mockApiResponses.releases.byId.r1 }\n },\n log: true,\n attempts: 1,\n delta_job_id: ''\n }\n ]),\n {\n headers: { [headerNames.total]: 34 }\n }\n );\n }\n return new HttpResponse(null, { status: 529 });\n }),\n http.delete(`${deploymentsApiUrl}/deployments/devices/:deviceId/history`, () => new HttpResponse(null, { status: 204 })),\n http.get(`/api/management/v1alpha1/deployments/deployments/:deploymentId/devices/:deviceId/log/explain`, ({ params: { deploymentId, deviceId } }) => {\n if (deploymentId === mockApiResponses.deployments.byId.d1.id && deviceId === mockApiResponses.devices.byId.a1.id) {\n const mockAnalysis = `## Summary\nThe deployment failed during the artifact download phase. The device was unable to establish a secure connection to the artifact repository.\n\n## Key Issues\n1. **Network connectivity issues** - Connection timeout occurred\n2. **SSL/TLS certificate verification failed** - Invalid certificate chain\n3. **Artifact verification failed** - Checksum mismatch detected\n\n## Recommendations\n- Check network connectivity between device and artifact repository\n- Verify SSL certificates are properly configured\n- Ensure artifact integrity before deployment`;\n return HttpResponse.text(mockAnalysis);\n }\n if (deploymentId === 'rate-limited-deployment') {\n return new HttpResponse(JSON.stringify({ error: 'Rate limit exceeded' }), { status: 429 });\n }\n if (deploymentId === 'error-deployment') {\n return new HttpResponse(JSON.stringify({ error: 'Analysis failed' }), { status: 500 });\n }\n return new HttpResponse(null, { status: 404 });\n })\n];\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deploymentHandlers.cjs","names":["limitDefault","http","deploymentsApiUrlV2","HttpResponse","mockApiResponses","headerNames","deploymentsApiUrl","validated"],"sources":["../../src/requestHandlers/deploymentHandlers.ts"],"sourcesContent":["// Copyright 2020 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n//@ts-nocheck\nimport { deploymentsApiUrl, deploymentsApiUrlV2, headerNames, limitDefault } from '@northern.tech/utils/constants';\nimport { HttpResponse, http } from 'msw';\n\nimport { mockApiResponses } from '../mockData';\nimport { validated } from './validation';\n\nconst createdDeployment = {\n id: 'created-123',\n name: 'test deployment',\n artifact_name: 'r1',\n artifacts: ['123'],\n created: '2019-01-01T12:30:00.000Z',\n device_count: 1,\n devices: {\n a1: {\n attributes: {},\n id: 'a1',\n image: { size: 123 },\n status: 'installing'\n }\n },\n filter: undefined,\n group: undefined,\n statistics: {\n status: {\n downloading: 0,\n decommissioned: 0,\n failure: 0,\n installing: 1,\n noartifact: 0,\n pending: 0,\n rebooting: 0,\n success: 0,\n 'already-installed': 0\n },\n total_size: 1234\n }\n};\n\nconst defaultDeploymentConfig = {\n delta: {\n enabled: true,\n binary_delta: {\n xdelta_args: {\n disable_checksum: false,\n disable_external_decompression: false,\n compression_level: 6,\n source_window_size: 0,\n input_window_size: 0,\n compression_duplicates_window: 0,\n instruction_buffer_size: 0\n },\n timeout: 0\n },\n binary_delta_limits: {\n xdelta_args_limits: {\n source_window_size: limitDefault,\n input_window_size: limitDefault,\n compression_duplicates_window: limitDefault,\n instruction_buffer_size: limitDefault\n },\n timeout: { min: 60, max: 3600, default: 60 },\n jobs_in_parallel: limitDefault,\n queue_length: limitDefault\n }\n }\n};\n\nexport const deploymentHandlers = [\n http.get(\n `${deploymentsApiUrlV2}/deployments`,\n () =>\n new HttpResponse(JSON.stringify(Object.values(mockApiResponses.deployments.byId).reverse()), {\n headers: { [headerNames.total]: Object.keys(mockApiResponses.deployments.byId).length }\n })\n ),\n http.get(`${deploymentsApiUrl}/deployments/releases`, ({ request }) => {\n const { searchParams } = new URL(request.url);\n const releaseName = searchParams.get('name');\n const release = mockApiResponses.releases.byId[releaseName] || {};\n if (releaseName) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { device_types_compatible, ...remainder } = release;\n return Object.keys(remainder).length || releaseName === 'createdRelease' ? HttpResponse.json([remainder]) : new HttpResponse(null, { status: 520 });\n }\n const releases = Object.values(mockApiResponses.releases.byId).map(stateRelease => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { device_types_compatible, ...remainder } = stateRelease;\n return remainder;\n });\n return HttpResponse.json(releases);\n }),\n http.get(`${deploymentsApiUrl}/deployments/:deploymentId`, ({ params: { deploymentId } }) => {\n if (deploymentId === createdDeployment.id) {\n return HttpResponse.json(createdDeployment);\n } else if (deploymentId === 'config1') {\n return HttpResponse.json({\n ...createdDeployment,\n id: 'config1',\n created: '2019-01-01T09:25:01.000Z',\n finished: '2019-01-01T09:25:03.000Z',\n status: 'finished'\n });\n }\n return HttpResponse.json(mockApiResponses.deployments.byId[deploymentId]);\n }),\n http.get(`${deploymentsApiUrl}/deployments/:deploymentId/devices`, ({ params: { deploymentId } }) => {\n if (deploymentId === createdDeployment.id) {\n return HttpResponse.json(Object.values(createdDeployment.devices));\n } else if (mockApiResponses.deployments.byId[deploymentId]) {\n return HttpResponse.json(Object.values(mockApiResponses.deployments.byId[deploymentId].devices));\n }\n return new HttpResponse(null, { status: 521 });\n }),\n http.post(\n `${deploymentsApiUrl}/deployments/statistics/list`,\n validated(async ({ request }) => {\n const { deployment_ids = [] } = await request.json();\n if (deployment_ids.includes(createdDeployment.id)) {\n return HttpResponse.json([]);\n } else if (deployment_ids.every(id => mockApiResponses.deployments.byId[id])) {\n const stats = deployment_ids.map(id => ({ id, stats: mockApiResponses.deployments.byId[id].statistics.status }));\n return HttpResponse.json(stats);\n }\n return new HttpResponse(null, { status: 522 });\n })\n ),\n http.get(`${deploymentsApiUrl}/deployments/:deploymentId/devices/:deviceId/log`, ({ params: { deploymentId, deviceId } }) => {\n if (mockApiResponses.deployments.byId[deploymentId] && mockApiResponses.deployments.byId[deploymentId].devices[deviceId]) {\n return HttpResponse.text('test');\n }\n return new HttpResponse(null, { status: 523 });\n }),\n // TODO: restore validation once ref expansion is handled in combination with ajv\n http.post(`${deploymentsApiUrl}/deployments`, async ({ request }) => {\n const body = await request.json();\n if (!Object.keys(body).length) {\n return new HttpResponse(JSON.stringify({}), { status: 524 });\n }\n return new HttpResponse(JSON.stringify({}), { headers: { location: `find/me/here/${createdDeployment.id}` } });\n }),\n http.post(\n `${deploymentsApiUrlV2}/deployments`,\n validated(async ({ request }) => {\n const { filter_id, devices = [], uniform_phases = [] } = await request.json();\n if (!filter_id || !!devices.length || !!uniform_phases.length) {\n return new HttpResponse(JSON.stringify({}), { status: 525 });\n }\n return new HttpResponse(JSON.stringify({}), { headers: { location: `find/me/here/${createdDeployment.id}` } });\n })\n ),\n http.post(\n `${deploymentsApiUrl}/deployments/group/:deploymentGroup`,\n validated(async ({ params: { deploymentGroup }, request }) => {\n const { filter_id, devices = [] } = await request.json();\n if (filter_id || !!devices.length || deploymentGroup !== Object.keys(mockApiResponses.devices.groups.byId)[0]) {\n return new HttpResponse(JSON.stringify({}), { status: 526 });\n }\n return new HttpResponse(JSON.stringify({}), { headers: { location: `find/me/here/${createdDeployment.id}` } });\n })\n ),\n http.patch(`${deploymentsApiUrl}/deployments/:deploymentId`, async ({ params: { deploymentId }, request }) => {\n const { update_control_map } = await request.json();\n if (deploymentId === createdDeployment.id && Object.keys(update_control_map).length) {\n return new HttpResponse(null, { status: 204 });\n }\n return new HttpResponse(null, { status: 581 });\n }),\n http.put(\n `${deploymentsApiUrl}/deployments/:deploymentId/status`,\n validated(async ({ params: { deploymentId }, request }) => {\n const { status } = await request.json();\n return new HttpResponse(JSON.stringify({}), {\n status:\n status === 'aborted' &&\n [...mockApiResponses.deployments.byStatus.pending.deploymentIds, ...mockApiResponses.deployments.byStatus.inprogress.deploymentIds].includes(\n deploymentId\n )\n ? 200\n : 528\n });\n })\n ),\n http.get(`${deploymentsApiUrl}/deployments/:deploymentId/devices/list`, ({ params: { deploymentId } }) => {\n if (deploymentId === createdDeployment.id) {\n return new HttpResponse(JSON.stringify(Object.values(createdDeployment.devices)), {\n headers: { [headerNames.total]: Object.keys(createdDeployment.devices).length }\n });\n } else if (mockApiResponses.deployments.byId[deploymentId]) {\n return new HttpResponse(JSON.stringify(Object.values(mockApiResponses.deployments.byId[deploymentId].devices)), {\n headers: { [headerNames.total]: Object.keys(mockApiResponses.deployments.byId[deploymentId].devices).length }\n });\n }\n return new HttpResponse(null, { status: 529 });\n }),\n http.get(`${deploymentsApiUrl}/config`, () => HttpResponse.json(defaultDeploymentConfig)),\n http.put(\n `${deploymentsApiUrl}/config/binary_delta`,\n validated(async ({ request }) => {\n const { xdelta_args = {} } = await request.json();\n if (xdelta_args.source_window_size === 55) {\n return new HttpResponse(null, { status: 530 });\n }\n return new HttpResponse(null, { status: 200 });\n })\n ),\n http.get(`${deploymentsApiUrl}/deployments/devices/:deviceId`, ({ params: { deviceId } }) => {\n if (deviceId === mockApiResponses.devices.byId.a1.id) {\n return new HttpResponse(\n JSON.stringify([\n {\n id: createdDeployment.id + 'something',\n deployment: { ...createdDeployment, id: mockApiResponses.deployments.byId.d1.id, status: 'inprogress' },\n device: {\n created: '2019-01-01T12:35:00.000Z',\n finished: '2019-01-01T12:40:00.000Z',\n status: 'noartifact',\n id: 'something',\n image: { ...mockApiResponses.releases.byId.r1 }\n },\n log: true,\n attempts: 1,\n delta_job_id: ''\n }\n ]),\n {\n headers: { [headerNames.total]: 34 }\n }\n );\n }\n return new HttpResponse(null, { status: 529 });\n }),\n http.delete(`${deploymentsApiUrl}/deployments/devices/:deviceId/history`, () => new HttpResponse(null, { status: 204 })),\n http.get(`/api/management/v1alpha1/deployments/deployments/:deploymentId/devices/:deviceId/log/explain`, ({ params: { deploymentId, deviceId } }) => {\n if (deploymentId === mockApiResponses.deployments.byId.d1.id && deviceId === mockApiResponses.devices.byId.a1.id) {\n const mockAnalysis = `## Summary\nThe deployment failed during the artifact download phase. The device was unable to establish a secure connection to the artifact repository.\n\n## Key Issues\n1. **Network connectivity issues** - Connection timeout occurred\n2. **SSL/TLS certificate verification failed** - Invalid certificate chain\n3. **Artifact verification failed** - Checksum mismatch detected\n\n## Recommendations\n- Check network connectivity between device and artifact repository\n- Verify SSL certificates are properly configured\n- Ensure artifact integrity before deployment`;\n return HttpResponse.text(mockAnalysis);\n }\n if (deploymentId === 'rate-limited-deployment') {\n return new HttpResponse(JSON.stringify({ error: 'Rate limit exceeded' }), { status: 429 });\n }\n if (deploymentId === 'error-deployment') {\n return new HttpResponse(JSON.stringify({ error: 'Analysis failed' }), { status: 500 });\n }\n return new HttpResponse(null, { status: 404 });\n })\n];\n"],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
//#region src/requestHandlers/deploymentHandlers.d.ts
|
|
2
|
-
declare const deploymentHandlers: import("msw").HttpHandler[];
|
|
2
|
+
export declare const deploymentHandlers: import("msw").HttpHandler[];
|
|
3
3
|
//#endregion
|
|
4
|
-
export { deploymentHandlers };
|
|
5
4
|
//# sourceMappingURL=deploymentHandlers.d.cts.map
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
//#region src/requestHandlers/deploymentHandlers.d.ts
|
|
2
|
-
declare const deploymentHandlers: import("msw").HttpHandler[];
|
|
2
|
+
export declare const deploymentHandlers: import("msw").HttpHandler[];
|
|
3
3
|
//#endregion
|
|
4
|
-
export { deploymentHandlers };
|
|
5
4
|
//# sourceMappingURL=deploymentHandlers.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { mockApiResponses } from "../mockData.js";
|
|
2
|
-
import { n as validated } from "../validation-
|
|
2
|
+
import { n as validated } from "../validation-DHpIYTTi.js";
|
|
3
3
|
import { deploymentsApiUrl, deploymentsApiUrlV2, headerNames, limitDefault } from "@northern.tech/utils/constants";
|
|
4
4
|
import { HttpResponse, http } from "msw";
|
|
5
5
|
//#region src/requestHandlers/deploymentHandlers.ts
|
|
@@ -111,11 +111,11 @@ const deploymentHandlers = [
|
|
|
111
111
|
if (mockApiResponses.deployments.byId[deploymentId] && mockApiResponses.deployments.byId[deploymentId].devices[deviceId]) return HttpResponse.text("test");
|
|
112
112
|
return new HttpResponse(null, { status: 523 });
|
|
113
113
|
}),
|
|
114
|
-
http.post(`${deploymentsApiUrl}/deployments`,
|
|
114
|
+
http.post(`${deploymentsApiUrl}/deployments`, async ({ request }) => {
|
|
115
115
|
const body = await request.json();
|
|
116
116
|
if (!Object.keys(body).length) return new HttpResponse(JSON.stringify({}), { status: 524 });
|
|
117
117
|
return new HttpResponse(JSON.stringify({}), { headers: { location: `find/me/here/${createdDeployment.id}` } });
|
|
118
|
-
})
|
|
118
|
+
}),
|
|
119
119
|
http.post(`${deploymentsApiUrlV2}/deployments`, validated(async ({ request }) => {
|
|
120
120
|
const { filter_id, devices = [], uniform_phases = [] } = await request.json();
|
|
121
121
|
if (!filter_id || !!devices.length || !!uniform_phases.length) return new HttpResponse(JSON.stringify({}), { status: 525 });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploymentHandlers.js","names":[],"sources":["../../src/requestHandlers/deploymentHandlers.ts"],"sourcesContent":["// Copyright 2020 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n//@ts-nocheck\nimport { deploymentsApiUrl, deploymentsApiUrlV2, headerNames, limitDefault } from '@northern.tech/utils/constants';\nimport { HttpResponse, http } from 'msw';\n\nimport { mockApiResponses } from '../mockData';\nimport { validated } from './validation';\n\nconst createdDeployment = {\n id: 'created-123',\n name: 'test deployment',\n artifact_name: 'r1',\n artifacts: ['123'],\n created: '2019-01-01T12:30:00.000Z',\n device_count: 1,\n devices: {\n a1: {\n attributes: {},\n id: 'a1',\n image: { size: 123 },\n status: 'installing'\n }\n },\n filter: undefined,\n group: undefined,\n statistics: {\n status: {\n downloading: 0,\n decommissioned: 0,\n failure: 0,\n installing: 1,\n noartifact: 0,\n pending: 0,\n rebooting: 0,\n success: 0,\n 'already-installed': 0\n },\n total_size: 1234\n }\n};\n\nconst defaultDeploymentConfig = {\n delta: {\n enabled: true,\n binary_delta: {\n xdelta_args: {\n disable_checksum: false,\n disable_external_decompression: false,\n compression_level: 6,\n source_window_size: 0,\n input_window_size: 0,\n compression_duplicates_window: 0,\n instruction_buffer_size: 0\n },\n timeout: 0\n },\n binary_delta_limits: {\n xdelta_args_limits: {\n source_window_size: limitDefault,\n input_window_size: limitDefault,\n compression_duplicates_window: limitDefault,\n instruction_buffer_size: limitDefault\n },\n timeout: { min: 60, max: 3600, default: 60 },\n jobs_in_parallel: limitDefault,\n queue_length: limitDefault\n }\n }\n};\n\nexport const deploymentHandlers = [\n http.get(\n `${deploymentsApiUrlV2}/deployments`,\n () =>\n new HttpResponse(JSON.stringify(Object.values(mockApiResponses.deployments.byId).reverse()), {\n headers: { [headerNames.total]: Object.keys(mockApiResponses.deployments.byId).length }\n })\n ),\n http.get(`${deploymentsApiUrl}/deployments/releases`, ({ request }) => {\n const { searchParams } = new URL(request.url);\n const releaseName = searchParams.get('name');\n const release = mockApiResponses.releases.byId[releaseName] || {};\n if (releaseName) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { device_types_compatible, ...remainder } = release;\n return Object.keys(remainder).length || releaseName === 'createdRelease' ? HttpResponse.json([remainder]) : new HttpResponse(null, { status: 520 });\n }\n const releases = Object.values(mockApiResponses.releases.byId).map(stateRelease => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { device_types_compatible, ...remainder } = stateRelease;\n return remainder;\n });\n return HttpResponse.json(releases);\n }),\n http.get(`${deploymentsApiUrl}/deployments/:deploymentId`, ({ params: { deploymentId } }) => {\n if (deploymentId === createdDeployment.id) {\n return HttpResponse.json(createdDeployment);\n } else if (deploymentId === 'config1') {\n return HttpResponse.json({\n ...createdDeployment,\n id: 'config1',\n created: '2019-01-01T09:25:01.000Z',\n finished: '2019-01-01T09:25:03.000Z',\n status: 'finished'\n });\n }\n return HttpResponse.json(mockApiResponses.deployments.byId[deploymentId]);\n }),\n http.get(`${deploymentsApiUrl}/deployments/:deploymentId/devices`, ({ params: { deploymentId } }) => {\n if (deploymentId === createdDeployment.id) {\n return HttpResponse.json(Object.values(createdDeployment.devices));\n } else if (mockApiResponses.deployments.byId[deploymentId]) {\n return HttpResponse.json(Object.values(mockApiResponses.deployments.byId[deploymentId].devices));\n }\n return new HttpResponse(null, { status: 521 });\n }),\n http.post(\n `${deploymentsApiUrl}/deployments/statistics/list`,\n validated(async ({ request }) => {\n const { deployment_ids = [] } = await request.json();\n if (deployment_ids.includes(createdDeployment.id)) {\n return HttpResponse.json([]);\n } else if (deployment_ids.every(id => mockApiResponses.deployments.byId[id])) {\n const stats = deployment_ids.map(id => ({ id, stats: mockApiResponses.deployments.byId[id].statistics.status }));\n return HttpResponse.json(stats);\n }\n return new HttpResponse(null, { status: 522 });\n })\n ),\n http.get(`${deploymentsApiUrl}/deployments/:deploymentId/devices/:deviceId/log`, ({ params: { deploymentId, deviceId } }) => {\n if (mockApiResponses.deployments.byId[deploymentId] && mockApiResponses.deployments.byId[deploymentId].devices[deviceId]) {\n return HttpResponse.text('test');\n }\n return new HttpResponse(null, { status: 523 });\n }),\n http.post(\n `${deploymentsApiUrl}/deployments`,\n validated(async ({ request }) => {\n const body = await request.json();\n if (!Object.keys(body).length) {\n return new HttpResponse(JSON.stringify({}), { status: 524 });\n }\n return new HttpResponse(JSON.stringify({}), { headers: { location: `find/me/here/${createdDeployment.id}` } });\n })\n ),\n http.post(\n `${deploymentsApiUrlV2}/deployments`,\n validated(async ({ request }) => {\n const { filter_id, devices = [], uniform_phases = [] } = await request.json();\n if (!filter_id || !!devices.length || !!uniform_phases.length) {\n return new HttpResponse(JSON.stringify({}), { status: 525 });\n }\n return new HttpResponse(JSON.stringify({}), { headers: { location: `find/me/here/${createdDeployment.id}` } });\n })\n ),\n http.post(\n `${deploymentsApiUrl}/deployments/group/:deploymentGroup`,\n validated(async ({ params: { deploymentGroup }, request }) => {\n const { filter_id, devices = [] } = await request.json();\n if (filter_id || !!devices.length || deploymentGroup !== Object.keys(mockApiResponses.devices.groups.byId)[0]) {\n return new HttpResponse(JSON.stringify({}), { status: 526 });\n }\n return new HttpResponse(JSON.stringify({}), { headers: { location: `find/me/here/${createdDeployment.id}` } });\n })\n ),\n http.patch(`${deploymentsApiUrl}/deployments/:deploymentId`, async ({ params: { deploymentId }, request }) => {\n const { update_control_map } = await request.json();\n if (deploymentId === createdDeployment.id && Object.keys(update_control_map).length) {\n return new HttpResponse(null, { status: 204 });\n }\n return new HttpResponse(null, { status: 581 });\n }),\n http.put(\n `${deploymentsApiUrl}/deployments/:deploymentId/status`,\n validated(async ({ params: { deploymentId }, request }) => {\n const { status } = await request.json();\n return new HttpResponse(JSON.stringify({}), {\n status:\n status === 'aborted' &&\n [...mockApiResponses.deployments.byStatus.pending.deploymentIds, ...mockApiResponses.deployments.byStatus.inprogress.deploymentIds].includes(\n deploymentId\n )\n ? 200\n : 528\n });\n })\n ),\n http.get(`${deploymentsApiUrl}/deployments/:deploymentId/devices/list`, ({ params: { deploymentId } }) => {\n if (deploymentId === createdDeployment.id) {\n return new HttpResponse(JSON.stringify(Object.values(createdDeployment.devices)), {\n headers: { [headerNames.total]: Object.keys(createdDeployment.devices).length }\n });\n } else if (mockApiResponses.deployments.byId[deploymentId]) {\n return new HttpResponse(JSON.stringify(Object.values(mockApiResponses.deployments.byId[deploymentId].devices)), {\n headers: { [headerNames.total]: Object.keys(mockApiResponses.deployments.byId[deploymentId].devices).length }\n });\n }\n return new HttpResponse(null, { status: 529 });\n }),\n http.get(`${deploymentsApiUrl}/config`, () => HttpResponse.json(defaultDeploymentConfig)),\n http.put(\n `${deploymentsApiUrl}/config/binary_delta`,\n validated(async ({ request }) => {\n const { xdelta_args = {} } = await request.json();\n if (xdelta_args.source_window_size === 55) {\n return new HttpResponse(null, { status: 530 });\n }\n return new HttpResponse(null, { status: 200 });\n })\n ),\n http.get(`${deploymentsApiUrl}/deployments/devices/:deviceId`, ({ params: { deviceId } }) => {\n if (deviceId === mockApiResponses.devices.byId.a1.id) {\n return new HttpResponse(\n JSON.stringify([\n {\n id: createdDeployment.id + 'something',\n deployment: { ...createdDeployment, id: mockApiResponses.deployments.byId.d1.id, status: 'inprogress' },\n device: {\n created: '2019-01-01T12:35:00.000Z',\n finished: '2019-01-01T12:40:00.000Z',\n status: 'noartifact',\n id: 'something',\n image: { ...mockApiResponses.releases.byId.r1 }\n },\n log: true,\n attempts: 1,\n delta_job_id: ''\n }\n ]),\n {\n headers: { [headerNames.total]: 34 }\n }\n );\n }\n return new HttpResponse(null, { status: 529 });\n }),\n http.delete(`${deploymentsApiUrl}/deployments/devices/:deviceId/history`, () => new HttpResponse(null, { status: 204 })),\n http.get(`/api/management/v1alpha1/deployments/deployments/:deploymentId/devices/:deviceId/log/explain`, ({ params: { deploymentId, deviceId } }) => {\n if (deploymentId === mockApiResponses.deployments.byId.d1.id && deviceId === mockApiResponses.devices.byId.a1.id) {\n const mockAnalysis = `## Summary\nThe deployment failed during the artifact download phase. The device was unable to establish a secure connection to the artifact repository.\n\n## Key Issues\n1. **Network connectivity issues** - Connection timeout occurred\n2. **SSL/TLS certificate verification failed** - Invalid certificate chain\n3. **Artifact verification failed** - Checksum mismatch detected\n\n## Recommendations\n- Check network connectivity between device and artifact repository\n- Verify SSL certificates are properly configured\n- Ensure artifact integrity before deployment`;\n return HttpResponse.text(mockAnalysis);\n }\n if (deploymentId === 'rate-limited-deployment') {\n return new HttpResponse(JSON.stringify({ error: 'Rate limit exceeded' }), { status: 429 });\n }\n if (deploymentId === 'error-deployment') {\n return new HttpResponse(JSON.stringify({ error: 'Analysis failed' }), { status: 500 });\n }\n return new HttpResponse(null, { status: 404 });\n })\n];\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deploymentHandlers.js","names":[],"sources":["../../src/requestHandlers/deploymentHandlers.ts"],"sourcesContent":["// Copyright 2020 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n//@ts-nocheck\nimport { deploymentsApiUrl, deploymentsApiUrlV2, headerNames, limitDefault } from '@northern.tech/utils/constants';\nimport { HttpResponse, http } from 'msw';\n\nimport { mockApiResponses } from '../mockData';\nimport { validated } from './validation';\n\nconst createdDeployment = {\n id: 'created-123',\n name: 'test deployment',\n artifact_name: 'r1',\n artifacts: ['123'],\n created: '2019-01-01T12:30:00.000Z',\n device_count: 1,\n devices: {\n a1: {\n attributes: {},\n id: 'a1',\n image: { size: 123 },\n status: 'installing'\n }\n },\n filter: undefined,\n group: undefined,\n statistics: {\n status: {\n downloading: 0,\n decommissioned: 0,\n failure: 0,\n installing: 1,\n noartifact: 0,\n pending: 0,\n rebooting: 0,\n success: 0,\n 'already-installed': 0\n },\n total_size: 1234\n }\n};\n\nconst defaultDeploymentConfig = {\n delta: {\n enabled: true,\n binary_delta: {\n xdelta_args: {\n disable_checksum: false,\n disable_external_decompression: false,\n compression_level: 6,\n source_window_size: 0,\n input_window_size: 0,\n compression_duplicates_window: 0,\n instruction_buffer_size: 0\n },\n timeout: 0\n },\n binary_delta_limits: {\n xdelta_args_limits: {\n source_window_size: limitDefault,\n input_window_size: limitDefault,\n compression_duplicates_window: limitDefault,\n instruction_buffer_size: limitDefault\n },\n timeout: { min: 60, max: 3600, default: 60 },\n jobs_in_parallel: limitDefault,\n queue_length: limitDefault\n }\n }\n};\n\nexport const deploymentHandlers = [\n http.get(\n `${deploymentsApiUrlV2}/deployments`,\n () =>\n new HttpResponse(JSON.stringify(Object.values(mockApiResponses.deployments.byId).reverse()), {\n headers: { [headerNames.total]: Object.keys(mockApiResponses.deployments.byId).length }\n })\n ),\n http.get(`${deploymentsApiUrl}/deployments/releases`, ({ request }) => {\n const { searchParams } = new URL(request.url);\n const releaseName = searchParams.get('name');\n const release = mockApiResponses.releases.byId[releaseName] || {};\n if (releaseName) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { device_types_compatible, ...remainder } = release;\n return Object.keys(remainder).length || releaseName === 'createdRelease' ? HttpResponse.json([remainder]) : new HttpResponse(null, { status: 520 });\n }\n const releases = Object.values(mockApiResponses.releases.byId).map(stateRelease => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { device_types_compatible, ...remainder } = stateRelease;\n return remainder;\n });\n return HttpResponse.json(releases);\n }),\n http.get(`${deploymentsApiUrl}/deployments/:deploymentId`, ({ params: { deploymentId } }) => {\n if (deploymentId === createdDeployment.id) {\n return HttpResponse.json(createdDeployment);\n } else if (deploymentId === 'config1') {\n return HttpResponse.json({\n ...createdDeployment,\n id: 'config1',\n created: '2019-01-01T09:25:01.000Z',\n finished: '2019-01-01T09:25:03.000Z',\n status: 'finished'\n });\n }\n return HttpResponse.json(mockApiResponses.deployments.byId[deploymentId]);\n }),\n http.get(`${deploymentsApiUrl}/deployments/:deploymentId/devices`, ({ params: { deploymentId } }) => {\n if (deploymentId === createdDeployment.id) {\n return HttpResponse.json(Object.values(createdDeployment.devices));\n } else if (mockApiResponses.deployments.byId[deploymentId]) {\n return HttpResponse.json(Object.values(mockApiResponses.deployments.byId[deploymentId].devices));\n }\n return new HttpResponse(null, { status: 521 });\n }),\n http.post(\n `${deploymentsApiUrl}/deployments/statistics/list`,\n validated(async ({ request }) => {\n const { deployment_ids = [] } = await request.json();\n if (deployment_ids.includes(createdDeployment.id)) {\n return HttpResponse.json([]);\n } else if (deployment_ids.every(id => mockApiResponses.deployments.byId[id])) {\n const stats = deployment_ids.map(id => ({ id, stats: mockApiResponses.deployments.byId[id].statistics.status }));\n return HttpResponse.json(stats);\n }\n return new HttpResponse(null, { status: 522 });\n })\n ),\n http.get(`${deploymentsApiUrl}/deployments/:deploymentId/devices/:deviceId/log`, ({ params: { deploymentId, deviceId } }) => {\n if (mockApiResponses.deployments.byId[deploymentId] && mockApiResponses.deployments.byId[deploymentId].devices[deviceId]) {\n return HttpResponse.text('test');\n }\n return new HttpResponse(null, { status: 523 });\n }),\n // TODO: restore validation once ref expansion is handled in combination with ajv\n http.post(`${deploymentsApiUrl}/deployments`, async ({ request }) => {\n const body = await request.json();\n if (!Object.keys(body).length) {\n return new HttpResponse(JSON.stringify({}), { status: 524 });\n }\n return new HttpResponse(JSON.stringify({}), { headers: { location: `find/me/here/${createdDeployment.id}` } });\n }),\n http.post(\n `${deploymentsApiUrlV2}/deployments`,\n validated(async ({ request }) => {\n const { filter_id, devices = [], uniform_phases = [] } = await request.json();\n if (!filter_id || !!devices.length || !!uniform_phases.length) {\n return new HttpResponse(JSON.stringify({}), { status: 525 });\n }\n return new HttpResponse(JSON.stringify({}), { headers: { location: `find/me/here/${createdDeployment.id}` } });\n })\n ),\n http.post(\n `${deploymentsApiUrl}/deployments/group/:deploymentGroup`,\n validated(async ({ params: { deploymentGroup }, request }) => {\n const { filter_id, devices = [] } = await request.json();\n if (filter_id || !!devices.length || deploymentGroup !== Object.keys(mockApiResponses.devices.groups.byId)[0]) {\n return new HttpResponse(JSON.stringify({}), { status: 526 });\n }\n return new HttpResponse(JSON.stringify({}), { headers: { location: `find/me/here/${createdDeployment.id}` } });\n })\n ),\n http.patch(`${deploymentsApiUrl}/deployments/:deploymentId`, async ({ params: { deploymentId }, request }) => {\n const { update_control_map } = await request.json();\n if (deploymentId === createdDeployment.id && Object.keys(update_control_map).length) {\n return new HttpResponse(null, { status: 204 });\n }\n return new HttpResponse(null, { status: 581 });\n }),\n http.put(\n `${deploymentsApiUrl}/deployments/:deploymentId/status`,\n validated(async ({ params: { deploymentId }, request }) => {\n const { status } = await request.json();\n return new HttpResponse(JSON.stringify({}), {\n status:\n status === 'aborted' &&\n [...mockApiResponses.deployments.byStatus.pending.deploymentIds, ...mockApiResponses.deployments.byStatus.inprogress.deploymentIds].includes(\n deploymentId\n )\n ? 200\n : 528\n });\n })\n ),\n http.get(`${deploymentsApiUrl}/deployments/:deploymentId/devices/list`, ({ params: { deploymentId } }) => {\n if (deploymentId === createdDeployment.id) {\n return new HttpResponse(JSON.stringify(Object.values(createdDeployment.devices)), {\n headers: { [headerNames.total]: Object.keys(createdDeployment.devices).length }\n });\n } else if (mockApiResponses.deployments.byId[deploymentId]) {\n return new HttpResponse(JSON.stringify(Object.values(mockApiResponses.deployments.byId[deploymentId].devices)), {\n headers: { [headerNames.total]: Object.keys(mockApiResponses.deployments.byId[deploymentId].devices).length }\n });\n }\n return new HttpResponse(null, { status: 529 });\n }),\n http.get(`${deploymentsApiUrl}/config`, () => HttpResponse.json(defaultDeploymentConfig)),\n http.put(\n `${deploymentsApiUrl}/config/binary_delta`,\n validated(async ({ request }) => {\n const { xdelta_args = {} } = await request.json();\n if (xdelta_args.source_window_size === 55) {\n return new HttpResponse(null, { status: 530 });\n }\n return new HttpResponse(null, { status: 200 });\n })\n ),\n http.get(`${deploymentsApiUrl}/deployments/devices/:deviceId`, ({ params: { deviceId } }) => {\n if (deviceId === mockApiResponses.devices.byId.a1.id) {\n return new HttpResponse(\n JSON.stringify([\n {\n id: createdDeployment.id + 'something',\n deployment: { ...createdDeployment, id: mockApiResponses.deployments.byId.d1.id, status: 'inprogress' },\n device: {\n created: '2019-01-01T12:35:00.000Z',\n finished: '2019-01-01T12:40:00.000Z',\n status: 'noartifact',\n id: 'something',\n image: { ...mockApiResponses.releases.byId.r1 }\n },\n log: true,\n attempts: 1,\n delta_job_id: ''\n }\n ]),\n {\n headers: { [headerNames.total]: 34 }\n }\n );\n }\n return new HttpResponse(null, { status: 529 });\n }),\n http.delete(`${deploymentsApiUrl}/deployments/devices/:deviceId/history`, () => new HttpResponse(null, { status: 204 })),\n http.get(`/api/management/v1alpha1/deployments/deployments/:deploymentId/devices/:deviceId/log/explain`, ({ params: { deploymentId, deviceId } }) => {\n if (deploymentId === mockApiResponses.deployments.byId.d1.id && deviceId === mockApiResponses.devices.byId.a1.id) {\n const mockAnalysis = `## Summary\nThe deployment failed during the artifact download phase. The device was unable to establish a secure connection to the artifact repository.\n\n## Key Issues\n1. **Network connectivity issues** - Connection timeout occurred\n2. **SSL/TLS certificate verification failed** - Invalid certificate chain\n3. **Artifact verification failed** - Checksum mismatch detected\n\n## Recommendations\n- Check network connectivity between device and artifact repository\n- Verify SSL certificates are properly configured\n- Ensure artifact integrity before deployment`;\n return HttpResponse.text(mockAnalysis);\n }\n if (deploymentId === 'rate-limited-deployment') {\n return new HttpResponse(JSON.stringify({ error: 'Rate limit exceeded' }), { status: 429 });\n }\n if (deploymentId === 'error-deployment') {\n return new HttpResponse(JSON.stringify({ error: 'Analysis failed' }), { status: 500 });\n }\n return new HttpResponse(null, { status: 404 });\n })\n];\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_mockData = require("../mockData.cjs");
|
|
3
|
-
const require_validation = require("../validation-
|
|
3
|
+
const require_validation = require("../validation-m8rbcHeR.cjs");
|
|
4
4
|
let _northern_tech_utils_constants = require("@northern.tech/utils/constants");
|
|
5
5
|
let msw = require("msw");
|
|
6
6
|
//#region src/requestHandlers/deviceHandlers.ts
|
|
@@ -377,12 +377,8 @@ const deviceHandlers = [
|
|
|
377
377
|
})),
|
|
378
378
|
msw.http.post(`${_northern_tech_utils_constants.inventoryApiUrlV2}/filters/search`, searchHandler),
|
|
379
379
|
msw.http.post(`${_northern_tech_utils_constants.inventoryApiUrlV2alpha1}/identities/search`, require_validation.validated(async ({ request }) => {
|
|
380
|
-
const {
|
|
381
|
-
if ([
|
|
382
|
-
name,
|
|
383
|
-
scope,
|
|
384
|
-
value_prefix
|
|
385
|
-
].some((item) => !item)) return new msw.HttpResponse(null, { status: 519 });
|
|
380
|
+
const { attribute, value_prefix } = await request.json();
|
|
381
|
+
if (!value_prefix || attribute && [attribute.name, attribute.scope].some((item) => !item)) return new msw.HttpResponse(null, { status: 519 });
|
|
386
382
|
return new msw.HttpResponse(JSON.stringify([inventoryDevice]), { headers: { [_northern_tech_utils_constants.headerNames.total]: 1 } });
|
|
387
383
|
})),
|
|
388
384
|
msw.http.post(`${_northern_tech_utils_constants.inventoryApiUrlV2}/filters`, require_validation.validated(async ({ request }) => {
|