test(16.3): retarget panel create test after WR-02 submit gate
Assert submit stays disabled with no scopes; keep the 422 focus path with a selected scope so check-phase16.3.sh --all stays green. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -382,6 +382,21 @@ describe('ApiTokensPanel', () => {
|
||||
expect(await post!.clone().json()).toEqual({ name: 'Full', expires: '90d', scopes: ['*'] })
|
||||
})
|
||||
|
||||
it('keeps submit disabled until a scope is selected', async () => {
|
||||
await openCreateDialog()
|
||||
await fillName('No scope')
|
||||
expect(dialog()!.querySelector<HTMLButtonElement>('[data-action="create-token-submit"]')!.disabled).toBe(
|
||||
true,
|
||||
)
|
||||
const scope = dialog()!.querySelector<HTMLInputElement>('[data-scope="admin:read"] input')!
|
||||
scope.checked = true
|
||||
scope.dispatchEvent(new Event('change', { bubbles: true }))
|
||||
await flushPromises()
|
||||
expect(dialog()!.querySelector<HTMLButtonElement>('[data-action="create-token-submit"]')!.disabled).toBe(
|
||||
false,
|
||||
)
|
||||
})
|
||||
|
||||
it('renders a 422 on scopes and focuses the first scope checkbox', async () => {
|
||||
await openCreateDialog({
|
||||
[`POST ${TOKENS}`]: {
|
||||
@@ -395,7 +410,11 @@ describe('ApiTokensPanel', () => {
|
||||
},
|
||||
},
|
||||
})
|
||||
await fillName('No scope')
|
||||
await fillName('Scoped')
|
||||
const scope = dialog()!.querySelector<HTMLInputElement>('[data-scope="admin:read"] input')!
|
||||
scope.checked = true
|
||||
scope.dispatchEvent(new Event('change', { bubbles: true }))
|
||||
await flushPromises()
|
||||
await click('[data-action="create-token-submit"]', dialog()!)
|
||||
expect(dialog()!.textContent).toContain('Wybierz co najmniej jeden zakres.')
|
||||
expect(document.activeElement).toBe(dialog()!.querySelector('[data-scope="*"] input'))
|
||||
|
||||
Reference in New Issue
Block a user