mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-04 00:28:33 +00:00
refactor: move test utils to package (#3206)
This commit is contained in:
1
.github/workflows/build.yml
vendored
1
.github/workflows/build.yml
vendored
@@ -232,6 +232,7 @@ jobs:
|
||||
|
||||
- name: Run playwright tests
|
||||
run: yarn e2e --forbid-only --shard=${{ matrix.shard }}/${{ strategy.job-total }}
|
||||
working-directory: tests/affine-local
|
||||
env:
|
||||
COVERAGE: true
|
||||
|
||||
|
||||
7
.gitignore
vendored
7
.gitignore
vendored
@@ -60,9 +60,10 @@ out/
|
||||
storybook-static
|
||||
i18n-generated.ts
|
||||
|
||||
/test-results/
|
||||
/playwright-report/
|
||||
/playwright/.cache/
|
||||
test-results
|
||||
playwright-report
|
||||
playwright/.cache
|
||||
download
|
||||
|
||||
# Cache
|
||||
.eslintcache
|
||||
|
||||
11
nx.json
11
nx.json
@@ -88,17 +88,6 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"e2e:coverage": {
|
||||
"outputs": ["{workspaceRoot}/.nyc_output", "{projectRoot}/test-results"],
|
||||
"inputs": [
|
||||
{
|
||||
"runtime": "node -v"
|
||||
},
|
||||
{
|
||||
"runtime": "yarn playwright --version"
|
||||
}
|
||||
]
|
||||
},
|
||||
"test": {
|
||||
"outputs": ["{workspaceRoot}/.nyc_output"],
|
||||
"inputs": [
|
||||
|
||||
@@ -11,7 +11,8 @@
|
||||
"packages/*",
|
||||
"tests/fixtures",
|
||||
"tests/kit",
|
||||
"tests/affine-legacy/*"
|
||||
"tests/affine-legacy/*",
|
||||
"tests/affine-local"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18.16.1 <19.0.0"
|
||||
@@ -35,8 +36,6 @@
|
||||
"lint:prettier:fix": "prettier --ignore-unknown --cache --write .",
|
||||
"lint": "yarn lint:eslint && yarn lint:prettier",
|
||||
"lint:fix": "yarn lint:eslint:fix && yarn lint:prettier:fix",
|
||||
"e2e": "playwright test",
|
||||
"e2e:coverage": "COVERAGE=true yarn e2e --forbid-only",
|
||||
"test": "ENABLE_PRELOADING=false vitest --run",
|
||||
"test:ui": "ENABLE_PRELOADING=false vitest --ui",
|
||||
"test:coverage": "ENABLE_PRELOADING=false vitest run --coverage",
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import type { Page } from '@playwright/test';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import {
|
||||
changeFilter,
|
||||
checkDatePicker,
|
||||
@@ -15,14 +12,16 @@ import {
|
||||
selectDateFromDatePicker,
|
||||
selectMonthFromMonthPicker,
|
||||
selectTag,
|
||||
} from '../libs/filter';
|
||||
import { openHomePage } from '../libs/load-page';
|
||||
} from '@affine-test/kit/utils/filter';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import {
|
||||
closeDownloadTip,
|
||||
getBlockSuiteEditorTitle,
|
||||
waitEditorLoad,
|
||||
} from '../libs/page-logic';
|
||||
import { clickSideBarAllPageButton } from '../libs/sidebar';
|
||||
} from '@affine-test/kit/utils/page-logic';
|
||||
import { clickSideBarAllPageButton } from '@affine-test/kit/utils/sidebar';
|
||||
import type { Page } from '@playwright/test';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
function getAllPage(page: Page) {
|
||||
const newPageButton = page
|
||||
@@ -1,8 +1,7 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
|
||||
import { checkBlockHub } from '../../libs/editor';
|
||||
import { openHomePage } from '../../libs/load-page';
|
||||
import { newPage, waitEditorLoad } from '../../libs/page-logic';
|
||||
import { checkBlockHub } from '@affine-test/kit/utils/editor';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import { newPage, waitEditorLoad } from '@affine-test/kit/utils/page-logic';
|
||||
|
||||
test('block-hub should work', async ({ page }) => {
|
||||
await openHomePage(page);
|
||||
@@ -1,9 +1,8 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import { newPage, waitEditorLoad } from '@affine-test/kit/utils/page-logic';
|
||||
import type { Page } from '@playwright/test';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage } from '../../libs/load-page';
|
||||
import { newPage, waitEditorLoad } from '../../libs/page-logic';
|
||||
const addDatabase = async (page: Page) => {
|
||||
await page.keyboard.press('/', { delay: 50 });
|
||||
await page.keyboard.press('d');
|
||||
@@ -1,12 +1,15 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import {
|
||||
clickPageMoreActions,
|
||||
waitEditorLoad,
|
||||
} from '@affine-test/kit/utils/page-logic';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage } from '../libs/load-page';
|
||||
import { clickPageMoreActions, waitEditorLoad } from '../libs/page-logic';
|
||||
|
||||
test('Switch to edgeless by switch edgeless item', async ({ page }) => {
|
||||
async function getCount(): Promise<number> {
|
||||
return page.evaluate(() => {
|
||||
// @ts-expect-error
|
||||
return globalThis.__toastCount;
|
||||
});
|
||||
}
|
||||
@@ -14,8 +17,10 @@ test('Switch to edgeless by switch edgeless item', async ({ page }) => {
|
||||
await waitEditorLoad(page);
|
||||
const btn = await page.getByTestId('switch-edgeless-mode-button');
|
||||
await page.evaluate(() => {
|
||||
// @ts-expect-error
|
||||
globalThis.__toastCount = 0;
|
||||
window.addEventListener('affine-toast:emit', () => {
|
||||
// @ts-expect-error
|
||||
globalThis.__toastCount++;
|
||||
});
|
||||
});
|
||||
@@ -1,9 +1,8 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import { waitEditorLoad } from '@affine-test/kit/utils/page-logic';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage } from '../libs/load-page';
|
||||
import { waitEditorLoad } from '../libs/page-logic';
|
||||
|
||||
test('Click right-bottom corner contact icon', async ({ page }) => {
|
||||
await openHomePage(page);
|
||||
await waitEditorLoad(page);
|
||||
@@ -5,6 +5,7 @@ test('should have page0', async ({ page }) => {
|
||||
await page.goto('http://localhost:8080/_debug/init-page.html');
|
||||
await page.waitForSelector('v-line');
|
||||
const pageId = await page.evaluate(async () => {
|
||||
// @ts-expect-error
|
||||
return globalThis.page.id;
|
||||
});
|
||||
expect(pageId).toBe('page0');
|
||||
@@ -1,9 +1,8 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import { waitEditorLoad } from '@affine-test/kit/utils/page-logic';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage } from '../libs/load-page';
|
||||
import { waitEditorLoad } from '../libs/page-logic';
|
||||
|
||||
test('drag a page from "All pages" list onto the "Trash" folder in the sidebar to move it to trash list', async ({
|
||||
page,
|
||||
}) => {
|
||||
@@ -1,13 +1,12 @@
|
||||
import type { Page } from '@playwright/test';
|
||||
import { expect, test } from '@playwright/test';
|
||||
import fs from 'fs';
|
||||
|
||||
import { openHomePage } from '../libs/load-page';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import {
|
||||
getBlockSuiteEditorTitle,
|
||||
newPage,
|
||||
waitEditorLoad,
|
||||
} from '../libs/page-logic';
|
||||
} from '@affine-test/kit/utils/page-logic';
|
||||
import type { Page } from '@playwright/test';
|
||||
import { expect, test } from '@playwright/test';
|
||||
import fs from 'fs';
|
||||
|
||||
async function importImage(page: Page, url: string) {
|
||||
await page.evaluate(
|
||||
@@ -1,9 +1,8 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import { waitEditorLoad } from '@affine-test/kit/utils/page-logic';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage } from '../libs/load-page';
|
||||
import { waitEditorLoad } from '../libs/page-logic';
|
||||
|
||||
test('Collapse Sidebar', async ({ page }) => {
|
||||
await openHomePage(page);
|
||||
await waitEditorLoad(page);
|
||||
@@ -1,9 +1,10 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { expect } from '@playwright/test';
|
||||
import { resolve } from 'node:path';
|
||||
|
||||
import { openHomePage } from '../libs/load-page';
|
||||
import { newPage, waitEditorLoad } from '../libs/page-logic';
|
||||
import { assertCurrentWorkspaceFlavour } from '../libs/workspace';
|
||||
import { rootDir, test } from '@affine-test/kit/playwright';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import { newPage, waitEditorLoad } from '@affine-test/kit/utils/page-logic';
|
||||
import { assertCurrentWorkspaceFlavour } from '@affine-test/kit/utils/workspace';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
test('should create a page with a local first avatar', async ({ page }) => {
|
||||
await openHomePage(page);
|
||||
@@ -21,7 +22,7 @@ test('should create a page with a local first avatar', async ({ page }) => {
|
||||
await page.getByText('current').click();
|
||||
await page
|
||||
.getByTestId('upload-avatar')
|
||||
.setInputFiles('./tests/fixtures/smile.png');
|
||||
.setInputFiles(resolve(rootDir, 'tests', 'fixtures', 'smile.png'));
|
||||
await page.mouse.click(0, 0);
|
||||
await page.getByTestId('workspace-name').click();
|
||||
await page.getByTestId('workspace-card').nth(0).click();
|
||||
@@ -1,15 +1,17 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import type { Page } from '@playwright/test';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { checkDatePicker, selectDateFromDatePicker } from '../libs/filter';
|
||||
import { openHomePage } from '../libs/load-page';
|
||||
import {
|
||||
checkDatePicker,
|
||||
selectDateFromDatePicker,
|
||||
} from '@affine-test/kit/utils/filter';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import {
|
||||
closeDownloadTip,
|
||||
getBlockSuiteEditorTitle,
|
||||
newPage,
|
||||
waitEditorLoad,
|
||||
} from '../libs/page-logic';
|
||||
} from '@affine-test/kit/utils/page-logic';
|
||||
import type { Page } from '@playwright/test';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
const createAndPinCollection = async (
|
||||
page: Page,
|
||||
@@ -1,13 +1,12 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage } from '../libs/load-page';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import {
|
||||
getBlockSuiteEditorTitle,
|
||||
newPage,
|
||||
waitEditorLoad,
|
||||
} from '../libs/page-logic';
|
||||
import { assertCurrentWorkspaceFlavour } from '../libs/workspace';
|
||||
} from '@affine-test/kit/utils/page-logic';
|
||||
import { assertCurrentWorkspaceFlavour } from '@affine-test/kit/utils/workspace';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
test('New a page , then delete it in all pages, permanently delete it', async ({
|
||||
page,
|
||||
@@ -1,13 +1,12 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import { waitEditorLoad } from '@affine-test/kit/utils/page-logic';
|
||||
import { openWorkspaceSettingPanel } from '@affine-test/kit/utils/setting';
|
||||
import { openSettingModal } from '@affine-test/kit/utils/setting';
|
||||
import { clickSideBarCurrentWorkspaceBanner } from '@affine-test/kit/utils/sidebar';
|
||||
import { assertCurrentWorkspaceFlavour } from '@affine-test/kit/utils/workspace';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage } from '../libs/load-page';
|
||||
import { waitEditorLoad } from '../libs/page-logic';
|
||||
import { openWorkspaceSettingPanel } from '../libs/setting';
|
||||
import { openSettingModal } from '../libs/setting';
|
||||
import { clickSideBarCurrentWorkspaceBanner } from '../libs/sidebar';
|
||||
import { assertCurrentWorkspaceFlavour } from '../libs/workspace';
|
||||
|
||||
test('Create new workspace, then delete it', async ({ page }) => {
|
||||
await openHomePage(page);
|
||||
await waitEditorLoad(page);
|
||||
@@ -1,14 +1,13 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage } from '../libs/load-page';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import {
|
||||
clickPageMoreActions,
|
||||
getBlockSuiteEditorTitle,
|
||||
newPage,
|
||||
waitEditorLoad,
|
||||
} from '../libs/page-logic';
|
||||
import { assertCurrentWorkspaceFlavour } from '../libs/workspace';
|
||||
} from '@affine-test/kit/utils/page-logic';
|
||||
import { assertCurrentWorkspaceFlavour } from '@affine-test/kit/utils/workspace';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
test.skip('New a page ,then open it and export html', async ({ page }) => {
|
||||
await openHomePage(page);
|
||||
@@ -1,15 +1,14 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage } from '../libs/load-page';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import {
|
||||
clickPageMoreActions,
|
||||
getBlockSuiteEditorTitle,
|
||||
newPage,
|
||||
waitEditorLoad,
|
||||
} from '../libs/page-logic';
|
||||
import { waitForLogMessage } from '../libs/utils';
|
||||
import { assertCurrentWorkspaceFlavour } from '../libs/workspace';
|
||||
} from '@affine-test/kit/utils/page-logic';
|
||||
import { waitForLogMessage } from '@affine-test/kit/utils/utils';
|
||||
import { assertCurrentWorkspaceFlavour } from '@affine-test/kit/utils/workspace';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
test('New a page and open it ,then favorite it', async ({ page }) => {
|
||||
await openHomePage(page);
|
||||
@@ -1,14 +1,13 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage } from '../libs/load-page';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import {
|
||||
clickPageMoreActions,
|
||||
createLinkedPage,
|
||||
getBlockSuiteEditorTitle,
|
||||
newPage,
|
||||
waitEditorLoad,
|
||||
} from '../libs/page-logic';
|
||||
} from '@affine-test/kit/utils/page-logic';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
test('Show favorite items in sidebar', async ({ page }) => {
|
||||
await openHomePage(page);
|
||||
@@ -1,13 +1,12 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage } from '../libs/load-page';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import {
|
||||
getBlockSuiteEditorTitle,
|
||||
newPage,
|
||||
waitEditorLoad,
|
||||
} from '../libs/page-logic';
|
||||
import { assertCurrentWorkspaceFlavour } from '../libs/workspace';
|
||||
} from '@affine-test/kit/utils/page-logic';
|
||||
import { assertCurrentWorkspaceFlavour } from '@affine-test/kit/utils/workspace';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
test('click btn new page', async ({ page }) => {
|
||||
await openHomePage(page);
|
||||
@@ -1,13 +1,12 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage } from '../libs/load-page';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import {
|
||||
getBlockSuiteEditorTitle,
|
||||
newPage,
|
||||
waitEditorLoad,
|
||||
} from '../libs/page-logic';
|
||||
import { assertCurrentWorkspaceFlavour } from '../libs/workspace';
|
||||
} from '@affine-test/kit/utils/page-logic';
|
||||
import { assertCurrentWorkspaceFlavour } from '@affine-test/kit/utils/workspace';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
test('click btn bew page and open in tab', async ({ page }) => {
|
||||
await openHomePage(page);
|
||||
@@ -1,13 +1,12 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage } from '../libs/load-page';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import {
|
||||
getBlockSuiteEditorTitle,
|
||||
newPage,
|
||||
waitEditorLoad,
|
||||
} from '../libs/page-logic';
|
||||
import { assertCurrentWorkspaceFlavour } from '../libs/workspace';
|
||||
} from '@affine-test/kit/utils/page-logic';
|
||||
import { assertCurrentWorkspaceFlavour } from '@affine-test/kit/utils/workspace';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
test('New a page , then delete it in all pages, restore it', async ({
|
||||
page,
|
||||
@@ -1,14 +1,13 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage } from '../libs/load-page';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import {
|
||||
clickPageMoreActions,
|
||||
getBlockSuiteEditorTitle,
|
||||
newPage,
|
||||
waitEditorLoad,
|
||||
} from '../libs/page-logic';
|
||||
import { assertCurrentWorkspaceFlavour } from '../libs/workspace';
|
||||
} from '@affine-test/kit/utils/page-logic';
|
||||
import { assertCurrentWorkspaceFlavour } from '@affine-test/kit/utils/workspace';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
test('New a page ,then open it and show delete modal', async ({ page }) => {
|
||||
await openHomePage(page);
|
||||
@@ -1,13 +1,12 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage } from '../libs/load-page';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import {
|
||||
getBlockSuiteEditorTitle,
|
||||
newPage,
|
||||
waitEditorLoad,
|
||||
} from '../libs/page-logic';
|
||||
import { assertCurrentWorkspaceFlavour } from '../libs/workspace';
|
||||
} from '@affine-test/kit/utils/page-logic';
|
||||
import { assertCurrentWorkspaceFlavour } from '@affine-test/kit/utils/workspace';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
test('New a page , then delete it in all pages, finally find it in trash', async ({
|
||||
page,
|
||||
@@ -1,11 +1,13 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import { waitEditorLoad } from '@affine-test/kit/utils/page-logic';
|
||||
import { clickSideBarAllPageButton } from '@affine-test/kit/utils/sidebar';
|
||||
import {
|
||||
createWorkspace,
|
||||
openWorkspaceListModal,
|
||||
} from '@affine-test/kit/utils/workspace';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage } from '../libs/load-page';
|
||||
import { waitEditorLoad } from '../libs/page-logic';
|
||||
import { clickSideBarAllPageButton } from '../libs/sidebar';
|
||||
import { createWorkspace, openWorkspaceListModal } from '../libs/workspace';
|
||||
|
||||
test('just one item in the workspace list at first', async ({ page }) => {
|
||||
await openHomePage(page);
|
||||
await waitEditorLoad(page);
|
||||
@@ -1,10 +1,9 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import { waitEditorLoad } from '@affine-test/kit/utils/page-logic';
|
||||
import { assertCurrentWorkspaceFlavour } from '@affine-test/kit/utils/workspace';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage } from '../libs/load-page';
|
||||
import { waitEditorLoad } from '../libs/page-logic';
|
||||
import { assertCurrentWorkspaceFlavour } from '../libs/workspace';
|
||||
|
||||
test('preset workspace name', async ({ page }) => {
|
||||
await openHomePage(page);
|
||||
await waitEditorLoad(page);
|
||||
@@ -1,10 +1,9 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import { waitEditorLoad } from '@affine-test/kit/utils/page-logic';
|
||||
import { createWorkspace } from '@affine-test/kit/utils/workspace';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage } from '../libs/load-page';
|
||||
import { waitEditorLoad } from '../libs/page-logic';
|
||||
import { createWorkspace } from '../libs/workspace';
|
||||
|
||||
test('Open last workspace when back to affine', async ({ page }) => {
|
||||
await openHomePage(page);
|
||||
await waitEditorLoad(page);
|
||||
@@ -1,10 +1,9 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { withCtrlOrMeta } from '@affine-test/kit/utils/keyboard';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import { newPage, waitEditorLoad } from '@affine-test/kit/utils/page-logic';
|
||||
import { expect, type Page } from '@playwright/test';
|
||||
|
||||
import { withCtrlOrMeta } from '../libs/keyboard';
|
||||
import { openHomePage } from '../libs/load-page';
|
||||
import { newPage, waitEditorLoad } from '../libs/page-logic';
|
||||
|
||||
const openQuickSearchByShortcut = async (page: Page) =>
|
||||
await withCtrlOrMeta(page, () => page.keyboard.press('k', { delay: 50 }));
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { openHomePage, webUrl } from '@affine-test/kit/utils/load-page';
|
||||
import { waitEditorLoad } from '@affine-test/kit/utils/page-logic';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage, webUrl } from '../libs/load-page';
|
||||
import { waitEditorLoad } from '../libs/page-logic';
|
||||
|
||||
test('goto not found page', async ({ page }) => {
|
||||
await openHomePage(page);
|
||||
await waitEditorLoad(page);
|
||||
@@ -1,15 +1,14 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage } from '../libs/load-page';
|
||||
import { waitEditorLoad } from '../libs/page-logic';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import { waitEditorLoad } from '@affine-test/kit/utils/page-logic';
|
||||
import {
|
||||
openAboutPanel,
|
||||
openAppearancePanel,
|
||||
openSettingModal,
|
||||
openShortcutsPanel,
|
||||
} from '../libs/setting';
|
||||
import { createWorkspace } from '../libs/workspace';
|
||||
} from '@affine-test/kit/utils/setting';
|
||||
import { createWorkspace } from '@affine-test/kit/utils/workspace';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
test('Open settings modal', async ({ page }) => {
|
||||
await openHomePage(page);
|
||||
@@ -1,9 +1,8 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import { waitEditorLoad } from '@affine-test/kit/utils/page-logic';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage } from '../libs/load-page';
|
||||
import { waitEditorLoad } from '../libs/page-logic';
|
||||
|
||||
test('Open shortcuts modal', async ({ page }) => {
|
||||
await openHomePage(page);
|
||||
await waitEditorLoad(page);
|
||||
@@ -1,9 +1,8 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import { waitEditorLoad } from '@affine-test/kit/utils/page-logic';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage } from '../libs/load-page';
|
||||
import { waitEditorLoad } from '../libs/page-logic';
|
||||
|
||||
test('Create subpage', async ({ page }) => {
|
||||
await openHomePage(page);
|
||||
await waitEditorLoad(page);
|
||||
@@ -1,11 +1,10 @@
|
||||
import { resolve } from 'node:path';
|
||||
|
||||
import { test, testResultDir } from '@affine-test/kit/playwright';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import { waitEditorLoad } from '@affine-test/kit/utils/page-logic';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage } from '../libs/load-page';
|
||||
import { waitEditorLoad } from '../libs/page-logic';
|
||||
|
||||
// default could be anything, according to the system
|
||||
test('default white', async ({ browser }) => {
|
||||
const context = await browser.newContext({
|
||||
12
tests/affine-local/package.json
Normal file
12
tests/affine-local/package.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"name": "@affine-test/affine-local",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"e2e": "yarn playwright test"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@affine-test/fixtures": "workspace:*",
|
||||
"@affine-test/kit": "workspace:*",
|
||||
"@playwright/test": "^1.35.1"
|
||||
}
|
||||
}
|
||||
@@ -14,7 +14,7 @@ import type {
|
||||
* See https://playwright.dev/docs/test-configuration.
|
||||
*/
|
||||
const config: PlaywrightTestConfig = {
|
||||
testDir: './tests/parallels',
|
||||
testDir: './e2e',
|
||||
fullyParallel: true,
|
||||
timeout: process.env.CI ? 50_000 : 30_000,
|
||||
use: {
|
||||
16
tests/affine-local/tsconfig.json
Normal file
16
tests/affine-local/tsconfig.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"extends": "../../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"esModuleInterop": true,
|
||||
"outDir": "lib"
|
||||
},
|
||||
"include": ["e2e"],
|
||||
"references": [
|
||||
{
|
||||
"path": "../kit"
|
||||
},
|
||||
{
|
||||
"path": "../fixtures"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -3,7 +3,8 @@
|
||||
"private": true,
|
||||
"version": "0.7.0-canary.44",
|
||||
"exports": {
|
||||
"./playwright": "./playwright.ts"
|
||||
"./playwright": "./playwright.ts",
|
||||
"./utils/*": "./utils/*.ts"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@playwright/test": "^1.35.1"
|
||||
|
||||
@@ -5,5 +5,5 @@
|
||||
"noEmit": false,
|
||||
"outDir": "lib"
|
||||
},
|
||||
"include": ["./*.ts"]
|
||||
"include": ["./*.ts", "utils"]
|
||||
}
|
||||
|
||||
14
tests/kit/utils/utils.ts
Normal file
14
tests/kit/utils/utils.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
import type { Page } from '@playwright/test';
|
||||
|
||||
export async function waitForLogMessage(
|
||||
page: Page,
|
||||
log: string
|
||||
): Promise<boolean> {
|
||||
return new Promise(resolve => {
|
||||
page.on('console', msg => {
|
||||
if (msg.type() === 'log' && msg.text() === log) {
|
||||
resolve(true);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -34,6 +34,7 @@ export async function assertCurrentWorkspaceFlavour(
|
||||
flavour: 'affine' | 'local',
|
||||
page: Page
|
||||
) {
|
||||
// @ts-expect-error
|
||||
const actual = await page.evaluate(() => globalThis.currentWorkspace.flavour);
|
||||
expect(actual).toBe(flavour);
|
||||
}
|
||||
@@ -1,140 +0,0 @@
|
||||
import type { PageMeta } from '@blocksuite/store';
|
||||
import { faker } from '@faker-js/faker';
|
||||
import type { Page } from '@playwright/test';
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||
const user1 = require('@affine-test/fixtures/built-in-user1.json');
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||
const user2 = require('@affine-test/fixtures/built-in-user2.json');
|
||||
|
||||
export async function getBuiltInUser() {
|
||||
return Promise.all([
|
||||
fetch('http://localhost:3000/api/user/token', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({
|
||||
type: 'DebugLoginUser',
|
||||
email: user1.email,
|
||||
password: user1.password,
|
||||
}),
|
||||
}).then(r => r.json()),
|
||||
fetch('http://localhost:3000/api/user/token', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({
|
||||
type: 'DebugLoginUser',
|
||||
email: user2.email,
|
||||
password: user2.password,
|
||||
}),
|
||||
}).then(r => r.json()),
|
||||
]);
|
||||
}
|
||||
|
||||
export async function createFakeUser(
|
||||
userA = {
|
||||
name: faker.name.fullName(),
|
||||
email: faker.internet.email(),
|
||||
password: faker.internet.password(),
|
||||
},
|
||||
userB = {
|
||||
name: faker.name.fullName(),
|
||||
email: faker.internet.email(),
|
||||
password: faker.internet.password(),
|
||||
}
|
||||
) {
|
||||
try {
|
||||
const response = await Promise.all([
|
||||
fetch('http://127.0.0.1:3000/api/user/token', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({
|
||||
type: 'DebugLoginUser',
|
||||
email: userA.email,
|
||||
password: userA.password,
|
||||
}),
|
||||
}),
|
||||
fetch('http://127.0.0.1:3000/api/user/token', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({
|
||||
type: 'DebugLoginUser',
|
||||
email: userB.email,
|
||||
password: userB.password,
|
||||
}),
|
||||
}),
|
||||
]);
|
||||
return Promise.all(
|
||||
response.map(res => {
|
||||
if (!res.ok) {
|
||||
throw new Error('User not found');
|
||||
}
|
||||
return res.json();
|
||||
})
|
||||
);
|
||||
} catch (e) {
|
||||
const response = await Promise.all([
|
||||
// Register user A
|
||||
fetch('http://localhost:3000/api/user/token', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({
|
||||
type: 'DebugCreateUser',
|
||||
...userA,
|
||||
}),
|
||||
}),
|
||||
// Register user B
|
||||
fetch('http://localhost:3000/api/user/token', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({
|
||||
type: 'DebugCreateUser',
|
||||
...userB,
|
||||
}),
|
||||
}),
|
||||
]);
|
||||
return Promise.all(response.map(res => res.json()));
|
||||
}
|
||||
}
|
||||
|
||||
export async function loginUser(
|
||||
page: Page,
|
||||
token: {
|
||||
refresh: string;
|
||||
token: string;
|
||||
}
|
||||
) {
|
||||
await page.evaluate(async token => {
|
||||
globalThis.setLogin(token);
|
||||
}, token);
|
||||
}
|
||||
|
||||
export async function getMetas(page: Page): Promise<PageMeta[]> {
|
||||
return page.evaluate(
|
||||
() => globalThis.currentWorkspace.blockSuiteWorkspace.meta.pageMetas ?? []
|
||||
);
|
||||
}
|
||||
|
||||
export async function waitForLogMessage(
|
||||
page: Page,
|
||||
log: string
|
||||
): Promise<boolean> {
|
||||
return new Promise(resolve => {
|
||||
page.on('console', msg => {
|
||||
if (msg.type() === 'log' && msg.text() === log) {
|
||||
resolve(true);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage } from '../../libs/load-page';
|
||||
import { waitEditorLoad } from '../../libs/page-logic';
|
||||
import {
|
||||
clickNewPageButton,
|
||||
clickSideBarCurrentWorkspaceBanner,
|
||||
} from '../../libs/sidebar';
|
||||
import { getBuiltInUser, loginUser } from '../../libs/utils';
|
||||
|
||||
test.fixme('collaborative', async ({ page, browser }) => {
|
||||
await openHomePage(page);
|
||||
await waitEditorLoad(page);
|
||||
const [a, b] = await getBuiltInUser();
|
||||
await loginUser(page, a);
|
||||
await page.reload();
|
||||
await page.waitForTimeout(50);
|
||||
await clickSideBarCurrentWorkspaceBanner(page);
|
||||
await page.getByText('Cloud Workspace').click();
|
||||
const context2 = await browser.newContext();
|
||||
const page2 = await context2.newPage();
|
||||
await openHomePage(page2);
|
||||
await loginUser(page2, b);
|
||||
await page2.reload();
|
||||
await clickSideBarCurrentWorkspaceBanner(page2);
|
||||
await page2.getByText('Joined Workspace').click();
|
||||
await clickNewPageButton(page);
|
||||
const url = page.url();
|
||||
await page2.goto(url);
|
||||
await page.focus('.affine-default-page-block-title');
|
||||
await page.type('.affine-default-page-block-title', 'hello', {
|
||||
delay: 100,
|
||||
});
|
||||
await page.waitForTimeout(100);
|
||||
const title = (await page
|
||||
.locator('.affine-default-page-block-title')
|
||||
.textContent()) as string;
|
||||
expect(title.trim()).toBe('hello');
|
||||
});
|
||||
@@ -1,20 +0,0 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage } from '../../libs/load-page';
|
||||
import { waitEditorLoad } from '../../libs/page-logic';
|
||||
import { clickSideBarAllPageButton } from '../../libs/sidebar';
|
||||
import { createFakeUser, loginUser } from '../../libs/utils';
|
||||
import { enableAffineCloudWorkspace } from '../../libs/workspace';
|
||||
|
||||
test.fixme('authorization expired', async ({ page }) => {
|
||||
await openHomePage(page);
|
||||
await waitEditorLoad(page);
|
||||
const [a] = await createFakeUser();
|
||||
await loginUser(page, a);
|
||||
await enableAffineCloudWorkspace(page);
|
||||
await clickSideBarAllPageButton(page);
|
||||
await page.evaluate(() => localStorage.removeItem('affine-login-v2'));
|
||||
await openHomePage(page);
|
||||
await expect(page.getByTestId('new-workspace')).toBeVisible();
|
||||
});
|
||||
@@ -1,58 +0,0 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage } from '../../libs/load-page';
|
||||
import { waitEditorLoad } from '../../libs/page-logic';
|
||||
import { clickNewPageButton } from '../../libs/sidebar';
|
||||
import { createFakeUser, loginUser } from '../../libs/utils';
|
||||
import { createWorkspace } from '../../libs/workspace';
|
||||
|
||||
test.fixme('public single page', async ({ page, browser }) => {
|
||||
await openHomePage(page);
|
||||
const [a] = await createFakeUser();
|
||||
await loginUser(page, a);
|
||||
const name = `test-${Date.now()}`;
|
||||
await createWorkspace({ name }, page);
|
||||
await waitEditorLoad(page);
|
||||
await clickNewPageButton(page);
|
||||
const page1Id = page.url().split('/').at(-1);
|
||||
await clickNewPageButton(page);
|
||||
const page2Id = page.url().split('/').at(-1);
|
||||
expect(typeof page2Id).toBe('string');
|
||||
expect(page1Id).not.toBe(page2Id);
|
||||
const title = 'This is page 2';
|
||||
await page.locator('[data-block-is-title="true"]').type(title, {
|
||||
delay: 50,
|
||||
});
|
||||
await page.getByTestId('share-menu-button').click();
|
||||
await page.getByTestId('share-menu-enable-affine-cloud-button').click();
|
||||
const promise = page.evaluate(
|
||||
async () =>
|
||||
new Promise(resolve =>
|
||||
window.addEventListener('affine-workspace:transform', resolve, {
|
||||
once: true,
|
||||
})
|
||||
)
|
||||
);
|
||||
await page.getByTestId('confirm-enable-cloud-button').click();
|
||||
await promise;
|
||||
await page.waitForSelector('v-line');
|
||||
const currentTitle = await page
|
||||
.locator('[data-block-is-title="true"]')
|
||||
.textContent();
|
||||
expect(currentTitle).toBe(title);
|
||||
await page.getByTestId('share-menu-button').click();
|
||||
await page.getByTestId('affine-share-create-link').click();
|
||||
await page.getByTestId('affine-share-copy-link').click();
|
||||
const url = await page.evaluate(() => navigator.clipboard.readText());
|
||||
expect(url.startsWith('http://localhost:8080/public-workspace/')).toBe(true);
|
||||
await page.waitForTimeout(1000);
|
||||
const context2 = await browser.newContext();
|
||||
const page2 = await context2.newPage();
|
||||
await page2.goto(url);
|
||||
await page2.waitForSelector('v-line');
|
||||
const currentTitle2 = await page2
|
||||
.locator('[data-block-is-title="true"]')
|
||||
.textContent();
|
||||
expect(currentTitle2).toBe(title);
|
||||
});
|
||||
@@ -1,71 +0,0 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage } from '../../libs/load-page';
|
||||
import { waitEditorLoad } from '../../libs/page-logic';
|
||||
import { clickPublishPanel } from '../../libs/setting';
|
||||
import {
|
||||
clickSideBarAllPageButton,
|
||||
clickSideBarSettingButton,
|
||||
} from '../../libs/sidebar';
|
||||
import { createFakeUser, loginUser } from '../../libs/utils';
|
||||
import { createWorkspace } from '../../libs/workspace';
|
||||
|
||||
test.fixme('enable public workspace', async ({ page, context }) => {
|
||||
await openHomePage(page);
|
||||
const [a] = await createFakeUser();
|
||||
await loginUser(page, a);
|
||||
await waitEditorLoad(page);
|
||||
const name = `test-${Date.now()}`;
|
||||
await createWorkspace({ name }, page);
|
||||
await waitEditorLoad(page);
|
||||
await clickSideBarSettingButton(page);
|
||||
await page.waitForTimeout(50);
|
||||
await clickPublishPanel(page);
|
||||
await page.getByTestId('publish-enable-affine-cloud-button').click();
|
||||
await page.getByTestId('confirm-enable-affine-cloud-button').click();
|
||||
await page.getByTestId('publish-to-web-button').waitFor({
|
||||
timeout: 10000,
|
||||
});
|
||||
await page.getByTestId('publish-to-web-button').click();
|
||||
await page.getByTestId('share-url').waitFor({
|
||||
timeout: 10000,
|
||||
});
|
||||
const url = await page.getByTestId('share-url').inputValue();
|
||||
expect(url.startsWith('http://localhost:8080/public-workspace/')).toBe(true);
|
||||
const page2 = await context.newPage();
|
||||
await page2.goto(url);
|
||||
await page2.waitForSelector('thead', {
|
||||
timeout: 10000,
|
||||
});
|
||||
await page2.getByText('Untitled').click();
|
||||
});
|
||||
|
||||
test.fixme('access public workspace page', async ({ page, browser }) => {
|
||||
await openHomePage(page);
|
||||
const [a] = await createFakeUser();
|
||||
await loginUser(page, a);
|
||||
await waitEditorLoad(page);
|
||||
const name = `test-${Date.now()}`;
|
||||
await createWorkspace({ name }, page);
|
||||
await waitEditorLoad(page);
|
||||
await clickSideBarSettingButton(page);
|
||||
await page.waitForTimeout(50);
|
||||
await clickPublishPanel(page);
|
||||
await page.getByTestId('publish-enable-affine-cloud-button').click();
|
||||
await page.getByTestId('confirm-enable-affine-cloud-button').click();
|
||||
await page.getByTestId('publish-to-web-button').waitFor({
|
||||
timeout: 10000,
|
||||
});
|
||||
await page.getByTestId('publish-to-web-button').click();
|
||||
await page.getByTestId('share-url').waitFor({
|
||||
timeout: 10000,
|
||||
});
|
||||
await clickSideBarAllPageButton(page);
|
||||
await page.locator('tr').nth(2).click();
|
||||
const url = page.url();
|
||||
const context = await browser.newContext();
|
||||
const page2 = await context.newPage();
|
||||
await page2.goto(url.replace('workspace', 'public-workspace'));
|
||||
await page2.waitForSelector('v-line');
|
||||
});
|
||||
@@ -1,55 +0,0 @@
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import { openHomePage } from '../../libs/load-page';
|
||||
import { waitEditorLoad } from '../../libs/page-logic';
|
||||
|
||||
// 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');
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
|
||||
import {
|
||||
clickNewPageButton,
|
||||
clickSideBarCurrentWorkspaceBanner,
|
||||
} from '../../libs/sidebar';
|
||||
import { createFakeUser, loginUser } from '../../libs/utils';
|
||||
import {
|
||||
assertCurrentWorkspaceFlavour,
|
||||
createWorkspace,
|
||||
enableAffineCloudWorkspace,
|
||||
openWorkspaceListModal,
|
||||
} from '../../libs/workspace';
|
||||
|
||||
test.fixme('should login with user A', async ({ page }) => {
|
||||
await openHomePage(page);
|
||||
await waitEditorLoad(page);
|
||||
const [a] = await createFakeUser(userA, userB);
|
||||
await loginUser(page, a);
|
||||
await clickSideBarCurrentWorkspaceBanner(page);
|
||||
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.fixme('should enable affine workspace successfully', async ({ page }) => {
|
||||
await openHomePage(page);
|
||||
await waitEditorLoad(page);
|
||||
const [a] = await createFakeUser();
|
||||
await loginUser(page, a);
|
||||
const name = `test-${Date.now()}`;
|
||||
await createWorkspace({ name }, page);
|
||||
await page.waitForTimeout(50);
|
||||
await enableAffineCloudWorkspace(page);
|
||||
await clickNewPageButton(page);
|
||||
await page.locator('[data-block-is-title="true"]').type('Hello, world!', {
|
||||
delay: 50,
|
||||
});
|
||||
await page.waitForTimeout(1000);
|
||||
await assertCurrentWorkspaceFlavour('affine', page);
|
||||
await openWorkspaceListModal(page);
|
||||
await page.getByTestId('workspace-list-modal-sign-out').click();
|
||||
await waitEditorLoad(page);
|
||||
await assertCurrentWorkspaceFlavour('local', page);
|
||||
});
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"extends": "../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"baseUrl": ".",
|
||||
"noEmit": true
|
||||
},
|
||||
"include": ["**.spec.ts", "**.test.ts"]
|
||||
}
|
||||
@@ -2,10 +2,14 @@ import { expect, test } from 'vitest';
|
||||
|
||||
test('compare config', async () => {
|
||||
const { default: nextConfigMock } = await import(
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore
|
||||
'../../scripts/vitest/next-config-mock'
|
||||
);
|
||||
const mockConfig = nextConfigMock().publicRuntimeConfig;
|
||||
const { default: nextConfig } = await import(
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore
|
||||
'../../apps/web/next.config.mjs'
|
||||
);
|
||||
const config = nextConfig.publicRuntimeConfig;
|
||||
|
||||
8
tests/unit/tsconfig.json
Normal file
8
tests/unit/tsconfig.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"extends": "../../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"baseUrl": "..",
|
||||
"noEmit": true
|
||||
},
|
||||
"include": ["**.spec.ts"]
|
||||
}
|
||||
@@ -120,12 +120,7 @@
|
||||
{
|
||||
"path": "./plugins/copilot"
|
||||
},
|
||||
|
||||
// Tests
|
||||
{
|
||||
"path": "./tests"
|
||||
},
|
||||
|
||||
// Packages
|
||||
{
|
||||
"path": "./packages/component"
|
||||
},
|
||||
@@ -144,9 +139,9 @@
|
||||
{
|
||||
"path": "./packages/y-indexeddb"
|
||||
},
|
||||
|
||||
// Tests
|
||||
{
|
||||
"path": "./tests/fixtures"
|
||||
"path": "./tests/unit"
|
||||
},
|
||||
{
|
||||
"path": "./tests/kit"
|
||||
@@ -154,6 +149,9 @@
|
||||
{
|
||||
"path": "./tsconfig.node.json"
|
||||
},
|
||||
{
|
||||
"path": "./tests/affine-local"
|
||||
},
|
||||
{
|
||||
"path": "./tests/affine-legacy/0.7.0-canary.18"
|
||||
}
|
||||
|
||||
10
yarn.lock
10
yarn.lock
@@ -38,6 +38,16 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@affine-test/affine-local@workspace:tests/affine-local":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@affine-test/affine-local@workspace:tests/affine-local"
|
||||
dependencies:
|
||||
"@affine-test/fixtures": "workspace:*"
|
||||
"@affine-test/kit": "workspace:*"
|
||||
"@playwright/test": ^1.35.1
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@affine-test/fixtures@workspace:*, @affine-test/fixtures@workspace:tests/fixtures":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@affine-test/fixtures@workspace:tests/fixtures"
|
||||
|
||||
Reference in New Issue
Block a user