test(e2e): fix dispatch contract and voice mic locator

Point the release E2E contract at the renamed build step, and assert the
relabeled microphone through the Voice pane combobox even when Radix
leaves the listbox open.
This commit is contained in:
Jinjing
2026-08-16 22:21:32 -07:00
parent a4fb765245
commit ab88455957
2 changed files with 12 additions and 6 deletions
@@ -36,12 +36,11 @@ describe('release E2E dispatch contract', () => {
})
it('includes the paired-runtime web client in the shared E2E build artifact', () => {
const buildStep = e2eWorkflow.jobs.build.steps.find(
(step) => step.name === 'Build Electron app for E2E'
)
const buildStep = e2eWorkflow.jobs.build.steps.find((step) => step.name === 'Build E2E outputs')
expect(buildStep.run).toContain('electron-vite build --mode e2e')
expect(buildStep.env.VITE_EXPOSE_STORE).toBe('true')
expect(buildStep.run).toContain('pnpm run build:web-from-renderer')
expect(buildStep.run).toContain('pnpm run build:relay')
})
})
+10 -3
View File
@@ -165,9 +165,16 @@ test.describe('Voice microphone selection', () => {
state.dispatchDeviceChange()
})
await expect(microphone).toHaveText('AirPods')
await microphone.press('Space')
await expect(orcaPage.getByRole('option', { name: 'AirPods' })).toBeVisible()
// Why: a live devicechange can keep Radix's listbox open and drop the
// trigger's accessible name, so the Voice pane's only combobox is the
// stable handle — not name=Microphone.
const microphoneValue = orcaPage.getByRole('combobox')
await expect(microphoneValue).toHaveText('AirPods')
const airpodsOption = orcaPage.getByRole('option', { name: 'AirPods', exact: true })
if ((await microphoneValue.getAttribute('aria-expanded')) !== 'true') {
await microphoneValue.press('Space')
}
await expect(airpodsOption).toBeVisible()
await expect(orcaPage.getByRole('option', { name: 'AirPods (unavailable)' })).toHaveCount(0)
await orcaPage.keyboard.press('Escape')
await expect(readMicrophoneSettings(orcaPage)).resolves.toEqual({