Files
nocobase/scripts/vitest.setup.ts
T
被雨水过滤的空气-Rain a57c93d35b feat: support e2e (#2624)
* chore: upgrade vitest to v0.34.3

* feat: setup NocoBase

* chore: preparing test env

* test: add a test of rigster

* refactor: rename test dir to testUtils

* chore: add tests

* chore: add ci for e2e

* chore: fix ci

* chore: avoid error in CI

* chore: add some utils for test

* chore: make more stable

* chore: should not close server in CI

* chore: add comments

* chore: change output dir

* fix: should use current branch to run tests

* chore: should request systemSettings by api in e2e

* chore: should build first in e2e CI

* chore: remove key

* chore: use execa to replace execSync

* refactor: extract test suite

* chore: add gotoPage

* chore: update uid of pageSchema

* chore: update collection name

* chore: use faker.js to generate data

* refactor: extract page config

* chore: ignore for association fields in faker

* chore: add testid

* chore: optimize action designer

* chore: associationFilter.Item designer

* chore: AssiciationFilter & BlockItem

* Revert "chore: AssiciationFilter & BlockItem"

This reverts commit b418df650e.

* Revert "chore: associationFilter.Item designer"

This reverts commit 7aa4d35c1a.

* Revert "chore: optimize action designer"

This reverts commit ff717b972f.

* chore: optimize Designer

* chore: compat with older browsers

* chore: use describe to avoid hooks is not run

* chore: add no-floating-promises to eslint rules

* chore: support argv

* chore: demo

* chore: better testId

* chore: change .e2e.ts to .test.ts

* fix(SchemaInitializer): avoid error

* refactor: move e2eUtils.ts to @nocobase/test

* fix: move e2eUtils to client

* chore: remove uselesscode

* refactor: add .env.e2e.example

* chore: optimize log

* refactor: use mockPage to replace gotoPage

* chore: update env.e2e

* chore: add APP_BASE_URL

* chore: gitigore

* test: add test related of menu

* chore: add SOCKET_PATH in env

* fix(vscode): load env when using vscode plugin
2023-09-27 20:00:17 +08:00

64 lines
1.5 KiB
TypeScript

import '@testing-library/jest-dom';
/**
* 解决 TypeError: URL.createObjectURL is not a function
* 解决 ReferenceError: Worker is not defined
*/
import 'jsdom-worker';
import { vi } from 'vitest';
import '../packages/core/client/src/i18n';
// 解决 TypeError: window.matchMedia is not a function
// 参见: https://github.com/vitest-dev/vitest/issues/821#issuecomment-1046954558
Object.defineProperty(window, 'matchMedia', {
writable: true,
value: vi.fn().mockImplementation((query) => ({
matches: false,
media: query,
onchange: null,
addListener: vi.fn(), // deprecated
removeListener: vi.fn(), // deprecated
addEventListener: vi.fn(),
removeEventListener: vi.fn(),
dispatchEvent: vi.fn(),
})),
});
// 解决 Error: Not implemented: window.computedStyle(elt, pseudoElt)
// 参见:https://github.com/nickcolley/jest-axe/issues/147#issuecomment-758804533
const { getComputedStyle } = window;
window.getComputedStyle = (elt) => getComputedStyle(elt);
/**
* 解决 TypeError: range.getBoundingClientRect is not a function
* 参见:https://github.com/jsdom/jsdom/issues/3002
*/
document.createRange = () => {
const range = new Range();
range.getBoundingClientRect = () => {
return {
x: 0,
y: 0,
bottom: 0,
height: 0,
left: 0,
right: 0,
top: 0,
width: 0,
toJSON: () => {},
};
};
range.getClientRects = () => {
return {
item: (index) => null,
length: 0,
*[Symbol.iterator]() {},
};
};
return range;
};