mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-05 10:53:59 +00:00
Release God's Eye View as open source
This commit is contained in:
1 parent
a5aaea7e16
commit
880a672b5e
433 files changed
+219893
-23
No files matched your search
@@ -0,0 +1,100 @@
|
||||
import { test, beforeEach } from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import {
|
||||
installRenderGovernor,
|
||||
holdContinuousRender,
|
||||
releaseContinuousRender,
|
||||
governorRequestRender,
|
||||
getRenderGovernorDiagnostics,
|
||||
_resetRenderGovernorForTest,
|
||||
} from './renderGovernor.js';
|
||||
|
||||
function makeViewer() {
|
||||
const calls = { requestRender: 0 };
|
||||
const scene = {
|
||||
requestRenderMode: false,
|
||||
maximumRenderTimeChange: 0,
|
||||
requestRender() { calls.requestRender += 1; },
|
||||
};
|
||||
return { viewer: { scene }, scene, calls };
|
||||
}
|
||||
|
||||
beforeEach(() => _resetRenderGovernorForTest());
|
||||
|
||||
test('install with zero holds enters idle mode and pins maximumRenderTimeChange', () => {
|
||||
const { viewer, scene } = makeViewer();
|
||||
installRenderGovernor(viewer);
|
||||
assert.equal(scene.requestRenderMode, true);
|
||||
assert.equal(scene.maximumRenderTimeChange, Infinity);
|
||||
assert.equal(getRenderGovernorDiagnostics().mode, 'idle');
|
||||
});
|
||||
|
||||
test('a hold flips to continuous; releasing the last hold returns to idle with a settling frame', () => {
|
||||
const { viewer, scene, calls } = makeViewer();
|
||||
installRenderGovernor(viewer);
|
||||
const settleBaseline = calls.requestRender;
|
||||
holdContinuousRender('flights');
|
||||
assert.equal(scene.requestRenderMode, false);
|
||||
assert.equal(getRenderGovernorDiagnostics().mode, 'continuous');
|
||||
releaseContinuousRender('flights');
|
||||
assert.equal(scene.requestRenderMode, true);
|
||||
// Entering idle renders one settling frame.
|
||||
assert.equal(calls.requestRender, settleBaseline + 1);
|
||||
});
|
||||
|
||||
test('holds are identity-keyed: double-hold cannot leak, double-release cannot corrupt', () => {
|
||||
const { viewer, scene } = makeViewer();
|
||||
installRenderGovernor(viewer);
|
||||
holdContinuousRender('traffic');
|
||||
holdContinuousRender('traffic');
|
||||
releaseContinuousRender('traffic');
|
||||
assert.equal(scene.requestRenderMode, true, 'single release clears an idempotent double-hold');
|
||||
releaseContinuousRender('traffic');
|
||||
releaseContinuousRender('never-held');
|
||||
assert.equal(scene.requestRenderMode, true);
|
||||
});
|
||||
|
||||
test('mode stays continuous until the LAST holder releases', () => {
|
||||
const { viewer, scene } = makeViewer();
|
||||
installRenderGovernor(viewer);
|
||||
holdContinuousRender('flights');
|
||||
holdContinuousRender('satellites');
|
||||
releaseContinuousRender('flights');
|
||||
assert.equal(scene.requestRenderMode, false);
|
||||
assert.deepEqual(getRenderGovernorDiagnostics().holds, ['satellites']);
|
||||
releaseContinuousRender('satellites');
|
||||
assert.equal(scene.requestRenderMode, true);
|
||||
});
|
||||
|
||||
test('governorRequestRender forwards to the scene and records reasons only in idle mode', () => {
|
||||
const { viewer, calls } = makeViewer();
|
||||
installRenderGovernor(viewer);
|
||||
const baseline = calls.requestRender;
|
||||
governorRequestRender('layer-tick:earthquakes');
|
||||
assert.equal(calls.requestRender, baseline + 1);
|
||||
assert.equal(getRenderGovernorDiagnostics().recentRequests.at(-1).reason, 'layer-tick:earthquakes');
|
||||
holdContinuousRender('flights');
|
||||
const idleRequests = getRenderGovernorDiagnostics().recentRequests.length;
|
||||
governorRequestRender('slider');
|
||||
assert.equal(
|
||||
getRenderGovernorDiagnostics().recentRequests.length,
|
||||
idleRequests,
|
||||
'continuous-mode requests are not recorded as idle diagnostics',
|
||||
);
|
||||
});
|
||||
|
||||
test('hold/release/request are safe no-ops before install (test environments without a viewer)', () => {
|
||||
holdContinuousRender('flights');
|
||||
releaseContinuousRender('flights');
|
||||
governorRequestRender('noop');
|
||||
assert.equal(getRenderGovernorDiagnostics().installed, false);
|
||||
});
|
||||
|
||||
test('holds registered before install apply at install time', () => {
|
||||
holdContinuousRender('flights');
|
||||
const { viewer, scene } = makeViewer();
|
||||
installRenderGovernor(viewer);
|
||||
assert.equal(scene.requestRenderMode, false, 'pre-install hold keeps continuous mode');
|
||||
releaseContinuousRender('flights');
|
||||
assert.equal(scene.requestRenderMode, true);
|
||||
});
|
||||
Reference in new issue
Block a user