29 lines
1.0 KiB
JavaScript
29 lines
1.0 KiB
JavaScript
import { expect, test } from '@playwright/test';
|
|
|
|
test('loads the app shell, shows playback UI, and registers a service worker', async ({ page }) => {
|
|
await page.goto('/');
|
|
|
|
await expect(page.locator('.app-title')).toHaveText('RadioPlayer');
|
|
await expect(page.locator('#play-btn')).toBeVisible();
|
|
await expect(page.locator('#mute-btn')).toBeVisible();
|
|
await expect(page.locator('#station-library')).toBeVisible();
|
|
await expect(page.locator('#station-name')).not.toHaveText('', { timeout: 20000 });
|
|
|
|
const serviceWorkerState = await page.evaluate(async () => {
|
|
if (!('serviceWorker' in navigator)) {
|
|
return { supported: false, controlled: false, scope: '' };
|
|
}
|
|
|
|
const registration = await navigator.serviceWorker.ready;
|
|
return {
|
|
supported: true,
|
|
controlled: Boolean(navigator.serviceWorker.controller),
|
|
scope: registration.scope,
|
|
};
|
|
});
|
|
|
|
expect(serviceWorkerState.supported).toBe(true);
|
|
expect(serviceWorkerState.controlled).toBe(true);
|
|
expect(serviceWorkerState.scope).toContain('4174');
|
|
});
|