sticky-features.spec.ts 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { test, expect } from '@playwright/test';
  2. test('Subnavigation displays changes on scroll down and up', async({ page }) => {
  3. await page.goto('/');
  4. // Scroll down to trigger sticky effect
  5. await page.evaluate(() => window.scrollTo(0, 250));
  6. await expect(page.locator('.sticky-outer-wrapper').first()).toHaveClass(/active/);
  7. // Scroll back to top
  8. await page.evaluate(() => window.scrollTo(0, 0));
  9. await expect(page.locator('.sticky-outer-wrapper').first()).not.toHaveClass(/active/);
  10. });
  11. test('Subnavigation is not displayed when move to other pages', async({ page }) => {
  12. await page.goto('/');
  13. // Scroll down to trigger sticky effect
  14. await page.evaluate(() => window.scrollTo(0, 250));
  15. await expect(page.locator('.sticky-outer-wrapper').first()).toHaveClass(/active/);
  16. // Move to /Sandbox page
  17. await page.goto('/Sandbox');
  18. await expect(page.locator('.sticky-outer-wrapper').first()).not.toHaveClass(/active/);
  19. });
  20. test('Able to click buttons on subnavigation switcher when sticky', async({ page }) => {
  21. await page.goto('/');
  22. // Scroll down to trigger sticky effect
  23. await page.evaluate(() => window.scrollTo(0, 250));
  24. await expect(page.locator('.sticky-outer-wrapper').first()).toHaveClass(/active/);
  25. // Click editor button
  26. await page.getByTestId('editor-button').click();
  27. await expect(page.locator('.layout-root')).toHaveClass(/editing/);
  28. });
  29. test('Subnavigation is sticky when on small window', async({ page }) => {
  30. await page.goto('/');
  31. // Scroll down to trigger sticky effect
  32. await page.evaluate(() => window.scrollTo(0, 500));
  33. await expect(page.locator('.sticky-outer-wrapper').first()).toHaveClass(/active/);
  34. // Set viewport to small size
  35. await page.setViewportSize({ width: 600, height: 1024 });
  36. await expect(page.getByTestId('grw-contextual-sub-nav').getByTestId('grw-page-editor-mode-manager')).toBeVisible();
  37. });