import type { Page } from '@playwright/test'; import { expect } from '@playwright/test'; import { clickCollaborationPanel } from './setting'; import { clickSideBarSettingButton } from './sidebar'; interface CreateWorkspaceParams { name: string; } export async function openWorkspaceListModal(page: Page) { const workspaceName = page.getByTestId('workspace-name'); await workspaceName.click(); } export async function createWorkspace( params: CreateWorkspaceParams, page: Page ) { await openWorkspaceListModal(page); // open create workspace modal await page.locator('.add-icon').click(); // input workspace name await page.getByPlaceholder('Set a Workspace name').click(); await page.getByPlaceholder('Set a Workspace name').fill(params.name); // click create button return page.getByRole('button', { name: 'Create' }).click(); } export async function assertCurrentWorkspaceFlavour( flavour: 'affine' | 'local', page: Page ) { const actual = await page.evaluate(() => globalThis.currentWorkspace.flavour); expect(actual).toBe(flavour); } export async function enableAffineCloudWorkspace(page: Page) { await clickSideBarSettingButton(page); await page.waitForTimeout(50); await clickCollaborationPanel(page); await page.getByTestId('local-workspace-enable-cloud-button').click(); await page.getByTestId('confirm-enable-cloud-button').click(); await page.waitForSelector("[data-testid='member-length']", { timeout: 20000, }); }