mirror of
https://github.com/toeverything/AFFiNE.git
synced 2024-12-23 05:42:30 +03:00
146 lines
4.3 KiB
TypeScript
146 lines
4.3 KiB
TypeScript
import { test } from '@affine-test/kit/playwright';
|
|
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
|
import {
|
|
clickNewPageButton,
|
|
dragTo,
|
|
getBlockSuiteEditorTitle,
|
|
waitForEditorLoad,
|
|
} from '@affine-test/kit/utils/page-logic';
|
|
import { clickSideBarAllPageButton } from '@affine-test/kit/utils/sidebar';
|
|
import { expect, type Locator, type Page } from '@playwright/test';
|
|
|
|
const dragToFavourites = async (
|
|
page: Page,
|
|
dragItem: Locator,
|
|
pageId: string
|
|
) => {
|
|
const favourites = page.getByTestId('favourites');
|
|
await dragTo(page, dragItem, favourites);
|
|
const favouritePage = page.getByTestId(`favourite-page-${pageId}`);
|
|
expect(favouritePage).not.toBeUndefined();
|
|
return favouritePage;
|
|
};
|
|
|
|
const dragToCollection = async (page: Page, dragItem: Locator) => {
|
|
await page.getByTestId('slider-bar-add-collection-button').click();
|
|
const input = page.getByTestId('input-collection-title');
|
|
await expect(input).toBeVisible();
|
|
await input.fill('test collection');
|
|
await page.getByTestId('save-collection').click();
|
|
const collection = page.getByTestId('collection-item');
|
|
expect(collection).not.toBeUndefined();
|
|
await clickSideBarAllPageButton(page);
|
|
await dragTo(page, dragItem, collection);
|
|
await page.waitForTimeout(500);
|
|
await collection.getByTestId('fav-collapsed-button').click();
|
|
const collectionPage = page.getByTestId('collection-page');
|
|
expect(collectionPage).not.toBeUndefined();
|
|
return collectionPage;
|
|
};
|
|
|
|
const dragToTrash = async (page: Page, title: string, dragItem: Locator) => {
|
|
// drag to trash
|
|
await dragTo(page, dragItem, page.getByTestId('trash-page'));
|
|
const confirmTip = page.getByText('Delete page?');
|
|
expect(confirmTip).not.toBeUndefined();
|
|
|
|
await page.getByRole('button', { name: 'Delete' }).click();
|
|
|
|
await expect(
|
|
page.getByText(title),
|
|
'The deleted post is no longer on the All Page list'
|
|
).toHaveCount(0);
|
|
await page.waitForTimeout(500);
|
|
await page.getByTestId('trash-page').click();
|
|
|
|
await expect(
|
|
page.getByText(title),
|
|
'The deleted post exists in the Trash list'
|
|
).toHaveCount(1);
|
|
};
|
|
|
|
test('drag a page from "All pages" list to favourites, then drag to trash', async ({
|
|
page,
|
|
}) => {
|
|
const title = 'this is a new page to drag';
|
|
{
|
|
await openHomePage(page);
|
|
await waitForEditorLoad(page);
|
|
await clickNewPageButton(page);
|
|
await getBlockSuiteEditorTitle(page).fill(title);
|
|
}
|
|
const pageId = page.url().split('/').reverse()[0];
|
|
await clickSideBarAllPageButton(page);
|
|
await page.waitForTimeout(500);
|
|
|
|
const favouritePage = await dragToFavourites(
|
|
page,
|
|
page.locator(`[role="button"]:has-text("${title}")`),
|
|
pageId
|
|
);
|
|
|
|
await dragToTrash(page, title, favouritePage);
|
|
});
|
|
|
|
test('drag a page from "All pages" list to collections, then drag to trash', async ({
|
|
page,
|
|
}) => {
|
|
const title = 'this is a new page to drag';
|
|
{
|
|
await openHomePage(page);
|
|
await waitForEditorLoad(page);
|
|
await clickNewPageButton(page);
|
|
await getBlockSuiteEditorTitle(page).fill(title);
|
|
}
|
|
await clickSideBarAllPageButton(page);
|
|
await page.waitForTimeout(500);
|
|
|
|
const collectionPage = await dragToCollection(
|
|
page,
|
|
page.locator(`[role="button"]:has-text("${title}")`)
|
|
);
|
|
|
|
await dragToTrash(page, title, collectionPage);
|
|
});
|
|
|
|
test('drag a page from "All pages" list to trash', async ({ page }) => {
|
|
const title = 'this is a new page to drag';
|
|
{
|
|
await openHomePage(page);
|
|
await waitForEditorLoad(page);
|
|
await clickNewPageButton(page);
|
|
await getBlockSuiteEditorTitle(page).fill(title);
|
|
}
|
|
await clickSideBarAllPageButton(page);
|
|
await page.waitForTimeout(500);
|
|
|
|
await dragToTrash(
|
|
page,
|
|
title,
|
|
page.locator(`[role="button"]:has-text("${title}")`)
|
|
);
|
|
});
|
|
|
|
test('drag a page from favourites to collection', async ({ page }) => {
|
|
const title = 'this is a new page to drag';
|
|
{
|
|
await openHomePage(page);
|
|
await waitForEditorLoad(page);
|
|
await clickNewPageButton(page);
|
|
await getBlockSuiteEditorTitle(page).fill(title);
|
|
}
|
|
const pageId = page.url().split('/').reverse()[0];
|
|
await clickSideBarAllPageButton(page);
|
|
await page.waitForTimeout(500);
|
|
|
|
// drag to favourites
|
|
const favouritePage = await dragToFavourites(
|
|
page,
|
|
page.locator(`[role="button"]:has-text("${title}")`),
|
|
pageId
|
|
);
|
|
|
|
// drag to collections
|
|
await dragToCollection(page, favouritePage);
|
|
});
|