mirror of https://github.com/logseq/logseq
fix: e2e tests
This PR moves the cursor to the end of the editor in `enterNextBlock`.pull/8878/head
parent
cb2c1f1d6a
commit
69bd4e935b
|
@ -1,8 +1,9 @@
|
||||||
import { expect } from '@playwright/test'
|
import { expect } from '@playwright/test'
|
||||||
import { test } from './fixtures'
|
import { test } from './fixtures'
|
||||||
import { createRandomPage, newBlock, lastBlock, modKey, IsLinux } from './utils'
|
import { createRandomPage, enterNextBlock, lastBlock, modKey, IsLinux } from './utils'
|
||||||
|
|
||||||
test('open search dialog', async ({ page }) => {
|
test('open search dialog', async ({ page }) => {
|
||||||
|
await page.waitForTimeout(200)
|
||||||
await page.keyboard.press(modKey + '+k')
|
await page.keyboard.press(modKey + '+k')
|
||||||
|
|
||||||
await page.waitForSelector('[placeholder="Search or create page"]')
|
await page.waitForSelector('[placeholder="Search or create page"]')
|
||||||
|
@ -25,7 +26,7 @@ test('insert link #3278', async ({ page }) => {
|
||||||
await page.fill('textarea >> nth=0', '[Logseq Website](https://logseq.com)')
|
await page.fill('textarea >> nth=0', '[Logseq Website](https://logseq.com)')
|
||||||
|
|
||||||
// Case 2: link with label
|
// Case 2: link with label
|
||||||
await newBlock(page)
|
await enterNextBlock(page)
|
||||||
await page.type('textarea >> nth=0', 'Logseq')
|
await page.type('textarea >> nth=0', 'Logseq')
|
||||||
await page.press('textarea >> nth=0', selectAll)
|
await page.press('textarea >> nth=0', selectAll)
|
||||||
await page.press('textarea >> nth=0', hotKey)
|
await page.press('textarea >> nth=0', hotKey)
|
||||||
|
@ -34,7 +35,7 @@ test('insert link #3278', async ({ page }) => {
|
||||||
expect(await page.inputValue('textarea >> nth=0')).toBe('[Logseq](https://logseq.com/)')
|
expect(await page.inputValue('textarea >> nth=0')).toBe('[Logseq](https://logseq.com/)')
|
||||||
|
|
||||||
// Case 3: link with URL
|
// Case 3: link with URL
|
||||||
await newBlock(page)
|
await enterNextBlock(page)
|
||||||
await page.type('textarea >> nth=0', 'https://logseq.com/')
|
await page.type('textarea >> nth=0', 'https://logseq.com/')
|
||||||
await page.press('textarea >> nth=0', selectAll)
|
await page.press('textarea >> nth=0', selectAll)
|
||||||
await page.press('textarea >> nth=0', hotKey)
|
await page.press('textarea >> nth=0', hotKey)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { expect, Page } from '@playwright/test'
|
import { expect, Page } from '@playwright/test'
|
||||||
import { test } from './fixtures'
|
import { test } from './fixtures'
|
||||||
import { IsMac, createPage, randomLowerString, newBlock, newInnerBlock, randomString, lastBlock } from './utils'
|
import { IsMac, createPage, randomLowerString, newInnerBlock, randomString, lastBlock } from './utils'
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* Test rename feature
|
* Test rename feature
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import { expect, Page } from '@playwright/test'
|
import { expect, Page } from '@playwright/test'
|
||||||
import { test } from './fixtures'
|
import { test } from './fixtures'
|
||||||
import { Block } from './types'
|
import { Block } from './types'
|
||||||
import { modKey, createRandomPage, newBlock, newInnerBlock, randomString, lastBlock, enterNextBlock } from './utils'
|
import { modKey, createRandomPage, newInnerBlock, randomString, lastBlock, enterNextBlock } from './utils'
|
||||||
import { searchPage, closeSearchBox } from './util/search-modal'
|
import { searchPage, closeSearchBox } from './util/search-modal'
|
||||||
|
|
||||||
/***
|
/***
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import { Page, Locator } from 'playwright'
|
import { Page, Locator } from 'playwright'
|
||||||
import { expect, ConsoleMessage } from '@playwright/test'
|
import { expect, ConsoleMessage } from '@playwright/test'
|
||||||
import * as pathlib from 'path'
|
import * as pathlib from 'path'
|
||||||
|
import { modKey } from './util/basic'
|
||||||
|
|
||||||
// TODO: The file should be a facade of utils in the /util folder
|
// TODO: The file should be a facade of utils in the /util folder
|
||||||
// No more additional functions should be added to this file
|
// No more additional functions should be added to this file
|
||||||
|
@ -34,6 +35,9 @@ export async function lastBlock(page: Page): Promise<Locator> {
|
||||||
* @param page The Playwright Page object.
|
* @param page The Playwright Page object.
|
||||||
*/
|
*/
|
||||||
export async function enterNextBlock(page: Page): Promise<Locator> {
|
export async function enterNextBlock(page: Page): Promise<Locator> {
|
||||||
|
// Move cursor to the end of the editor
|
||||||
|
await page.press('textarea >> nth=0', modKey + '+a') // select all
|
||||||
|
await page.press('textarea >> nth=0', 'ArrowRight')
|
||||||
let blockCount = await page.locator('.page-blocks-inner .ls-block').count()
|
let blockCount = await page.locator('.page-blocks-inner .ls-block').count()
|
||||||
await page.press('textarea >> nth=0', 'Enter')
|
await page.press('textarea >> nth=0', 'Enter')
|
||||||
await page.waitForTimeout(10)
|
await page.waitForTimeout(10)
|
||||||
|
@ -53,15 +57,6 @@ export async function newInnerBlock(page: Page): Promise<Locator> {
|
||||||
return page.locator('textarea >> nth=0')
|
return page.locator('textarea >> nth=0')
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated by block.enterNext
|
|
||||||
export async function newBlock(page: Page): Promise<Locator> {
|
|
||||||
let blockNumber = await page.locator('.page-blocks-inner .ls-block').count()
|
|
||||||
await lastBlock(page)
|
|
||||||
await page.press('textarea >> nth=0', 'Enter')
|
|
||||||
await page.waitForSelector(`.page-blocks-inner .ls-block >> nth=${blockNumber} >> textarea`, { state: 'visible' })
|
|
||||||
return page.locator('textarea >> nth=0')
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function escapeToCodeEditor(page: Page): Promise<void> {
|
export async function escapeToCodeEditor(page: Page): Promise<void> {
|
||||||
await page.press('.block-editor textarea', 'Escape')
|
await page.press('.block-editor textarea', 'Escape')
|
||||||
await page.waitForSelector('.CodeMirror pre', { state: 'visible' })
|
await page.waitForSelector('.CodeMirror pre', { state: 'visible' })
|
||||||
|
|
Loading…
Reference in New Issue