Files
MyNote/tests/unit/effect-engine.test.ts
T

36 lines
1.1 KiB
TypeScript

/** @vitest-environment jsdom */
import { describe, it, expect, vi, beforeEach } from 'vitest';
import { EffectEngine } from '../../apps/desktop/src/renderer/features/effects/effect-engine';
// stub requestAnimationFrame
beforeEach(() => {
globalThis.requestAnimationFrame = ((cb: FrameRequestCallback) => { return 0 as any; }) as any;
globalThis.cancelAnimationFrame = (() => {}) as any;
});
describe('M6 EffectEngine 配置与降级 (FR-A11)', () => {
it('setType/setColor 改变状态', () => {
const e = new EffectEngine();
e.setType('particle'); e.setColor('#ff0000');
e.disable();
// disable 后 type 为 off
expect(e.isActive()).toBe(false);
});
it('attach 到 canvas 不抛错', () => {
const canvas = document.createElement('canvas');
document.body.appendChild(canvas);
const e = new EffectEngine();
expect(() => e.attach(canvas)).not.toThrow();
e.detach();
});
it('detach 后 isActive 为 false', () => {
const canvas = document.createElement('canvas');
const e = new EffectEngine();
e.attach(canvas);
e.detach();
expect(e.isActive()).toBe(false);
});
});