diff --git a/e2e-tests/headings.spec.ts b/e2e-tests/headings.spec.ts new file mode 100644 index 000000000..b17654ad3 --- /dev/null +++ b/e2e-tests/headings.spec.ts @@ -0,0 +1,78 @@ +import { expect } from '@playwright/test' +import { test } from './fixtures' +import { createRandomPage, editFirstBlock, newInnerBlock } from './utils' + +test('set heading to 1 using', async ({ page }) => { + await createRandomPage(page) + + await page.type('textarea >> nth=0', 'foo') + + await page.keyboard.press('Escape', { delay: 50 }) + + await page.locator('span.bullet-container >> nth=0').click({button: "right"}) + + await page.locator('#custom-context-menu .to-heading-button[title="Heading 1"]').click() + + await editFirstBlock(page) + await page.waitForTimeout(500) + + expect(await page.inputValue('textarea >> nth=0')).toBe('# foo') + + await page.keyboard.press('Escape', { delay: 50 }) + + expect(await page.locator('.ls-block .block-content >> nth=0').innerHTML()).toContain('

foo

') +}) + +test('remove heading', async ({ page }) => { + await page.locator('span.bullet-container >> nth=0').click({button: "right"}) + + await page.locator('#custom-context-menu .to-heading-button[title="Remove heading"]').click() + + expect(await page.locator('.ls-block .block-content >> nth=0').innerHTML()).toContain('foo') +}) + +test('set heading to 2', async ({ page }) => { + await page.locator('span.bullet-container >> nth=0').click({button: "right"}) + + await page.locator('#custom-context-menu .to-heading-button[title="Heading 2"]').click() + + expect(await page.locator('.ls-block .block-content >> nth=0').innerHTML()).toContain('

foo

') +}) + +test('switch to auto heading', async ({ page }) => { + await page.locator('span.bullet-container >> nth=0').click({button: "right"}) + + await page.locator('#custom-context-menu .to-heading-button[title="Auto heading"]').click() + + await editFirstBlock(page) + await page.waitForTimeout(500) + + expect(await page.inputValue('textarea >> nth=0')).toBe('foo') + + await page.keyboard.press('Escape', { delay: 50 }) + + expect(await page.locator('.ls-block .block-content >> nth=0').innerHTML()).toContain('

foo

') +}) + +test('set heading of nested block to auto', async ({ page }) => { + await newInnerBlock(page) + await page.waitForTimeout(500) + + await page.type('textarea >> nth=0', 'bar') + + await page.keyboard.press("Tab") + + await page.keyboard.press('Escape', { delay: 50 }) + + await page.locator('span.bullet-container >> nth=1').click({button: "right"}) + + await page.locator('#custom-context-menu .to-heading-button[title="Auto heading"]').click() + + expect(await page.locator('.ls-block .block-content >> nth=1').innerHTML()).toContain('

bar

') +}) + +test('view nested block on a dedicated page', async ({ page }) => { + await page.locator('span.bullet-container >> nth=1').click() + + expect(await page.locator('.ls-block .block-content >> nth=0').innerHTML()).toContain('

bar

') +})