d9fbecf5a7
Move audio scrub/volume and brush drafts off root React ticks, coalesce overlay layout IPC, cache machine fingerprint and asset URLs, share one scene overlay host, and stop idle Pixi ticker. Also harden console against EPIPE on window load failures. Co-authored-by: Cursor <cursoragent@cursor.com>
39 lines
1.8 KiB
TypeScript
39 lines
1.8 KiB
TypeScript
import assert from 'node:assert/strict';
|
|
import fs from 'node:fs';
|
|
import path from 'node:path';
|
|
import test from 'node:test';
|
|
import { fileURLToPath } from 'node:url';
|
|
|
|
const here = path.dirname(fileURLToPath(import.meta.url));
|
|
|
|
void test('PxiEffectsOverlay: canvas не перехватывает указатель в режиме без interactive', () => {
|
|
const src = fs.readFileSync(path.join(here, 'PxiEffectsOverlay.tsx'), 'utf8');
|
|
assert.ok(src.includes("app.canvas.style.pointerEvents = interactive ? 'auto' : 'none'"));
|
|
});
|
|
|
|
void test('PxiEffectsOverlay: ограничение FPS тикера для нагрузки', () => {
|
|
const src = fs.readFileSync(path.join(here, 'PxiEffectsOverlay.tsx'), 'utf8');
|
|
assert.ok(src.includes('app.ticker.maxFPS'));
|
|
});
|
|
|
|
void test('PxiEffectsOverlay: imperative setDraft для кисти без React state', () => {
|
|
const src = fs.readFileSync(path.join(here, 'PxiEffectsOverlay.tsx'), 'utf8');
|
|
assert.ok(src.includes('setDraft'));
|
|
assert.ok(src.includes('useImperativeHandle'));
|
|
assert.ok(src.includes('mergeDraftState'));
|
|
});
|
|
|
|
void test('PxiEffectsOverlay: lazy VFX packs + idle ticker stop', () => {
|
|
const src = fs.readFileSync(path.join(here, 'PxiEffectsOverlay.tsx'), 'utf8');
|
|
assert.ok(src.includes('ensureVfxPacksForState'));
|
|
assert.ok(src.includes('collectNeededVfxPacks'));
|
|
assert.ok(src.includes('syncTickerForState'));
|
|
assert.ok(src.includes('app.ticker.stop'));
|
|
// Eager preload всех наборов при init убран.
|
|
assert.doesNotMatch(
|
|
src,
|
|
/syncNodes\([\s\S]*?stateRef\.current[\s\S]*?\);\s*void preloadLightningVfxFrameTextures\(pixi\);\s*void preloadElectricAccentFrameTextures\(pixi\);\s*void preloadFogVfxFrameTextures\(pixi\);/,
|
|
);
|
|
assert.ok(src.includes('Lazy VFX'));
|
|
});
|