design-switch.spec.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. const { test, expect } = require('@playwright/test');
  2. const { baseUrls } = require('./helpers/env');
  3. const { classicStartButton, modernStartButton } = require('./helpers/ui');
  4. test.describe('Design switch behavior', () => {
  5. test('index.html defaults to classic when useNewDesign=false', async ({ page }) => {
  6. await page.goto(`${baseUrls.standalone}/index.html`);
  7. await expect(page).toHaveURL(/index-classic\.html/);
  8. await expect(classicStartButton(page)).toBeVisible();
  9. });
  10. test('index.html defaults to modern when useNewDesign=true', async ({ page }) => {
  11. await page.goto(`${baseUrls.standaloneNew}/index.html`);
  12. await expect(page).toHaveURL(/index-modern\.html/);
  13. await expect(modernStartButton(page)).toBeVisible();
  14. });
  15. test('query override design=new forces modern', async ({ page }) => {
  16. await page.goto(`${baseUrls.standalone}/index.html?design=new`);
  17. await expect(page).toHaveURL(/index-modern\.html\?design=new/);
  18. await expect(modernStartButton(page)).toBeVisible();
  19. });
  20. test('query override design=old forces classic', async ({ page }) => {
  21. await page.goto(`${baseUrls.standaloneNew}/index.html?design=old`);
  22. await expect(page).toHaveURL(/index-classic\.html\?design=old/);
  23. await expect(classicStartButton(page)).toBeVisible();
  24. });
  25. test('config fetch bypasses browser cache', async ({ page }) => {
  26. let configRequestUrl = '';
  27. await page.route('**/config.json*', async (route) => {
  28. configRequestUrl = route.request().url();
  29. await route.fulfill({
  30. status: 200,
  31. contentType: 'application/json',
  32. body: JSON.stringify({ useNewDesign: true }),
  33. });
  34. });
  35. await page.goto(`${baseUrls.standalone}/index.html`);
  36. await expect(page).toHaveURL(/index-modern\.html/);
  37. expect(configRequestUrl).toMatch(/config\.json\?_=\d+/);
  38. });
  39. });