@ministryofjustice/hmpps-probation-integration-e2e-tests 1.44.0 → 1.46.0
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/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ministryofjustice/hmpps-probation-integration-e2e-tests",
|
|
3
3
|
"description": "Playwright end to end tests for hmpps-probation-integration-services.",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.46.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/ministryofjustice/hmpps-probation-integration-e2e-tests#readme",
|
|
7
7
|
"bugs": {
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"type": "module",
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"@faker-js/faker": "^9.0.3",
|
|
20
|
-
"@kubernetes/client-node": "^0.
|
|
20
|
+
"@kubernetes/client-node": "^1.0.0",
|
|
21
21
|
"@playwright/test": "1.49.1",
|
|
22
22
|
"@types/luxon": "^3.4.2",
|
|
23
23
|
"@types/node": "^22.10.1",
|
package/steps/k8s/k8s-utils.d.ts
CHANGED
package/steps/k8s/k8s-utils.js
CHANGED
|
@@ -49,10 +49,10 @@ export function getPodName(namespace, deploymentName) {
|
|
|
49
49
|
kubeConfig = new KubeConfig();
|
|
50
50
|
kubeConfig.loadFromDefault();
|
|
51
51
|
coreV1Api = kubeConfig.makeApiClient(CoreV1Api);
|
|
52
|
-
return [4 /*yield*/, coreV1Api.listNamespacedPod(namespace
|
|
52
|
+
return [4 /*yield*/, coreV1Api.listNamespacedPod({ namespace: namespace, labelSelector: "app=".concat(deploymentName) })];
|
|
53
53
|
case 1:
|
|
54
54
|
podsResponse = _a.sent();
|
|
55
|
-
name = podsResponse.
|
|
55
|
+
name = podsResponse.items[0].metadata.name;
|
|
56
56
|
console.log('Found pod:', name);
|
|
57
57
|
return [2 /*return*/, name];
|
|
58
58
|
}
|
|
@@ -118,22 +118,25 @@ export function runPod(namespace_1, podName_1, serviceAccountName_1) {
|
|
|
118
118
|
kubeConfig = new KubeConfig();
|
|
119
119
|
kubeConfig.loadFromDefault();
|
|
120
120
|
coreV1Api = kubeConfig.makeApiClient(CoreV1Api);
|
|
121
|
-
return [4 /*yield*/, coreV1Api.createNamespacedPod(
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
121
|
+
return [4 /*yield*/, coreV1Api.createNamespacedPod({
|
|
122
|
+
namespace: namespace,
|
|
123
|
+
body: {
|
|
124
|
+
metadata: {
|
|
125
|
+
name: podName,
|
|
126
|
+
},
|
|
127
|
+
spec: {
|
|
128
|
+
serviceAccountName: serviceAccountName,
|
|
129
|
+
restartPolicy: 'Never',
|
|
130
|
+
containers: [
|
|
131
|
+
{
|
|
132
|
+
name: podName,
|
|
133
|
+
image: 'ghcr.io/ministryofjustice/hmpps-devops-tools:latest',
|
|
134
|
+
command: ['sh', '-c'],
|
|
135
|
+
args: args,
|
|
136
|
+
env: env,
|
|
137
|
+
},
|
|
138
|
+
],
|
|
139
|
+
},
|
|
137
140
|
},
|
|
138
141
|
})];
|
|
139
142
|
case 1:
|
|
@@ -146,9 +149,9 @@ export function runPod(namespace_1, podName_1, serviceAccountName_1) {
|
|
|
146
149
|
_c.label = 3;
|
|
147
150
|
case 3:
|
|
148
151
|
if (!(Date.now() - started < 30000)) return [3 /*break*/, 6];
|
|
149
|
-
return [4 /*yield*/, coreV1Api.readNamespacedPod(podName, namespace)];
|
|
152
|
+
return [4 /*yield*/, coreV1Api.readNamespacedPod({ name: podName, namespace: namespace })];
|
|
150
153
|
case 4:
|
|
151
|
-
pod =
|
|
154
|
+
pod = _c.sent();
|
|
152
155
|
if (((_a = pod.status) === null || _a === void 0 ? void 0 : _a.phase) === 'Succeeded')
|
|
153
156
|
return [3 /*break*/, 6];
|
|
154
157
|
if (((_b = pod.status) === null || _b === void 0 ? void 0 : _b.phase) === 'Failed')
|
|
@@ -160,7 +163,7 @@ export function runPod(namespace_1, podName_1, serviceAccountName_1) {
|
|
|
160
163
|
case 6:
|
|
161
164
|
console.log('Pod completed:', podName);
|
|
162
165
|
return [3 /*break*/, 9];
|
|
163
|
-
case 7: return [4 /*yield*/, coreV1Api.deleteNamespacedPod(podName, namespace)];
|
|
166
|
+
case 7: return [4 /*yield*/, coreV1Api.deleteNamespacedPod({ name: podName, namespace: namespace })];
|
|
164
167
|
case 8:
|
|
165
168
|
_c.sent();
|
|
166
169
|
console.log('Pod deleted:', podName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"k8s-utils.js","sourceRoot":"","sources":["../../../steps/k8s/k8s-utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"k8s-utils.js","sourceRoot":"","sources":["../../../steps/k8s/k8s-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -81,11 +81,11 @@ export var allocateCase = function (page, crn, allocation) { return __awaiter(vo
|
|
|
81
81
|
case 5:
|
|
82
82
|
_a.sent();
|
|
83
83
|
// Navigate to allocation page
|
|
84
|
-
return [4 /*yield*/, page.
|
|
84
|
+
return [4 /*yield*/, page.getByRole('button', { name: 'Continue' }).click()];
|
|
85
85
|
case 6:
|
|
86
86
|
// Navigate to allocation page
|
|
87
87
|
_a.sent();
|
|
88
|
-
return [4 /*yield*/, expect(page).toHaveTitle(
|
|
88
|
+
return [4 /*yield*/, expect(page).toHaveTitle(/Choose practitioner/)
|
|
89
89
|
// Allocate to team/staff
|
|
90
90
|
];
|
|
91
91
|
case 7:
|
|
@@ -98,23 +98,23 @@ export var allocateCase = function (page, crn, allocation) { return __awaiter(vo
|
|
|
98
98
|
case 8:
|
|
99
99
|
// Allocate to team/staff
|
|
100
100
|
_a.sent();
|
|
101
|
-
return [4 /*yield*/, page.
|
|
101
|
+
return [4 /*yield*/, page.getByRole('button', { name: 'Continue' }).click()
|
|
102
102
|
// Confirm allocation
|
|
103
103
|
];
|
|
104
104
|
case 9:
|
|
105
105
|
_a.sent();
|
|
106
106
|
// Confirm allocation
|
|
107
|
-
return [4 /*yield*/, expect(page).toHaveTitle(
|
|
107
|
+
return [4 /*yield*/, expect(page).toHaveTitle(/Allocate to practitioner/)];
|
|
108
108
|
case 10:
|
|
109
109
|
// Confirm allocation
|
|
110
110
|
_a.sent();
|
|
111
|
-
return [4 /*yield*/, page.
|
|
111
|
+
return [4 /*yield*/, page.getByRole('button', { name: 'Continue' }).click()
|
|
112
112
|
// Explain the reason for allocation to this Practitioner
|
|
113
113
|
];
|
|
114
114
|
case 11:
|
|
115
115
|
_a.sent();
|
|
116
116
|
// Explain the reason for allocation to this Practitioner
|
|
117
|
-
return [4 /*yield*/, refreshUntil(page, function () { return expect(page).toHaveTitle(
|
|
117
|
+
return [4 /*yield*/, refreshUntil(page, function () { return expect(page).toHaveTitle(/Review allocation notes/); })];
|
|
118
118
|
case 12:
|
|
119
119
|
// Explain the reason for allocation to this Practitioner
|
|
120
120
|
_a.sent();
|
|
@@ -124,7 +124,7 @@ export var allocateCase = function (page, crn, allocation) { return __awaiter(vo
|
|
|
124
124
|
return [4 /*yield*/, page.click('#isSensitive')];
|
|
125
125
|
case 14:
|
|
126
126
|
_a.sent();
|
|
127
|
-
return [4 /*yield*/, page.
|
|
127
|
+
return [4 /*yield*/, page.getByRole('button', { name: 'Continue' }).click()
|
|
128
128
|
// Save Notes as an oversight contact and allocate case
|
|
129
129
|
];
|
|
130
130
|
case 15:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allocations.js","sourceRoot":"","sources":["../../../steps/workforce/allocations.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAa,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAEpD,MAAM,CAAC,IAAM,cAAc,GAAG,UAAO,IAAU,EAAE,GAAW;;;;;gBAClD,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAA;gBACxD,qBAAM,YAAY,CAAC,IAAI,EAAE,cAAM,OAAA,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAtC,CAAsC,CAAC,EAAA;;gBAAtE,SAAsE,CAAA;gBACtE,qBAAM,MAAM,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,EAAA;;gBAAtE,SAAsE,CAAA;gBACtE,qBAAM,WAAW,CAAC,OAAO,CAAC,iBAAU,GAAG,MAAG,CAAC,CAAC,KAAK,EAAE,EAAA;;gBAAnD,SAAmD,CAAA;gBACnD,qBAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,eAAQ,GAAG,CAAE,CAAC,EAAA;;gBAA3F,SAA2F,CAAA;;;;KAC9F,CAAA;AAED,MAAM,CAAC,IAAM,YAAY,GAAG,UAAO,IAAU,EAAE,GAAW,EAAE,UAAsB;;;oBAC9E,qBAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,CAAC,KAAK,EAAE,EAAA;;gBAA1E,SAA0E,CAAA;gBAC1E,qBAAM,YAAY,CAAC,IAAI,EAAE,cAAM,OAAA,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,uBAAuB,CAAC,EAAjD,CAAiD,CAAC,EAAA;;gBAAjF,SAAiF,CAAA;gBACjF,qBAAM,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,uBAAuB,CAAC,EAAA;;gBAAvD,SAAuD,CAAA;gBACvD,qBAAM,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,EAAA;;gBAAvC,SAAuC,CAAA;gBACvC,qBAAM,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC;oBAC/B,8BAA8B;kBADC;;gBAA/B,SAA+B,CAAA;gBAC/B,8BAA8B;gBAC9B,qBAAM,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"allocations.js","sourceRoot":"","sources":["../../../steps/workforce/allocations.ts"],"names":[],"mappings":"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"}
|