27 lines
1.1 KiB
TypeScript
27 lines
1.1 KiB
TypeScript
import { test, expect } from '@playwright/test'
|
|
|
|
const builderUrl = '/en/builder'
|
|
|
|
test('Preview viewport toggle via keyboard (Tab + Enter/Space)', async ({ page }) => {
|
|
await page.goto(builderUrl)
|
|
|
|
// Tab to first button (Desktop)
|
|
await page.keyboard.press('Tab')
|
|
await page.keyboard.press('Tab')
|
|
await expect(page.getByRole('button', { name: 'Desktop' })).toBeFocused()
|
|
|
|
// Press Space to toggle Mobile (first ensure Desktop is selected, then move to Mobile with Tab)
|
|
await page.keyboard.press('Tab')
|
|
await expect(page.getByRole('button', { name: 'Mobile' })).toBeFocused()
|
|
await page.keyboard.press('Space')
|
|
await expect(page.getByRole('button', { name: 'Mobile' })).toHaveAttribute('aria-pressed', 'true')
|
|
|
|
// Back to Desktop with Shift+Tab and Enter
|
|
await page.keyboard.down('Shift')
|
|
await page.keyboard.press('Tab')
|
|
await page.keyboard.up('Shift')
|
|
await expect(page.getByRole('button', { name: 'Desktop' })).toBeFocused()
|
|
await page.keyboard.press('Enter')
|
|
await expect(page.getByRole('button', { name: 'Desktop' })).toHaveAttribute('aria-pressed', 'true')
|
|
})
|