2022-08-29 13:38:05 +00:00
|
|
|
import { expect, Page } from '@playwright/test'
|
2022-02-17 10:54:30 +00:00
|
|
|
import { test } from './fixtures'
|
2022-03-24 18:48:12 +00:00
|
|
|
import { IsMac, createPage, randomLowerString, newBlock, newInnerBlock, randomString, lastBlock } from './utils'
|
2022-02-17 10:54:30 +00:00
|
|
|
|
|
|
|
/***
|
|
|
|
* Test rename feature
|
|
|
|
***/
|
|
|
|
|
2022-08-29 13:38:05 +00:00
|
|
|
async function page_rename_test(page: Page, original_page_name: string, new_page_name: string) {
|
2022-02-17 10:54:30 +00:00
|
|
|
let selectAll = 'Control+a'
|
|
|
|
if (IsMac) {
|
|
|
|
selectAll = 'Meta+a'
|
|
|
|
}
|
|
|
|
|
|
|
|
const rand = randomString(10)
|
|
|
|
let original_name = original_page_name + rand
|
|
|
|
let new_name = new_page_name + rand
|
|
|
|
|
|
|
|
await createPage(page, original_name)
|
2022-08-29 13:38:05 +00:00
|
|
|
await page.click('.ls-page-title .page-title')
|
2022-03-31 14:52:42 +00:00
|
|
|
await page.waitForSelector('input[type="text"]')
|
2022-02-17 10:54:30 +00:00
|
|
|
await page.keyboard.press(selectAll)
|
2022-03-31 14:52:42 +00:00
|
|
|
await page.keyboard.press('Backspace')
|
2022-02-17 10:54:30 +00:00
|
|
|
await page.type('.title input', new_name)
|
|
|
|
await page.keyboard.press('Enter')
|
|
|
|
await page.click('.ui__confirm-modal button')
|
2022-02-17 13:54:28 +00:00
|
|
|
|
2022-02-17 10:54:30 +00:00
|
|
|
expect(await page.innerText('.page-title .title')).toBe(new_name)
|
2022-02-17 13:54:28 +00:00
|
|
|
|
|
|
|
// TODO: Test if page is renamed in re-entrance
|
2022-03-31 14:52:42 +00:00
|
|
|
|
2022-02-17 13:54:28 +00:00
|
|
|
// TODO: Test if page is hierarchy
|
2022-02-17 10:54:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
test('page rename test', async ({ page }) => {
|
|
|
|
await page_rename_test(page, "abcd", "a.b.c.d")
|
|
|
|
await page_rename_test(page, "abcd", "a/b/c/d")
|
2022-03-31 14:52:42 +00:00
|
|
|
})
|
2022-03-24 18:48:12 +00:00
|
|
|
|
|
|
|
// TODO introduce more samples when #4722 is fixed
|
|
|
|
test('page title property test', async ({ page }) => {
|
|
|
|
// Edit Title Property and Double Enter (ETPDE)
|
|
|
|
// exit editing via insert new block
|
|
|
|
let rand = randomLowerString(10)
|
|
|
|
let original_name = "etpde old" + rand
|
|
|
|
let new_name = "etpde new" + rand
|
|
|
|
await createPage(page, original_name)
|
|
|
|
// add some spaces to test if it is trimmed
|
|
|
|
await page.type(':nth-match(textarea, 1)', 'title:: ' + new_name + " ")
|
|
|
|
await page.press(':nth-match(textarea, 1)', 'Enter') // DWIM property mode creates new line
|
|
|
|
await page.press(':nth-match(textarea, 1)', 'Enter')
|
|
|
|
expect(await page.innerText('.page-title .title')).toBe(new_name)
|
|
|
|
|
|
|
|
// Edit Title Property and Esc (ETPE)
|
|
|
|
// exit editing via moving out focus
|
|
|
|
rand = randomLowerString(10)
|
|
|
|
original_name = "etpe old " + rand
|
|
|
|
new_name = "etpe new " + rand
|
|
|
|
await createPage(page, original_name)
|
|
|
|
await page.type(':nth-match(textarea, 1)', 'title:: ' + new_name)
|
|
|
|
await page.press(':nth-match(textarea, 1)', 'Escape')
|
|
|
|
expect(await page.innerText('.page-title .title')).toBe(new_name)
|
|
|
|
})
|