mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-13 21:05:19 +00:00
117 lines
3.3 KiB
TypeScript
117 lines
3.3 KiB
TypeScript
import type { Page } from '@playwright/test';
|
|
|
|
import {
|
|
captureHistory,
|
|
clickView,
|
|
createShapeElement,
|
|
edgelessCommonSetup,
|
|
getFirstContainerId,
|
|
redoByKeyboard,
|
|
selectAllByKeyboard,
|
|
Shape,
|
|
shiftClickView,
|
|
triggerComponentToolbarAction,
|
|
undoByKeyboard,
|
|
} from '../../utils/actions/index.js';
|
|
import {
|
|
assertContainerChildCount,
|
|
assertContainerIds,
|
|
assertSelectedBound,
|
|
} 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('release from group', () => {
|
|
let outterGroupId: string;
|
|
|
|
test.beforeEach(async ({ page }) => {
|
|
await init(page);
|
|
await createShapeElement(page, [200, 0], [300, 100], Shape.Square);
|
|
await selectAllByKeyboard(page);
|
|
await triggerComponentToolbarAction(page, 'addGroup');
|
|
|
|
outterGroupId = await getFirstContainerId(page);
|
|
});
|
|
|
|
test('release element from group', async ({ page }) => {
|
|
await clickView(page, [50, 50]);
|
|
await captureHistory(page);
|
|
await triggerComponentToolbarAction(page, 'releaseFromGroup');
|
|
await assertContainerIds(page, {
|
|
[outterGroupId]: 2,
|
|
null: 2,
|
|
});
|
|
await assertContainerChildCount(page, outterGroupId, 2);
|
|
await assertSelectedBound(page, [0, 0, 100, 100]);
|
|
|
|
// undo the release
|
|
await undoByKeyboard(page);
|
|
await assertContainerIds(page, {
|
|
[outterGroupId]: 3,
|
|
null: 1,
|
|
});
|
|
await assertContainerChildCount(page, outterGroupId, 3);
|
|
await assertSelectedBound(page, [0, 0, 100, 100]);
|
|
|
|
// redo the release
|
|
await redoByKeyboard(page);
|
|
await assertContainerIds(page, {
|
|
[outterGroupId]: 2,
|
|
null: 2,
|
|
});
|
|
await assertContainerChildCount(page, outterGroupId, 2);
|
|
await assertSelectedBound(page, [0, 0, 100, 100]);
|
|
});
|
|
|
|
test('release group from group', async ({ page }) => {
|
|
await clickView(page, [50, 50]);
|
|
await shiftClickView(page, [150, 50]);
|
|
await triggerComponentToolbarAction(page, 'addGroup');
|
|
await captureHistory(page);
|
|
const groupId = await getFirstContainerId(page, [outterGroupId]);
|
|
|
|
await assertContainerIds(page, {
|
|
[groupId]: 2,
|
|
[outterGroupId]: 2,
|
|
null: 1,
|
|
});
|
|
await assertContainerChildCount(page, groupId, 2);
|
|
await assertContainerChildCount(page, outterGroupId, 2);
|
|
|
|
// release group from group
|
|
await triggerComponentToolbarAction(page, 'releaseFromGroup');
|
|
await assertContainerIds(page, {
|
|
[groupId]: 2,
|
|
[outterGroupId]: 1,
|
|
null: 2,
|
|
});
|
|
await assertContainerChildCount(page, outterGroupId, 1);
|
|
await assertContainerChildCount(page, groupId, 2);
|
|
|
|
// undo the release
|
|
await undoByKeyboard(page);
|
|
await assertContainerIds(page, {
|
|
[groupId]: 2,
|
|
[outterGroupId]: 2,
|
|
null: 1,
|
|
});
|
|
await assertContainerChildCount(page, groupId, 2);
|
|
await assertContainerChildCount(page, outterGroupId, 2);
|
|
|
|
// redo the release
|
|
await redoByKeyboard(page);
|
|
await assertContainerIds(page, {
|
|
[groupId]: 2,
|
|
[outterGroupId]: 1,
|
|
null: 2,
|
|
});
|
|
await assertContainerChildCount(page, outterGroupId, 1);
|
|
await assertContainerChildCount(page, groupId, 2);
|
|
});
|
|
});
|