mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-12 07:36:42 +08:00
test: assert current workspace flavour (#1664)
This commit is contained in:
@@ -28,9 +28,15 @@ import { useRouterTitle } from '../hooks/use-router-title';
|
||||
import { useWorkspaces } from '../hooks/use-workspaces';
|
||||
import { WorkspacePlugins } from '../plugins';
|
||||
import { ModalProvider } from '../providers/ModalProvider';
|
||||
import type { RemWorkspace } from '../shared';
|
||||
import { pathGenerator, publicPathGenerator } from '../shared';
|
||||
import { StyledPage, StyledToolWrapper, StyledWrapper } from './styles';
|
||||
|
||||
declare global {
|
||||
// eslint-disable-next-line no-var
|
||||
var currentWorkspace: RemWorkspace;
|
||||
}
|
||||
|
||||
const QuickSearchModal = dynamic(
|
||||
() => import('../components/pure/quick-search-modal')
|
||||
);
|
||||
@@ -94,9 +100,15 @@ export const WorkspaceLayoutInner: React.FC<React.PropsWithChildren> = ({
|
||||
const workspaces = useWorkspaces();
|
||||
|
||||
useEffect(() => {
|
||||
console.log(workspaces);
|
||||
logger.info('workspaces: ', workspaces);
|
||||
}, [workspaces]);
|
||||
|
||||
useEffect(() => {
|
||||
if (currentWorkspace) {
|
||||
globalThis.currentWorkspace = currentWorkspace;
|
||||
}
|
||||
}, [currentWorkspace]);
|
||||
|
||||
useEffect(() => {
|
||||
const providers = workspaces.flatMap(workspace =>
|
||||
workspace.providers.filter(provider => provider.background)
|
||||
|
||||
+4
-2
@@ -1,7 +1,9 @@
|
||||
import type { Page } from '@playwright/test';
|
||||
|
||||
import userA from '../fixtures/userA.json';
|
||||
import userB from '../fixtures/userB.json';
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||
const userA = require('../fixtures/userA.json');
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||
const userB = require('../fixtures/userB.json');
|
||||
|
||||
export async function createFakeUser() {
|
||||
try {
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import type { Page } from '@playwright/test';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
interface CreateWorkspaceParams {
|
||||
name: string;
|
||||
}
|
||||
@@ -20,3 +22,12 @@ export async function createWorkspace(
|
||||
// click create button
|
||||
return page.getByRole('button', { name: 'Create' }).click();
|
||||
}
|
||||
|
||||
export async function assertCurrentWorkspaceFlavour(
|
||||
flavour: 'affine' | 'local',
|
||||
page: Page
|
||||
) {
|
||||
// @ts-expect-error type globalThis.currentWorkspace is not defined in playwright context
|
||||
const actual = await page.evaluate(() => globalThis.currentWorkspace.flavour);
|
||||
expect(actual).toBe(flavour);
|
||||
}
|
||||
@@ -3,6 +3,7 @@ import { expect } from '@playwright/test';
|
||||
import { loadPage } from './libs/load-page';
|
||||
import { newPage } from './libs/page-logic';
|
||||
import { test } from './libs/playwright';
|
||||
import { assertCurrentWorkspaceFlavour } from './libs/workspace';
|
||||
|
||||
loadPage();
|
||||
|
||||
@@ -35,5 +36,6 @@ test.describe('Local first create page', () => {
|
||||
.getAttribute('src');
|
||||
// out user uploaded avatar
|
||||
expect(blobUrl).toContain('blob:');
|
||||
await assertCurrentWorkspaceFlavour('local', page);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -3,6 +3,7 @@ import { expect } from '@playwright/test';
|
||||
import { loadPage } from './libs/load-page';
|
||||
import { getBlockSuiteEditorTitle, newPage } from './libs/page-logic';
|
||||
import { test } from './libs/playwright';
|
||||
import { assertCurrentWorkspaceFlavour } from './libs/workspace';
|
||||
|
||||
loadPage();
|
||||
|
||||
@@ -47,5 +48,6 @@ test.describe('Local first delete page', () => {
|
||||
'Tips: Click Add to Favorites/Trash and the page will appear here.'
|
||||
)
|
||||
).not.toBeUndefined();
|
||||
await assertCurrentWorkspaceFlavour('local', page);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -3,6 +3,7 @@ import { expect } from '@playwright/test';
|
||||
import { loadPage } from './libs/load-page';
|
||||
import { test } from './libs/playwright';
|
||||
import { clickSideBarSettingButton } from './libs/sidebar';
|
||||
import { assertCurrentWorkspaceFlavour } from './libs/workspace';
|
||||
|
||||
loadPage();
|
||||
|
||||
@@ -23,5 +24,6 @@ test.describe('Local first delete workspace', () => {
|
||||
expect(await page.getByTestId('workspace-card').count()).toBe(0);
|
||||
await page.mouse.click(1, 1);
|
||||
expect(await page.getByTestId('workspace-card').count()).toBe(0);
|
||||
await assertCurrentWorkspaceFlavour('local', page);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -7,6 +7,7 @@ import {
|
||||
newPage,
|
||||
} from './libs/page-logic';
|
||||
import { test } from './libs/playwright';
|
||||
import { assertCurrentWorkspaceFlavour } from './libs/workspace';
|
||||
loadPage();
|
||||
|
||||
test.describe('Local first export page', () => {
|
||||
@@ -65,5 +66,6 @@ test.describe('Local first export page', () => {
|
||||
expect(download.suggestedFilename()).toBe(
|
||||
'this is a new page to export markdown content.md'
|
||||
);
|
||||
await assertCurrentWorkspaceFlavour('local', page);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -7,6 +7,7 @@ import {
|
||||
newPage,
|
||||
} from './libs/page-logic';
|
||||
import { test } from './libs/playwright';
|
||||
import { assertCurrentWorkspaceFlavour } from './libs/workspace';
|
||||
loadPage();
|
||||
|
||||
test.describe('Local first favorite and cancel favorite page', () => {
|
||||
@@ -24,6 +25,7 @@ test.describe('Local first favorite and cancel favorite page', () => {
|
||||
await clickPageMoreActions(page);
|
||||
const favoriteBtn = page.getByTestId('editor-option-menu-favorite');
|
||||
await favoriteBtn.click();
|
||||
await assertCurrentWorkspaceFlavour('local', page);
|
||||
});
|
||||
test('Cancel favorite', async ({ page }) => {
|
||||
await newPage(page);
|
||||
@@ -66,5 +68,6 @@ test.describe('Local first favorite and cancel favorite page', () => {
|
||||
'Tips: Click Add to Favorites/Trash and the page will appear here.'
|
||||
)
|
||||
).not.toBeUndefined();
|
||||
await assertCurrentWorkspaceFlavour('local', page);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -7,6 +7,7 @@ import {
|
||||
newPage,
|
||||
} from './libs/page-logic';
|
||||
import { test } from './libs/playwright';
|
||||
import { assertCurrentWorkspaceFlavour } from './libs/workspace';
|
||||
loadPage();
|
||||
|
||||
test.describe('Local first favorite items ui', () => {
|
||||
@@ -59,5 +60,6 @@ test.describe('Local first favorite items ui', () => {
|
||||
.getByText('Click Add to Favorites and the page will appear here.')
|
||||
.isVisible()
|
||||
).toBe(true);
|
||||
await assertCurrentWorkspaceFlavour('local', page);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -3,6 +3,7 @@ import { expect } from '@playwright/test';
|
||||
import { loadPage } from './libs/load-page';
|
||||
import { getBlockSuiteEditorTitle, newPage } from './libs/page-logic';
|
||||
import { test } from './libs/playwright';
|
||||
import { assertCurrentWorkspaceFlavour } from './libs/workspace';
|
||||
loadPage();
|
||||
|
||||
test.describe('local first new page', () => {
|
||||
@@ -11,6 +12,7 @@ test.describe('local first new page', () => {
|
||||
await newPage(page);
|
||||
const newPageId = page.url().split('/').reverse()[0];
|
||||
expect(newPageId).not.toBe(originPageId);
|
||||
await assertCurrentWorkspaceFlavour('local', page);
|
||||
});
|
||||
|
||||
test('click btn bew page and find it in all pages', async ({ page }) => {
|
||||
@@ -20,5 +22,6 @@ test.describe('local first new page', () => {
|
||||
await page.getByRole('link', { name: 'All pages' }).click();
|
||||
const cell = page.getByRole('cell', { name: 'this is a new page' });
|
||||
expect(cell).not.toBeUndefined();
|
||||
await assertCurrentWorkspaceFlavour('local', page);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -3,6 +3,7 @@ import { expect } from '@playwright/test';
|
||||
import { loadPage } from './libs/load-page';
|
||||
import { getBlockSuiteEditorTitle, newPage } from './libs/page-logic';
|
||||
import { test } from './libs/playwright';
|
||||
import { assertCurrentWorkspaceFlavour } from './libs/workspace';
|
||||
loadPage();
|
||||
|
||||
test.describe('local first new page', () => {
|
||||
@@ -26,5 +27,6 @@ test.describe('local first new page', () => {
|
||||
]);
|
||||
|
||||
expect(newTabPage.url()).toBe(newPageUrl);
|
||||
await assertCurrentWorkspaceFlavour('local', page);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -3,6 +3,7 @@ import { expect } from '@playwright/test';
|
||||
import { loadPage } from './libs/load-page';
|
||||
import { getBlockSuiteEditorTitle, newPage } from './libs/page-logic';
|
||||
import { test } from './libs/playwright';
|
||||
import { assertCurrentWorkspaceFlavour } from './libs/workspace';
|
||||
loadPage();
|
||||
|
||||
test.describe('Local first delete page', () => {
|
||||
@@ -47,5 +48,6 @@ test.describe('Local first delete page', () => {
|
||||
name: 'this is a new page to restore',
|
||||
});
|
||||
expect(restoreCell).not.toBeUndefined();
|
||||
await assertCurrentWorkspaceFlavour('local', page);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -7,6 +7,7 @@ import {
|
||||
newPage,
|
||||
} from './libs/page-logic';
|
||||
import { test } from './libs/playwright';
|
||||
import { assertCurrentWorkspaceFlavour } from './libs/workspace';
|
||||
loadPage();
|
||||
|
||||
test.describe('Local first delete page', () => {
|
||||
@@ -26,6 +27,7 @@ test.describe('Local first delete page', () => {
|
||||
await deleteBtn.click();
|
||||
const confirmTip = page.getByText('Delete page?');
|
||||
expect(confirmTip).not.toBeUndefined();
|
||||
await assertCurrentWorkspaceFlavour('local', page);
|
||||
});
|
||||
|
||||
test('New a page ,then go to all pages and show delete modal', async ({
|
||||
@@ -50,5 +52,6 @@ test.describe('Local first delete page', () => {
|
||||
await deleteBtn.click();
|
||||
const confirmTip = page.getByText('Delete page?');
|
||||
expect(confirmTip).not.toBeUndefined();
|
||||
await assertCurrentWorkspaceFlavour('local', page);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -3,6 +3,7 @@ import { expect } from '@playwright/test';
|
||||
import { loadPage } from './libs/load-page';
|
||||
import { getBlockSuiteEditorTitle, newPage } from './libs/page-logic';
|
||||
import { test } from './libs/playwright';
|
||||
import { assertCurrentWorkspaceFlavour } from './libs/workspace';
|
||||
loadPage();
|
||||
|
||||
test.describe('Local first trash page', () => {
|
||||
@@ -35,5 +36,6 @@ test.describe('Local first trash page', () => {
|
||||
expect(
|
||||
page.getByRole('cell', { name: 'this is a new page to delete' })
|
||||
).not.toBeUndefined();
|
||||
await assertCurrentWorkspaceFlavour('local', page);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -3,7 +3,7 @@ import { expect } from '@playwright/test';
|
||||
import { loadPage } from './libs/load-page';
|
||||
import { test } from './libs/playwright';
|
||||
import { clickSideBarAllPageButton } from './libs/sidebar';
|
||||
import { createWorkspace } from './libs/workspace-logic';
|
||||
import { createWorkspace } from './libs/workspace';
|
||||
loadPage();
|
||||
|
||||
test.describe('Local first workspace list', () => {
|
||||
|
||||
@@ -3,6 +3,7 @@ import { expect } from '@playwright/test';
|
||||
import { loadPage } from './libs/load-page';
|
||||
import { test } from './libs/playwright';
|
||||
import { clickSideBarCurrentWorkspaceBanner } from './libs/sidebar';
|
||||
import { assertCurrentWorkspaceFlavour } from './libs/workspace';
|
||||
|
||||
loadPage();
|
||||
|
||||
@@ -10,6 +11,7 @@ test.describe('Local first default workspace', () => {
|
||||
test('preset workspace name', async ({ page }) => {
|
||||
const workspaceName = page.getByTestId('workspace-name');
|
||||
expect(await workspaceName.textContent()).toBe('Demo Workspace');
|
||||
await assertCurrentWorkspaceFlavour('local', page);
|
||||
});
|
||||
|
||||
// test('default workspace avatar', async ({ page }) => {
|
||||
@@ -26,5 +28,6 @@ test.describe('Language switch', () => {
|
||||
await expect(languageMenuButton).toBeVisible();
|
||||
const actual = await languageMenuButton.innerText();
|
||||
expect(actual).toEqual('English');
|
||||
await assertCurrentWorkspaceFlavour('local', page);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -2,7 +2,7 @@ import { expect } from '@playwright/test';
|
||||
|
||||
import { loadPage } from './libs/load-page';
|
||||
import { test } from './libs/playwright';
|
||||
import { createWorkspace } from './libs/workspace-logic';
|
||||
import { createWorkspace } from './libs/workspace';
|
||||
|
||||
loadPage();
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import userA from '../fixtures/userA.json';
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||
const userA = require('../fixtures/userA.json');
|
||||
import { test } from '../libs/playwright';
|
||||
import { clickCollaborationPanel } from '../libs/setting';
|
||||
import {
|
||||
@@ -10,7 +11,10 @@ import {
|
||||
clickSideBarSettingButton,
|
||||
} from '../libs/sidebar';
|
||||
import { createFakeUser, loginUser, openHomePage } from '../libs/utils';
|
||||
import { createWorkspace } from '../libs/workspace-logic';
|
||||
import {
|
||||
assertCurrentWorkspaceFlavour,
|
||||
createWorkspace,
|
||||
} from '../libs/workspace';
|
||||
|
||||
test.describe('affine workspace', () => {
|
||||
test('should login with user A', async ({ page }) => {
|
||||
@@ -21,6 +25,7 @@ test.describe('affine workspace', () => {
|
||||
const footer = page.locator('[data-testid="workspace-list-modal-footer"]');
|
||||
expect(await footer.getByText(userA.name).isVisible()).toBe(true);
|
||||
expect(await footer.getByText(userA.email).isVisible()).toBe(true);
|
||||
await assertCurrentWorkspaceFlavour('local', page);
|
||||
});
|
||||
|
||||
test('should enable affine workspace successfully', async ({ page }) => {
|
||||
@@ -43,5 +48,6 @@ test.describe('affine workspace', () => {
|
||||
await page.locator('[data-block-is-title="true"]').type('Hello, world!', {
|
||||
delay: 50,
|
||||
});
|
||||
await assertCurrentWorkspaceFlavour('affine', page);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user