Skip to content

Commit f062313

Browse files
committed
Removed not active tasks from available versions
1 parent b1c2797 commit f062313

File tree

5 files changed

+107
-26
lines changed

5 files changed

+107
-26
lines changed

__tests__/v2/VersionUpdate.test.js

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ const taskGroups = [
5555
args_schema_parallel: null,
5656
taskgroupv2_id: 1
5757
}
58-
]
58+
],
59+
active: true
5960
},
6061
{
6162
id: 2,
@@ -70,7 +71,8 @@ const taskGroups = [
7071
args_schema_parallel: null,
7172
taskgroupv2_id: 2
7273
}
73-
]
74+
],
75+
active: true
7476
},
7577
{
7678
id: 3,
@@ -85,7 +87,8 @@ const taskGroups = [
8587
args_schema_parallel: null,
8688
taskgroupv2_id: 3
8789
}
88-
]
90+
],
91+
active: true
8992
},
9093
{
9194
id: 4,
@@ -100,7 +103,8 @@ const taskGroups = [
100103
args_schema_parallel: {},
101104
taskgroupv2_id: 4
102105
}
103-
]
106+
],
107+
active: true
104108
},
105109
{
106110
id: 5,
@@ -115,7 +119,8 @@ const taskGroups = [
115119
args_schema_parallel: {},
116120
taskgroupv2_id: 5
117121
}
118-
]
122+
],
123+
active: true
119124
},
120125
{
121126
id: 6,
@@ -130,7 +135,8 @@ const taskGroups = [
130135
args_schema_parallel: {},
131136
taskgroupv2_id: 6
132137
}
133-
]
138+
],
139+
active: true
134140
},
135141
{
136142
id: 7,
@@ -145,7 +151,8 @@ const taskGroups = [
145151
args_schema_parallel: {},
146152
taskgroupv2_id: 7
147153
}
148-
]
154+
],
155+
active: true
149156
},
150157
{
151158
id: 8,
@@ -160,7 +167,8 @@ const taskGroups = [
160167
args_schema_parallel: null,
161168
taskgroupv2_id: 8
162169
}
163-
]
170+
],
171+
active: true
164172
}
165173
];
166174

__tests__/v2/version-checker.test.js

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ describe('Version checker', () => {
4747
taskgroupv2_id: 1
4848
}
4949
],
50-
pkg_name: 'group1'
50+
pkg_name: 'group1',
51+
active: true
5152
},
5253
{
5354
id: 2,
@@ -61,7 +62,8 @@ describe('Version checker', () => {
6162
taskgroupv2_id: 2
6263
}
6364
],
64-
pkg_name: 'group1'
65+
pkg_name: 'group1',
66+
active: true
6567
},
6668
{
6769
id: 3,
@@ -75,7 +77,8 @@ describe('Version checker', () => {
7577
taskgroupv2_id: 3
7678
}
7779
],
78-
pkg_name: 'group2'
80+
pkg_name: 'group2',
81+
active: true
7982
}
8083
];
8184

@@ -131,7 +134,8 @@ describe('Version checker', () => {
131134
taskgroupv2_id: 1
132135
}
133136
],
134-
pkg_name: 'group1'
137+
pkg_name: 'group1',
138+
active: true
135139
},
136140
{
137141
id: 2,
@@ -145,7 +149,8 @@ describe('Version checker', () => {
145149
taskgroupv2_id: 2
146150
}
147151
],
148-
pkg_name: 'group1'
152+
pkg_name: 'group1',
153+
active: true
149154
},
150155
{
151156
id: 3,
@@ -159,7 +164,8 @@ describe('Version checker', () => {
159164
taskgroupv2_id: 3
160165
}
161166
],
162-
pkg_name: 'group1'
167+
pkg_name: 'group1',
168+
active: true
163169
}
164170
];
165171

@@ -208,7 +214,8 @@ describe('Version checker', () => {
208214
taskgroupv2_id: 1
209215
}
210216
],
211-
pkg_name: 'group1'
217+
pkg_name: 'group1',
218+
active: true
212219
},
213220
{
214221
id: 2,
@@ -222,7 +229,8 @@ describe('Version checker', () => {
222229
taskgroupv2_id: 2
223230
}
224231
],
225-
pkg_name: 'group1'
232+
pkg_name: 'group1',
233+
active: true
226234
}
227235
];
228236

@@ -280,7 +288,8 @@ describe('Version checker', () => {
280288
taskgroupv2_id: 1
281289
}
282290
],
283-
pkg_name: 'group1'
291+
pkg_name: 'group1',
292+
active: true
284293
},
285294
{
286295
id: 2,
@@ -295,7 +304,8 @@ describe('Version checker', () => {
295304
taskgroupv2_id: 2
296305
}
297306
],
298-
pkg_name: 'group1'
307+
pkg_name: 'group1',
308+
active: true
299309
},
300310
{
301311
id: 3,
@@ -310,7 +320,8 @@ describe('Version checker', () => {
310320
taskgroupv2_id: 3
311321
}
312322
],
313-
pkg_name: 'group1'
323+
pkg_name: 'group1',
324+
active: true
314325
}
315326
];
316327

src/lib/components/v2/workflow/version-checker.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,12 @@ export async function getAllNewVersions(tasks) {
4949
const updateCandidates = enrichedTasks.reduce(function (map, task) {
5050
map[task.id] = taskGroups
5151
.flatMap((tg) =>
52-
tg.task_list.map((t) => ({ ...t, version: tg.version, pkg_name: tg.pkg_name }))
52+
tg.task_list.map((t) => ({
53+
...t,
54+
version: tg.version,
55+
pkg_name: tg.pkg_name,
56+
active: tg.active
57+
}))
5358
)
5459
.filter((t) => {
5560
return (
@@ -60,7 +65,8 @@ export async function getAllNewVersions(tasks) {
6065
t.name === task.name &&
6166
t.type === task.type &&
6267
t.pkg_name === task.pkg_name &&
63-
greatestVersionAsc(t.version, task.version) === 1
68+
greatestVersionAsc(t.version, task.version) === 1 &&
69+
t.active
6470
);
6571
})
6672
.sort((t1, t2) => greatestVersionDesc(t1.version, t2.version));

tests/v2/task_version_update.spec.js

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,19 @@ test('Task version update [v2]', async ({ page, workflow }) => {
7474
required: ['p2']
7575
}
7676
});
77+
// test for type mismatch: from parallel to non_parallel
78+
await createFakeTask(page, {
79+
name: parallelTask,
80+
type: 'non_parallel',
81+
version: '0.0.4',
82+
args_schema_non_parallel: {
83+
properties: {
84+
p2: { type: 'string', title: 'p2' }
85+
},
86+
type: 'object',
87+
required: ['p2']
88+
}
89+
});
7790
compoundTask = await createFakeTask(page, {
7891
type: 'compound',
7992
version: '0.0.1',
@@ -115,6 +128,12 @@ test('Task version update [v2]', async ({ page, workflow }) => {
115128
await workflow.openWorkflowPage();
116129
});
117130

131+
await test.step('Verify that parallelTask 0.0.4 (type mismatch) can be selected', async () => {
132+
await workflow.addTask(parallelTask, '0.0.4');
133+
await workflow.selectTask(parallelTask);
134+
await workflow.removeCurrentTask();
135+
});
136+
118137
await test.step('Add tasks and select non parallel v1 task', async () => {
119138
await workflow.addTask(nonParallelTask, '0.0.1');
120139
await workflow.addTask(parallelTask, '0.0.1');
@@ -208,6 +227,7 @@ test('Task version update [v2]', async ({ page, workflow }) => {
208227
.selectOption('0.0.3');
209228
await expect(page.getByText('The arguments are valid')).toBeVisible();
210229
await page.getByRole('button', { name: 'Update' }).click();
230+
// Task version 0.0.4 is ignored, since it has a different type
211231
await expect(page.getByText('No new versions available')).toBeVisible();
212232
// Verify that the arguments are preserved after the update
213233
await page.getByRole('button', { name: 'Arguments', exact: true }).click();
@@ -249,12 +269,14 @@ test('Task version update [v2]', async ({ page, workflow }) => {
249269
await workflow.removeCurrentTask();
250270
await workflow.selectTask(parallelTask);
251271
await workflow.removeCurrentTask();
252-
await deleteTask(page, nonParallelTask); // 0.0.1
253272
await deleteTask(page, nonParallelTask); // 0.0.2
254-
await deleteTask(page, parallelTask); // 0.0.1
273+
await deleteTask(page, nonParallelTask); // 0.0.1
274+
await deleteTask(page, parallelTask); // 0.0.4
275+
await deleteTask(page, parallelTask); // 0.0.3
255276
await deleteTask(page, parallelTask); // 0.0.2
256-
await deleteTask(page, compoundTask); // 0.0.1
277+
await deleteTask(page, parallelTask); // 0.0.1
257278
await deleteTask(page, compoundTask); // 0.0.2
279+
await deleteTask(page, compoundTask); // 0.0.1
258280
});
259281
});
260282

tests/v2/update_version_deactivated_task.spec.js

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,17 @@ test('Update version of deactivated task', async ({ page, workflow }) => {
3232
type: 'object'
3333
}
3434
});
35+
await createFakeTask(page, {
36+
name: taskName,
37+
type: 'non_parallel',
38+
version: '0.0.3',
39+
args_schema_non_parallel: {
40+
properties: {
41+
p1: { type: 'string' }
42+
},
43+
type: 'object'
44+
}
45+
});
3546
});
3647

3748
await test.step('Open workflow page', async () => {
@@ -42,7 +53,7 @@ test('Update version of deactivated task', async ({ page, workflow }) => {
4253
await workflow.addTask(taskName, '0.0.1');
4354
});
4455

45-
await test.step('Deactivate the task', async () => {
56+
await test.step('Deactivate the task 0.0.1', async () => {
4657
await page.goto('/v2/tasks/management');
4758
await waitPageLoading(page);
4859
await page.getByRole('row', { name: taskName }).getByRole('combobox').selectOption('0.0.1');
@@ -55,7 +66,28 @@ test('Update version of deactivated task', async ({ page, workflow }) => {
5566
await modal.getByRole('button', { name: 'Confirm' }).click();
5667
});
5768

58-
await test.step('Verify that task has been deactivated', async () => {
69+
await test.step('Verify that task 0.0.1 has been deactivated', async () => {
70+
await page.waitForURL(/\/v2\/tasks\/activities\?activity_id=\d+/);
71+
await waitPageLoading(page);
72+
await expect(page.getByRole('row')).toHaveCount(2);
73+
await expect(page.getByRole('row', { name: taskName })).toContainText('deactivate');
74+
await expect(page.getByRole('row', { name: taskName })).toContainText('OK');
75+
});
76+
77+
await test.step('Deactivate the task 0.0.3', async () => {
78+
await page.goto('/v2/tasks/management');
79+
await waitPageLoading(page);
80+
await page.getByRole('row', { name: taskName }).getByRole('combobox').selectOption('0.0.3');
81+
await page.getByRole('row', { name: taskName }).getByRole('button', { name: 'Manage' }).click();
82+
const modal = page.locator('.modal.show');
83+
await modal.waitFor();
84+
await expect(modal.getByText('The task group is currently active')).toBeVisible();
85+
await modal.getByText('active').click();
86+
await modal.getByRole('button', { name: 'Deactivate task group' }).click();
87+
await modal.getByRole('button', { name: 'Confirm' }).click();
88+
});
89+
90+
await test.step('Verify that task 0.0.3 has been deactivated', async () => {
5991
await page.waitForURL(/\/v2\/tasks\/activities\?activity_id=\d+/);
6092
await waitPageLoading(page);
6193
await expect(page.getByRole('row')).toHaveCount(2);
@@ -73,11 +105,13 @@ test('Update version of deactivated task', async ({ page, workflow }) => {
73105
.getByRole('combobox', { name: /New versions of this task exist/ })
74106
.selectOption('0.0.2');
75107
await page.getByRole('button', { name: 'Update' }).click();
108+
// Tasks 0.0.3 should be ignored since it is not active
76109
await expect(page.getByText('No new versions available')).toBeVisible();
77110
});
78111

79112
await test.step('Cleanup test tasks', async () => {
80113
await workflow.removeCurrentTask();
114+
await deleteTask(page, taskName); // 0.0.3
81115
await deleteTask(page, taskName); // 0.0.2
82116
await deleteTask(page, taskName); // 0.0.1
83117
});

0 commit comments

Comments
 (0)