|
| 1 | +import { expect, test, type Page } from '@playwright/test'; |
| 2 | +import { createTestDriver } from './label.driver'; |
| 3 | + |
| 4 | +async function setup(page: Page, exampleName: string) { |
| 5 | + await page.goto(`/headless/label/${exampleName}`); |
| 6 | + const driver = createTestDriver(page.getByTestId('root')); |
| 7 | + const { getLabel, getForElement } = driver; |
| 8 | + |
| 9 | + return { driver, getLabel, getForElement }; |
| 10 | +} |
| 11 | + |
| 12 | +test.describe('Label usaged', () => { |
| 13 | + test('should have a label', async ({ page }) => { |
| 14 | + const { getLabel } = await setup(page, 'hero'); |
| 15 | + await expect(getLabel()).toBeVisible(); |
| 16 | + }); |
| 17 | + |
| 18 | + test('should focus on for', async ({ page }) => { |
| 19 | + const { getLabel, getForElement } = await setup(page, 'hero'); |
| 20 | + const label = getLabel(); |
| 21 | + const forElement = getForElement(); |
| 22 | + |
| 23 | + await label.click(); |
| 24 | + await expect(forElement).toBeFocused(); |
| 25 | + }); |
| 26 | + |
| 27 | + test('should not select the text on label', async ({ page }) => { |
| 28 | + const { getLabel } = await setup(page, 'hero'); |
| 29 | + const label = getLabel(); |
| 30 | + |
| 31 | + await label.dblclick(); |
| 32 | + const selection = await page.evaluate(() => window.getSelection()?.toString()); |
| 33 | + expect(selection).toBeFalsy(); |
| 34 | + }); |
| 35 | +}); |
0 commit comments