test: scope record filter control lookups
QRun-IO/ci-policy: native / fork-deny (pull_request) Skipped
QRun-IO/ci-policy: native / dotnet-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / fork-guard (pull_request) Skipped
QRun-IO/ci-policy: native / native-result (pull_request) Successful in 13s
QRun-IO/ci-policy: ci / Scoped workflow [workflow cf802461ca4ebfcf5c500440715cb333d92ea606] (pull_request) Successful in 12s
QRun-IO/ci-policy: ci / head-profile (pull_request) Skipped
QRun-IO/ci-policy: ci / repository-policy (pull_request) Skipped
QRun-IO/ci-policy: ci / application-template-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / gradle-1 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-core-2-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-4 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-frontend-browser-5 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7-head (pull_request) Skipped
QRun-IO/ci-policy: ci / node-8 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-9 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-10 (pull_request) Skipped
QRun-IO/ci-policy: ci / repository-policy-12 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-13 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-14 (pull_request) Skipped
QRun-IO/ci-policy: ci / android-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / original-business (pull_request) Skipped
QRun-IO/ci-policy: ci / original-mcp (pull_request) Skipped
QRun-IO/ci-policy: ci / original-voyage (pull_request) Skipped
QRun-IO/ci-policy: ci / original-cli (pull_request) Skipped
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
QRun-IO/ci-policy: ci / shared-pipeline (pull_request) Skipped
QRun-IO/ci-policy: Shared Node CI with Playwright / secrets (pull_request) Successful in 1m32s
QRun-IO/ci-policy: Shared Node CI with Playwright / node (pull_request) Successful in 13m0s
QRun-IO/ci-policy: Shared Node CI with Playwright / e2e (pull_request) Successful in 24m36s
QRun-IO/ci-policy: Shared Node CI with Playwright / gate (pull_request) Successful in 22s
QRun-IO/ci-policy: ci / node-playwright-11 (pull_request) Successful in 1h18m32s
QRun-IO/ci-policy: ci / ci-result (pull_request) Successful in 7s

Preserve all filter, sorting, confirmation and accessibility assertions while avoiding repeated whole-page role scans. Focused RecordQuery tests and lint pass; release CI remains required.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
This commit is contained in:
James MaesandCodex committed 2026-11-05 07:22:21 -06:00
1 parent 0f2eb173c1
commit 46e9f1212c
2 files changed
+11 -7

No files matched your search

+3 -1
View File
@@ -4,7 +4,9 @@ Updated: 2026-11-05. Source integration is prepared; no published release or dep
Current main `090f5febeaacf3f9c39a22952e5c93c859cdbeb7` (permission editor and companion Tools workspace) is integrated. The latest merge passed all 110 affected Authentik/widget/process tests, typecheck and the copyright-header gate. Both branches supplied the same worker limit; the merged configuration retains one setting. Prior focused Tools/UI-API checks covered 61 cases. These are integration checks, not completed release CI.
Core PR1343 merged as7825261ab after full CI4482 passed; develop publication4515 and candidate promotion PR1345 remain in progress. Collaboration must consume the resulting published version. Next publisher support merged in Praetor PR238 and platform-ci PR67. GitOps PR269 merged as883e1ce3; ArgoCD adopted the exact configuration and a scheduled publisher is running image sha256:ea068b2a02147280cacedd095fbc55114daa9e3db72f1b0ca8511bc43bfd12c7 with the exact Next enrollment. Its 736 Linux tests and vulnerability scan passed. The dashboard candidate version is 1.0.0-RC.38; this source preparation is not a published release.
Core PR1343 merged as7825261ab after full CI4482 passed; promotion PR1345 merged as1bef44cf and immutable publication4629 is running. Collaboration must consume the resulting published version. Next publisher support merged in Praetor PR238 and platform-ci PR67. GitOps PR269 merged as883e1ce3; ArgoCD adopted the exact configuration and a scheduled publisher is running image sha256:ea068b2a02147280cacedd095fbc55114daa9e3db72f1b0ca8511bc43bfd12c7 with the exact Next enrollment. Its 736 Linux tests and vulnerability scan passed. The dashboard candidate version is 1.0.0-RC.38; this source preparation is not a published release.
Candidate CI4602 passed 3,800 tests but hit the unchanged five-second timeout in two `RecordQuery` filter tests. These also timed out on an earlier baseline; the newer main baseline's Node job passed. Profiling the focused cases identified repeated whole-page accessibility lookups. Scoping those lookups to the existing filter controls and confirmation dialog reduced their sampled CPU cost from 387 to 261 samples; the same assertions, interactions and timeouts are preserved. All 17 tests in the affected file and focused lint pass after the change. Release CI for this correction remains required; these focused results do not replace it.
## Changes
+8 -6
View File
@@ -211,19 +211,20 @@ describe('RecordQuery joined read permissions', () => {
render(<RecordQuery {...options} />, { wrapper: createWrapper() })
expect(await screen.findByText('Alice')).toBeVisible()
await user.click(screen.getByRole('button', { name: 'Toggle advanced filter panel' }))
const filterMode = within(screen.getByRole('group', { name: 'Filter mode' }))
await user.click(screen.getByRole('button', { name: 'First Name' }))
await user.type(screen.getByRole('textbox', { name: 'Filter value for First Name' }), 'Bob')
await user.click(screen.getByRole('button', { name: 'Apply quick filter' }))
await waitFor(() => expect(requests.at(-1)?.body.filter.criteria?.length).toBe(1))
await user.selectOptions(screen.getByRole('combobox', { name: 'Sort field' }), 'lastName')
await user.click(screen.getByRole('button', { name: 'Clear all filters' }))
await user.selectOptions(filterMode.getByRole('combobox', { name: 'Sort field' }), 'lastName')
await user.click(filterMode.getByRole('button', { name: 'Clear all filters' }))
expect(screen.getByRole('alertdialog')).toBeVisible()
await user.click(screen.getByRole('button', { name: 'Cancel' }))
await user.click(within(screen.getByRole('alertdialog')).getByRole('button', { name: 'Cancel' }))
expect(requests.at(-1)?.body.filter.criteria?.length).toBe(1)
await user.click(screen.getByRole('button', { name: 'Clear all filters' }))
await user.click(screen.getByRole('button', { name: 'Clear filters' }))
await user.click(filterMode.getByRole('button', { name: 'Clear all filters' }))
await user.click(within(screen.getByRole('alertdialog')).getByRole('button', { name: 'Clear filters' }))
await waitFor(() => expect(requests.filter(({ action }) => action === 'query').at(-1)?.body.filter.criteria?.length).toBe(0))
expect(requests.filter(({ action }) => action === 'query').at(-1)?.body.filter.orderBys).toEqual([{ fieldName: 'lastName', isAscending: false }])
})
@@ -238,11 +239,12 @@ describe('RecordQuery joined read permissions', () => {
render(<RecordQuery {...options} />, { wrapper: createWrapper() })
expect(await screen.findByText('Alice')).toBeVisible()
await user.click(screen.getByRole('button', { name: 'Toggle advanced filter panel' }))
const filterMode = within(screen.getByRole('group', { name: 'Filter mode' }))
await user.click(screen.getByRole('button', { name: 'First Name' }))
await user.type(screen.getByRole('textbox', { name: 'Filter value for First Name' }), 'Bob')
await user.click(screen.getByRole('button', { name: 'Apply quick filter' }))
await user.click(screen.getByRole('button', { name: 'Advanced' }))
await user.click(filterMode.getByRole('button', { name: 'Advanced' }))
expect(screen.queryByLabelText('Advanced filter preview')).not.toBeInTheDocument()
expect(screen.queryByRole('button', { name: 'Clear all filters' })).not.toBeInTheDocument()
expect(screen.getByRole('button', { name: 'Clear all' })).toBeVisible()