From b8c7d4326e9992fda3443c4ee2ff7ce7ddeb32f9 Mon Sep 17 00:00:00 2001 From: David Crespo Date: Fri, 26 Jun 2026 12:18:00 -0500 Subject: [PATCH] fix(e2e): use fillNumberInput for firewall rule Priority field The Priority field is a React Aria NumberInput, which can drop a value filled via plain fill() if the form re-renders before the edit commits. This surfaced in CI as 'can create firewall rule' creating a rule with Priority 0 instead of 5. Use the existing fillNumberInput helper, which blurs and polls until the value sticks. --- test/e2e/firewall-rules.e2e.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/e2e/firewall-rules.e2e.ts b/test/e2e/firewall-rules.e2e.ts index 496fb2f7f..c0c53c260 100644 --- a/test/e2e/firewall-rules.e2e.ts +++ b/test/e2e/firewall-rules.e2e.ts @@ -11,6 +11,7 @@ import { expect, expectRowVisible, fillAndSelectComboboxOption, + fillNumberInput, selectOption, test, type Locator, @@ -41,7 +42,7 @@ test('can create firewall rule', async ({ page }) => { await page.fill('input[name=name]', 'my-new-rule') await page.getByRole('radio', { name: 'Outbound' }).click() - await page.fill('role=textbox[name="Priority"]', '5') + await fillNumberInput(page.getByRole('textbox', { name: 'Priority' }), '5') // add targets with overlapping names and types to test delete const targets = page.getByRole('table', { name: 'Targets' }) @@ -583,7 +584,7 @@ test('name conflict error on edit', async ({ page }) => { await nameField.fill('allow-icmp') // changing a value _without_ changing the name is allowed - await page.getByRole('textbox', { name: 'Priority' }).fill('37') + await fillNumberInput(page.getByRole('textbox', { name: 'Priority' }), '37') await page.getByRole('button', { name: 'Update rule' }).click() await expect(error).toBeHidden() await expectRowVisible(page.getByRole('table'), { Name: 'allow-icmp', Priority: '37' })