diff --git a/CHANGELOG.md b/CHANGELOG.md index 47e852b8..bf6765f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ *Note: Numbers like (\#123) point to closed Pull Requests on the fractal-web repository.* +# Unreleased + +* fixed issue in task version update when no arguments fix is needed (\#477). + # 1.0.2 * fixed issue in task version update with optional arguments (\#475). diff --git a/src/lib/components/v2/workflow/VersionUpdate.svelte b/src/lib/components/v2/workflow/VersionUpdate.svelte index dea10f4a..0abca1a8 100644 --- a/src/lib/components/v2/workflow/VersionUpdate.svelte +++ b/src/lib/components/v2/workflow/VersionUpdate.svelte @@ -169,8 +169,8 @@ order: workflowTask.order, meta_non_parallel: workflowTask.meta_non_parallel, meta_parallel: workflowTask.meta_parallel, - args_non_parallel: fixArgsComponentNonParallel?.getNewArgs() || null, - args_parallel: fixArgsComponentParallel?.getNewArgs() || null, + args_non_parallel: fixArgsComponentNonParallel?.getNewArgs() || workflowTask.args_non_parallel, + args_parallel: fixArgsComponentParallel?.getNewArgs() || workflowTask.args_parallel, is_legacy_task: workflowTask.is_legacy_task }) } diff --git a/tests/v2/task_version_update.spec.js b/tests/v2/task_version_update.spec.js index b1a01c82..5e34b443 100644 --- a/tests/v2/task_version_update.spec.js +++ b/tests/v2/task_version_update.spec.js @@ -43,7 +43,7 @@ test('Task version update [v2]', async ({ page, workflow }) => { version: '0.0.1', args_schema_parallel: { properties: { - p2: { type: 'string' } + p2: { type: 'string', title: 'p2' } }, type: 'object' } @@ -54,7 +54,19 @@ test('Task version update [v2]', async ({ page, workflow }) => { version: '0.0.2', args_schema_parallel: { properties: { - p2: { type: 'string' } + p2: { type: 'string', title: 'p2' } + }, + type: 'object', + required: ['p2'] + } + }); + await createFakeTask(page, { + name: parallelTask, + type: 'parallel', + version: '0.0.3', + args_schema_parallel: { + properties: { + p2: { type: 'string', title: 'p2' } }, type: 'object', required: ['p2'] @@ -144,7 +156,31 @@ test('Task version update [v2]', async ({ page, workflow }) => { await page.getByRole('button', { name: 'Check' }).click(); await page.getByText('The arguments are valid').waitFor(); await page.getByRole('button', { name: 'Update' }).click(); + await expect( + page.getByRole('combobox', { name: 'New versions of this task exist:' }).getByRole('option') + ).toHaveCount(2); + await expect( + page + .getByRole('combobox', { name: 'New versions of this task exist:' }) + .getByRole('option') + .nth(1) + ).toHaveText('0.0.3'); + }); + + await test.step('Update parallel task to v3 (no fix needed)', async () => { + await page.getByRole('button', { name: 'Arguments', exact: true }).click(); + await page.getByRole('textbox', { name: 'p2' }).fill('test-value'); + await page.getByRole('button', { name: 'Save changes' }).click(); + await page.getByRole('button', { name: 'Version' }).click(); + await page + .getByRole('combobox', { name: 'New versions of this task exist:' }) + .selectOption('0.0.3'); + await page.getByText('The arguments are valid').waitFor(); + await page.getByRole('button', { name: 'Update' }).click(); await page.getByText('No new versions available').waitFor(); + // Verify that the arguments are preserved after the update + await page.getByRole('button', { name: 'Arguments', exact: true }).click(); + await expect(page.getByRole('textbox', { name: 'p2' })).toHaveValue('test-value'); await workflow.removeCurrentTask(); });