import { expect, test } from '@playwright/test'; test('uses default trending and basemap settings when localStorage access is blocked', async ({ page }) => { await page.goto('/tests/runtime-harness.html'); const result = await page.evaluate(async () => { Object.defineProperty(window, 'localStorage', { configurable: true, get() { throw new DOMException('storage blocked', 'SecurityError'); }, }); const trending = await import('/src/services/trending-keywords.ts'); const basemap = await import('/src/config/basemap.ts'); trending.ingestHeadlines([{ source: 'Regression', title: 'Blocked storage must not interrupt headline ingestion', link: 'https://example.com/blocked-storage', pubDate: new Date(), }]); basemap.setMapProvider('carto'); basemap.setMapTheme('carto', 'voyager'); return { hasPMTilesUrl: basemap.hasPMTilesUrl, provider: basemap.getMapProvider(), theme: basemap.getMapTheme('carto'), }; }); expect(result.provider).toBe(result.hasPMTilesUrl ? 'auto' : 'openfreemap'); expect(result.theme).toBe('dark-matter'); });