Skip to content

Commit 700c7a2

Browse files
authored
chore: resolve CI relative problems (#3287)
* fix: sync relative CI * fix: sync relative CI * fix: test env * fix: test env
1 parent 6939642 commit 700c7a2

File tree

8 files changed

+116
-7
lines changed

8 files changed

+116
-7
lines changed

.github/workflows/sync-h5.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,6 @@ jobs:
3838
branch: new-site # action 应该部署到的分支 。
3939
folder: site_docs #操作应该部署的文件夹 。
4040
clean: false
41-
repository-name: jd-opensource/nutui-docs
41+
repository-name: jdf2e/nutui-docs
4242
token: ${{ secrets.GIT_ACTION }}
4343
target-folder: src/docs_vue

.github/workflows/sync-taro.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,6 @@ jobs:
3838
branch: new-site # action 应该部署到的分支 。
3939
folder: site_docs #操作应该部署的文件夹 。
4040
clean: false
41-
repository-name: jd-opensource/nutui-docs
41+
repository-name: jdf2e/nutui-docs
4242
token: ${{ secrets.GIT_ACTION }}
4343
target-folder: src/docs_vue_taro

src/packages/__VUE/avatarcropper/__tests__/avatarcropper.spec.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import 'vitest-canvas-mock'
21
import { mount } from '@vue/test-utils'
32
import { AvatarCropper } from '@nutui/nutui'
43
import { sleep, trigger, triggerDrag } from '@/packages/utils/unit'
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
22

3-
exports[`props custom-class 1`] = `"data:image/png;base64,00"`;
3+
exports[`props custom-class 1`] = `"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg=="`;

src/packages/__VUE/signature/__tests__/signature.spec.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { mount } from '@vue/test-utils'
22
import { Signature } from '@nutui/nutui'
3-
import 'vitest-canvas-mock'
43

54
test('props custom-class', async () => {
65
const wrapper = mount(() => {

src/packages/__VUE/watermark/__tests__/watermark.spec.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { mount } from '@vue/test-utils'
22
import { Watermark } from '@nutui/nutui'
33
import { nextTick } from 'vue'
4-
import 'vitest-canvas-mock'
54

65
test('WaterMark: fullPage = true', async () => {
76
const wrapper = mount(() => {

test-setup.ts

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
// Mock Canvas API for Vitest
2+
import { vi } from 'vitest'
3+
4+
// Mock HTMLCanvasElement.getContext
5+
Object.defineProperty(HTMLCanvasElement.prototype, 'getContext', {
6+
value: vi.fn(() => ({
7+
fillRect: vi.fn(),
8+
clearRect: vi.fn(),
9+
getImageData: vi.fn(() => ({
10+
data: new Array(4)
11+
})),
12+
putImageData: vi.fn(),
13+
createImageData: vi.fn(() => []),
14+
setTransform: vi.fn(),
15+
drawImage: vi.fn(),
16+
save: vi.fn(),
17+
fillText: vi.fn(),
18+
restore: vi.fn(),
19+
beginPath: vi.fn(),
20+
moveTo: vi.fn(),
21+
lineTo: vi.fn(),
22+
closePath: vi.fn(),
23+
stroke: vi.fn(),
24+
translate: vi.fn(),
25+
scale: vi.fn(),
26+
rotate: vi.fn(),
27+
arc: vi.fn(),
28+
fill: vi.fn(),
29+
measureText: vi.fn(() => ({ width: 0 })),
30+
transform: vi.fn(),
31+
rect: vi.fn(),
32+
clip: vi.fn()
33+
})),
34+
writable: true,
35+
configurable: true
36+
})
37+
38+
// Mock HTMLCanvasElement.toDataURL
39+
Object.defineProperty(HTMLCanvasElement.prototype, 'toDataURL', {
40+
value: vi.fn(() => 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg=='),
41+
writable: true,
42+
configurable: true
43+
})
44+
45+
// Mock HTMLCanvasElement.toBlob
46+
Object.defineProperty(HTMLCanvasElement.prototype, 'toBlob', {
47+
value: vi.fn((callback) => {
48+
const blob = new Blob([''], { type: 'image/png' })
49+
callback(blob)
50+
}),
51+
writable: true,
52+
configurable: true
53+
})
54+
55+
// Mock window.devicePixelRatio
56+
Object.defineProperty(window, 'devicePixelRatio', {
57+
value: 1,
58+
writable: true,
59+
configurable: true
60+
})
61+
62+
// Mock Image constructor
63+
global.Image = class MockImage {
64+
onload: (() => void) | null = null
65+
onerror: (() => void) | null = null
66+
src = ''
67+
crossOrigin = ''
68+
referrerPolicy = ''
69+
width = 0
70+
height = 0
71+
72+
constructor() {
73+
setTimeout(() => {
74+
if (this.onload) {
75+
this.onload()
76+
}
77+
}, 0)
78+
}
79+
} as any
80+
81+
// Mock createImageBitmap
82+
global.createImageBitmap = vi.fn(() => Promise.resolve({
83+
width: 100,
84+
height: 100,
85+
close: vi.fn()
86+
}))
87+
88+
// Mock OffscreenCanvas
89+
global.OffscreenCanvas = class MockOffscreenCanvas {
90+
width: number
91+
height: number
92+
93+
constructor(width: number, height: number) {
94+
this.width = width
95+
this.height = height
96+
}
97+
98+
getContext() {
99+
return {
100+
fillRect: vi.fn(),
101+
clearRect: vi.fn(),
102+
drawImage: vi.fn(),
103+
getImageData: vi.fn(() => ({ data: new Array(4) })),
104+
putImageData: vi.fn()
105+
}
106+
}
107+
108+
convertToBlob() {
109+
return Promise.resolve(new Blob([''], { type: 'image/png' }))
110+
}
111+
} as any

vite.config.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ export default defineConfig((env: ConfigEnv) => ({
7171
provider: 'v8'
7272
},
7373
include: ['src/packages/__VUE/**/*.(test|spec).(ts|tsx)'],
74-
reporters: ['default', 'html']
74+
reporters: ['default', 'html'],
75+
setupFiles: ['./test-setup.ts']
7576
}
7677
}) as UserConfig)

0 commit comments

Comments
 (0)