Files
gods-eye-view/src/data/trailRenderer.test.mjs
T

40 lines
1.1 KiB
JavaScript

import test from 'node:test';
import assert from 'node:assert/strict';
import * as Cesium from 'cesium';
import { createTrail } from './trailRenderer.js';
test('trail visibility can change without discarding its accumulated geometry', () => {
const added = [];
const removed = [];
const viewer = {
isDestroyed: () => false,
entities: {
add(definition) {
added.push(definition);
return definition;
},
remove(entity) {
removed.push(entity);
},
},
};
const trail = createTrail(viewer, { color: '#ffffff' });
const positions = [
new Cesium.Cartesian3(1, 2, 3),
new Cesium.Cartesian3(4, 5, 6),
];
trail.setVisible(false);
trail.setPositions(positions);
assert.equal(added.length, 1);
assert.equal(added[0].show, false);
assert.deepEqual(added[0].polyline.positions.getValue(), positions);
trail.setVisible(true);
assert.equal(added[0].show, true);
assert.deepEqual(added[0].polyline.positions.getValue(), positions);
trail.destroy();
assert.deepEqual(removed, [added[0]]);
});