Skip to content

Commit 528344f

Browse files
新增测试 (#380)
* feat: 新增测试 * chore: 更新版本 * feat(test): 解决window is not defined bug * refactor(test): 将单测移动到core目录下 * refactor(test): 卸载不必要的依赖
1 parent 95129be commit 528344f

File tree

7 files changed

+80
-4
lines changed

7 files changed

+80
-4
lines changed

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
"build:staging": "vite build --mode=staging",
1515
"preview": "pnpm build && vite preview",
1616
"preview:staging": "pnpm build:staging && vite preview --mode=staging",
17-
"prepare": "husky install"
17+
"prepare": "husky install",
18+
"test": "pnpm -C packages/core test"
1819
},
1920
"dependencies": {
2021
"@kuaitu/core": "workspace:^",
@@ -23,7 +24,7 @@
2324
"color-gradient-picker-vue3": "^2.0.7",
2425
"dayjs": "^1.11.11",
2526
"events": "^3.3.0",
26-
"fabric": "^5.2.1",
27+
"fabric": "^5.3.0",
2728
"fontfaceobserver": "^2.1.0",
2829
"lodash-es": "^4.17.21",
2930
"number-precision": "^1.6.0",
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { beforeEach, expect, test } from 'vitest';
2+
import { createEditor } from '../utils/setup.ts';
3+
4+
const { cleanUp } = createEditor();
5+
6+
beforeEach(() => {
7+
return cleanUp;
8+
});
9+
10+
test('basic', () => {
11+
expect(window.editor).toBeDefined();
12+
});

packages/core/__tests__/env.d.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import Editor from '../Editor';
2+
3+
declare global {
4+
interface Window {
5+
editor: Editor;
6+
}
7+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import Editor from '../../Editor.ts';
2+
import { fabric } from 'fabric';
3+
4+
export function createEditor() {
5+
const editor = new Editor();
6+
const canvasElement = document.createElement('canvas');
7+
canvasElement.id = 'canvas';
8+
const canvas = new fabric.Canvas('canvas', {
9+
fireRightClick: true,
10+
stopContextMenu: true,
11+
controlsAboveOverlay: true,
12+
imageSmoothingEnabled: false,
13+
preserveObjectStacking: true,
14+
});
15+
editor.init(canvas);
16+
window.editor = editor;
17+
18+
return {
19+
cleanUp: editor.destory(),
20+
};
21+
}

packages/core/package.json

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
"description": "",
55
"main": "index.ts",
66
"scripts": {
7-
"build": "vite build"
7+
"build": "vite build",
8+
"test": "vitest"
89
},
910
"dependencies": {
1011
"events": "^3.3.0",
@@ -17,5 +18,10 @@
1718
},
1819
"keywords": [],
1920
"author": "",
20-
"license": "ISC"
21+
"license": "ISC",
22+
"devDependencies": {
23+
"@types/jsdom": "^21.1.6",
24+
"jsdom": "^24.0.0",
25+
"vitest": "^1.6.0"
26+
}
2127
}

packages/core/vitest.config.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { defineConfig } from 'vitest/config';
2+
3+
export default defineConfig((_configEnv) =>
4+
defineConfig({
5+
esbuild: { target: 'es2022' },
6+
optimizeDeps: {
7+
force: true,
8+
esbuildOptions: {
9+
target: 'es2022',
10+
},
11+
},
12+
test: {
13+
include: ['./__tests__/**/*.spec.ts'],
14+
15+
deps: {
16+
interopDefault: true,
17+
},
18+
environment: 'jsdom',
19+
},
20+
})
21+
);

typings/env.d.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,11 @@ declare module 'vfe' {
2828
editor: Editor;
2929
}
3030
}
31+
32+
import Editor from '@kuaitu/core';
33+
34+
declare global {
35+
interface Window {
36+
editor: Editor;
37+
}
38+
}

0 commit comments

Comments
 (0)