73 lines
1.9 KiB
JavaScript
73 lines
1.9 KiB
JavaScript
const test = require('node:test');
|
|
const assert = require('node:assert/strict');
|
|
require('./ts-register');
|
|
|
|
const {
|
|
WorkspaceEngine,
|
|
DESK_CANVAS_PADDING,
|
|
} = require('../src/desktop/workspaceEngine.ts');
|
|
|
|
const makeEngine = () => {
|
|
const engine = new WorkspaceEngine();
|
|
engine.setEnsureDocumentSize(() => ({ width: 200, height: 200 }));
|
|
engine.setCanvasSize({ width: 1200, height: 800 });
|
|
return engine;
|
|
};
|
|
|
|
test('syncLayoutSnapshot clones from layout map', () => {
|
|
const engine = makeEngine();
|
|
engine.setItems([{ id: 'doc-1' }]);
|
|
engine.ensureLayoutForItems();
|
|
engine.syncLayoutSnapshot();
|
|
|
|
const firstSnapshot = engine.getSnapshot();
|
|
assert(firstSnapshot.layout instanceof Map);
|
|
assert(firstSnapshot.layout.get('doc-1'));
|
|
|
|
engine.layout.set('doc-1', {
|
|
centerX: DESK_CANVAS_PADDING + 150,
|
|
centerY: DESK_CANVAS_PADDING + 150,
|
|
rotation: 0,
|
|
width: 200,
|
|
height: 200,
|
|
});
|
|
engine.syncLayoutSnapshot();
|
|
|
|
const secondSnapshot = engine.getSnapshot();
|
|
assert.notStrictEqual(secondSnapshot.layout, engine.layout);
|
|
assert.equal(secondSnapshot.layout.get('doc-1').centerX, engine.layout.get('doc-1').centerX);
|
|
});
|
|
|
|
test('recalcVisibleDocIds respects viewport bounds', () => {
|
|
const engine = makeEngine();
|
|
engine.items = [{ id: 'visible' }, { id: 'hidden' }];
|
|
engine.setDocumentLookup(new Map([
|
|
['visible', { id: 'visible' }],
|
|
['hidden', { id: 'hidden' }],
|
|
]));
|
|
|
|
engine.layout = new Map([
|
|
['visible', {
|
|
centerX: DESK_CANVAS_PADDING + 150,
|
|
centerY: DESK_CANVAS_PADDING + 150,
|
|
rotation: 0,
|
|
width: 200,
|
|
height: 200,
|
|
}],
|
|
['hidden', {
|
|
centerX: -500,
|
|
centerY: -500,
|
|
rotation: 0,
|
|
width: 200,
|
|
height: 200,
|
|
}],
|
|
]);
|
|
engine.layoutSnapshot = new Map(engine.layout);
|
|
|
|
engine.recalcVisibleDocIds();
|
|
|
|
const snapshot = engine.getSnapshot();
|
|
assert(snapshot.visibleDocIds.has('visible'));
|
|
assert(!snapshot.visibleDocIds.has('hidden'));
|
|
});
|