Browse Source

add playeright test

ryosei-f 1 week ago
parent
commit
a53b1a14e3
1 changed files with 25 additions and 0 deletions
  1. 25 0
      apps/app/playwright/20-basic-features/presentation.spec.ts

+ 25 - 0
apps/app/playwright/20-basic-features/presentation.spec.ts

@@ -1,5 +1,7 @@
 import { expect, test } from '@playwright/test';
 import { expect, test } from '@playwright/test';
 
 
+import { appendTextToEditorUntilContains } from '../utils/AppendTextToEditorUntilContains';
+
 test('Presentation', async ({ page }) => {
 test('Presentation', async ({ page }) => {
   await page.goto('/');
   await page.goto('/');
 
 
@@ -15,3 +17,26 @@ test('Presentation', async ({ page }) => {
     page.getByRole('application').getByRole('heading', { level: 1 }),
     page.getByRole('application').getByRole('heading', { level: 1 }),
   ).toHaveText(/Welcome to GROWI/);
   ).toHaveText(/Welcome to GROWI/);
 });
 });
+
+test('Slide page (slide: true frontmatter) renders without crashing', async ({
+  page,
+}) => {
+  await page.goto('/Sandbox/slide-test');
+
+  // create slide content
+  await page.getByTestId('editor-button').click();
+  await expect(page.getByTestId('grw-editor-navbar-bottom')).toBeVisible();
+  await appendTextToEditorUntilContains(
+    page,
+    '---\nslide: true\n---\n# Slide 1\n---\n# Slide 2',
+  );
+  await page.keyboard.press('Control+s');
+
+  // verify slide view renders
+  await page.getByTestId('view-button').click();
+  await expect(page.locator('.slides')).toBeVisible();
+
+  // reload to verify SWR loading path does not crash
+  await page.reload();
+  await expect(page.locator('.slides')).toBeVisible();
+});