39 lines
901 B
JavaScript
39 lines
901 B
JavaScript
// Vitest setup for Phaser 3 + jsdom
|
|
import { vi } from 'vitest';
|
|
|
|
// Provide a minimal canvas mock for Phaser in jsdom
|
|
HTMLCanvasElement.prototype.getContext = vi.fn(() => ({
|
|
fillRect: vi.fn(),
|
|
clearRect: vi.fn(),
|
|
getImageData: vi.fn(() => ({ data: new Array(4) })),
|
|
putImageData: vi.fn(),
|
|
createImageData: vi.fn(() => []),
|
|
setTransform: vi.fn(),
|
|
drawImage: vi.fn(),
|
|
save: vi.fn(),
|
|
restore: vi.fn(),
|
|
scale: vi.fn(),
|
|
rotate: vi.fn(),
|
|
translate: vi.fn(),
|
|
transform: vi.fn(),
|
|
beginPath: vi.fn(),
|
|
moveTo: vi.fn(),
|
|
lineTo: vi.fn(),
|
|
closePath: vi.fn(),
|
|
fill: vi.fn(),
|
|
stroke: vi.fn(),
|
|
clip: vi.fn(),
|
|
arc: vi.fn(),
|
|
rect: vi.fn(),
|
|
measureText: vi.fn(() => ({ width: 0 })),
|
|
fillText: vi.fn(),
|
|
}));
|
|
|
|
// Mock requestAnimationFrame
|
|
let rafId = 0;
|
|
global.requestAnimationFrame = vi.fn((cb) => {
|
|
rafId++;
|
|
return rafId;
|
|
});
|
|
global.cancelAnimationFrame = vi.fn();
|