Files
AFFiNE-Mirror/tests/blocksuite/e2e/edgeless/group/title.spec.ts

73 lines
2.3 KiB
TypeScript

import { expect, type Page } from '@playwright/test';
import {
createShapeElement,
dblclickView,
edgelessCommonSetup,
getSelectedBound,
pressEnter,
selectAllByKeyboard,
Shape,
triggerComponentToolbarAction,
type,
} from '../../utils/actions/index.js';
import { assertEdgelessCanvasText } from '../../utils/asserts.js';
import { test } from '../../utils/playwright.js';
async function init(page: Page) {
await edgelessCommonSetup(page);
await createShapeElement(page, [0, 0], [100, 100], Shape.Square);
await createShapeElement(page, [100, 0], [200, 100], Shape.Square);
}
test.describe('group title', () => {
test.beforeEach(async ({ page }) => {
await init(page);
await selectAllByKeyboard(page);
await triggerComponentToolbarAction(page, 'addGroup');
});
test('edit group title by component toolbar', async ({ page }) => {
expect(await page.locator('edgeless-group-title-editor').count()).toBe(0);
await triggerComponentToolbarAction(page, 'renameGroup');
await page.locator('edgeless-group-title-editor').waitFor({
state: 'attached',
});
});
test('edit group title by dbclick', async ({ page }) => {
expect(await page.locator('edgeless-group-title-editor').count()).toBe(0);
const bound = await getSelectedBound(page);
await dblclickView(page, [bound[0] + 10, bound[1] - 10]);
await page.locator('edgeless-group-title-editor').waitFor({
state: 'attached',
});
await type(page, 'ABC');
await assertEdgelessCanvasText(page, 'ABC');
});
test('blur unmount group editor', async ({ page }) => {
const bound = await getSelectedBound(page);
await dblclickView(page, [bound[0] + 10, bound[1] - 10]);
await page.locator('edgeless-group-title-editor').waitFor({
state: 'attached',
});
await page.mouse.click(10, 10);
expect(await page.locator('edgeless-group-title-editor').count()).toBe(0);
});
test('enter unmount group editor', async ({ page }) => {
const bound = await getSelectedBound(page);
await dblclickView(page, [bound[0] + 10, bound[1] - 10]);
await page.locator('edgeless-group-title-editor').waitFor({
state: 'attached',
});
await pressEnter(page);
expect(await page.locator('edgeless-group-title-editor').count()).toBe(0);
});
});