work
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
const test = require('node:test');
|
||||
const assert = require('node:assert/strict');
|
||||
const {
|
||||
WorkspaceEngine,
|
||||
DESK_CANVAS_PADDING,
|
||||
} = require('../src/desktop/workspaceEngine.js');
|
||||
|
||||
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'));
|
||||
});
|
||||
Reference in New Issue
Block a user