From 577fc173dac0144f694f608fb837938700bbe784 Mon Sep 17 00:00:00 2001 From: Robert Wolff Date: Thu, 5 Feb 2026 11:30:02 +0100 Subject: [PATCH] feat(ui): support additional job status selection in dropdown menu on Actions tab --- models/actions/run_list.go | 2 +- tests/e2e/actions.test.e2e.ts | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/models/actions/run_list.go b/models/actions/run_list.go index a450212185..41b7c9ff59 100644 --- a/models/actions/run_list.go +++ b/models/actions/run_list.go @@ -127,7 +127,7 @@ type StatusInfo struct { // GetStatusInfoList returns a slice of StatusInfo func GetStatusInfoList(ctx context.Context, lang translation.Locale) []StatusInfo { // same as those in aggregateJobStatus - allStatus := []Status{StatusSuccess, StatusFailure, StatusWaiting, StatusRunning} + allStatus := []Status{StatusSuccess, StatusFailure, StatusWaiting, StatusRunning, StatusBlocked, StatusCancelled, StatusSkipped} statusInfoList := make([]StatusInfo, 0, 4) for _, s := range allStatus { statusInfoList = append(statusInfoList, StatusInfo{ diff --git a/tests/e2e/actions.test.e2e.ts b/tests/e2e/actions.test.e2e.ts index 2f5d09e561..8981d037d3 100644 --- a/tests/e2e/actions.test.e2e.ts +++ b/tests/e2e/actions.test.e2e.ts @@ -203,11 +203,19 @@ test.describe('workflow list dynamic refresh', () => { await page.locator('#workflow_dispatch_dropdown>button').click(); // Status dropdown - await expect(page.getByText('Waiting')).toBeHidden(); - await expect(page.getByText('Failure')).toBeHidden(); - await page.locator('#status_dropdown').click(); - await expect(page.getByText('Waiting')).toBeVisible(); - await expect(page.getByText('Failure')).toBeVisible(); + const dropdown = page.locator('#status_dropdown'); + const dropdown_menu = dropdown.locator('.menu'); + await expect(dropdown_menu).toBeHidden(); + await dropdown.click(); + await expect(dropdown_menu).toBeVisible(); + await expect(dropdown_menu.getByText('All status')).toHaveAttribute('href', /&status=0$/); + await expect(dropdown_menu.getByText('Success')).toHaveAttribute('href', /&status=1$/); + await expect(dropdown_menu.getByText('Failure')).toHaveAttribute('href', /&status=2$/); + await expect(dropdown_menu.getByText('Waiting')).toHaveAttribute('href', /&status=5$/); + await expect(dropdown_menu.getByText('Running')).toHaveAttribute('href', /&status=6$/); + await expect(dropdown_menu.getByText('Blocked')).toHaveAttribute('href', /&status=7$/); + await expect(dropdown_menu.getByText('Canceled')).toHaveAttribute('href', /&status=3$/); + await expect(dropdown_menu.getByText('Skipped')).toHaveAttribute('href', /&status=4$/); // Actor dropdown await expect(page.getByText('All actors')).toBeHidden();