refactor(core): new workspace selector and create dialog (#10323)

This commit is contained in:
Cats Juice
2025-02-21 17:16:38 +08:00
committed by GitHub
parent 22e4bd8c20
commit 09cc5c392b
28 changed files with 760 additions and 563 deletions

View File

@@ -3,10 +3,8 @@ import {
clickNewPageButton,
getBlockSuiteEditorTitle,
} from '@affine-test/kit/utils/page-logic';
import {
clickSideBarCurrentWorkspaceBanner,
clickSideBarSettingButton,
} from '@affine-test/kit/utils/sidebar';
import { clickSideBarSettingButton } from '@affine-test/kit/utils/sidebar';
import { createLocalWorkspace } from '@affine-test/kit/utils/workspace';
import type { Page } from '@playwright/test';
import { expect } from '@playwright/test';
@@ -112,13 +110,7 @@ test('windows only check', async ({ page }) => {
test('delete workspace', async ({ page }) => {
await clickNewPageButton(page);
await clickSideBarCurrentWorkspaceBanner(page);
await page.getByTestId('new-workspace').click();
await page.getByTestId('create-workspace-input').fill('Delete Me');
await page.getByTestId('create-workspace-create-button').click();
// await page.getByTestId('create-workspace-continue-button').click({
// delay: 100,
// });
await createLocalWorkspace({ name: 'Delete Me' }, page);
await page.waitForTimeout(1000);
await clickSideBarSettingButton(page);
await page.getByTestId('workspace-setting:preference').click();

View File

@@ -7,6 +7,7 @@ import {
clickNewPageButton,
clickSideBarCurrentWorkspaceBanner,
} from '@affine-test/kit/utils/sidebar';
import { createLocalWorkspace } from '@affine-test/kit/utils/workspace';
import { expect } from '@playwright/test';
import fs from 'fs-extra';
@@ -106,12 +107,8 @@ test('export then add', async ({ page, appInfo, workspace }) => {
test('delete workspace and then restore it from backup', async ({ page }) => {
//#region 1. create a new workspace
await clickSideBarCurrentWorkspaceBanner(page);
const newWorkspaceName = 'new-test-name';
await page.getByTestId('new-workspace').click();
await page.getByTestId('create-workspace-input').fill(newWorkspaceName);
await page.getByTestId('create-workspace-create-button').click();
await createLocalWorkspace({ name: newWorkspaceName }, page);
//#endregion
//#region 2. create a page in the new workspace (will verify later if it is successfully recovered)

View File

@@ -4,6 +4,7 @@ import {
clickNewPageButton,
waitForEditorLoad,
} from '@affine-test/kit/utils/page-logic';
import { createLocalWorkspace } from '@affine-test/kit/utils/workspace';
import { expect } from '@playwright/test';
test('should create a page with a local first avatar and remove it', async ({
@@ -13,10 +14,7 @@ test('should create a page with a local first avatar and remove it', async ({
await openHomePage(page);
await waitForEditorLoad(page);
await clickNewPageButton(page);
await page.getByTestId('workspace-name').click();
await page.getByTestId('new-workspace').click();
await page.getByTestId('create-workspace-input').fill('Test Workspace 1');
await page.getByTestId('create-workspace-create-button').click();
await createLocalWorkspace({ name: 'Test Workspace 1' }, page);
await page.waitForTimeout(1000);
await page.getByTestId('workspace-name').click();
await page

View File

@@ -5,21 +5,13 @@ import {
openSettingModal,
openWorkspaceSettingPanel,
} from '@affine-test/kit/utils/setting';
import { clickSideBarCurrentWorkspaceBanner } from '@affine-test/kit/utils/sidebar';
import { createLocalWorkspace } from '@affine-test/kit/utils/workspace';
import { expect } from '@playwright/test';
test('Create new workspace, then delete it', async ({ page, workspace }) => {
await openHomePage(page);
await waitForEditorLoad(page);
await clickSideBarCurrentWorkspaceBanner(page);
await page.getByTestId('new-workspace').click();
await page.waitForTimeout(1000);
await page
.getByTestId('create-workspace-input')
.pressSequentially('Test Workspace', { delay: 50 });
const createButton = page.getByTestId('create-workspace-create-button');
await createButton.click();
await createButton.waitFor({ state: 'hidden' });
await createLocalWorkspace({ name: 'Test Workspace' }, page);
await page.waitForSelector('[data-testid="workspace-name"]');
expect(await page.getByTestId('workspace-name').textContent()).toBe(
@@ -72,11 +64,7 @@ test('Delete last workspace', async ({ page }) => {
await page.getByTestId('delete-workspace-confirm-button').click();
await openHomePage(page);
await expect(page.getByTestId('new-workspace')).toBeVisible();
await page.getByTestId('new-workspace').click();
await page
.locator('[data-testid="create-workspace-input"]')
.pressSequentially('Test Workspace');
await page.getByTestId('create-workspace-create-button').click();
await createLocalWorkspace({ name: 'Test Workspace' }, page, true);
await page.waitForTimeout(1000);
await page.waitForSelector('[data-testid="workspace-name"]');
await expect(page.getByTestId('workspace-name')).toHaveText('Test Workspace');

View File

@@ -15,9 +15,12 @@ export async function openWorkspaceListModal(page: Page) {
export async function createLocalWorkspace(
params: CreateWorkspaceParams,
page: Page
page: Page,
skipOpenWorkspaceListModal = false
) {
await openWorkspaceListModal(page);
if (!skipOpenWorkspaceListModal) {
await openWorkspaceListModal(page);
}
// open create workspace modal
await page.getByTestId('new-workspace').click();
@@ -30,6 +33,11 @@ export async function createLocalWorkspace(
await page.getByPlaceholder('Set a Workspace name').click();
await page.getByPlaceholder('Set a Workspace name').fill(params.name);
// select local server
await page.getByTestId('server-selector-trigger').click();
const serverSelectorList = page.getByTestId('server-selector-list');
await serverSelectorList.getByTestId('local').click();
// click create button
await page.getByTestId('create-workspace-create-button').click({
delay: 500,