AFFiNE/tests/libs/workspace.ts

51 lines
1.5 KiB
TypeScript

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,
});
}