test: assert current workspace flavour (#1664)

This commit is contained in:
Himself65
2023-03-22 23:22:29 -05:00
committed by GitHub
parent 35d4560e9f
commit 059d9e5de2
18 changed files with 66 additions and 7 deletions
+13 -1
View File
@@ -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
View File
@@ -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);
}
+2
View File
@@ -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);
});
});
+2
View File
@@ -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);
});
});
+2
View File
@@ -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);
});
});
+3
View File
@@ -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
View File
@@ -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);
});
});
+2
View File
@@ -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);
});
});
+2
View File
@@ -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);
});
});
+1 -1
View File
@@ -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
View File
@@ -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);
});
});
+1 -1
View File
@@ -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();
+8 -2
View File
@@ -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);
});
});