@deck.gl/test-utils 9.4.1 → 10.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +69 -51
- package/dist/index.cjs.map +2 -2
- package/dist/lifecycle-test.d.ts +8 -3
- package/dist/lifecycle-test.d.ts.map +1 -1
- package/dist/lifecycle-test.js +62 -45
- package/dist/lifecycle-test.js.map +1 -1
- package/dist/utils/setup-gl.d.ts +2 -2
- package/dist/utils/setup-gl.d.ts.map +1 -1
- package/dist/utils/setup-gl.js +3 -2
- package/dist/utils/setup-gl.js.map +1 -1
- package/dist/vitest.cjs +69 -51
- package/dist/vitest.cjs.map +2 -2
- package/package.json +6 -7
- package/src/lifecycle-test.ts +81 -58
- package/src/utils/setup-gl.ts +3 -2
package/dist/index.cjs
CHANGED
|
@@ -62,10 +62,11 @@ function toLowPrecision(input, precision = 11) {
|
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
// dist/utils/setup-gl.js
|
|
65
|
-
var import_test_utils = require("@luma.gl/test-utils");
|
|
66
|
-
var
|
|
65
|
+
var import_test_utils = require("@luma.gl/core/test-utils");
|
|
66
|
+
var import_test_utils_legacy = require("@luma.gl/core/test-utils-legacy");
|
|
67
|
+
var device = import_test_utils_legacy.webglDevice || new import_test_utils.NullDevice({});
|
|
67
68
|
var _a;
|
|
68
|
-
var gl = ((_a =
|
|
69
|
+
var gl = ((_a = import_test_utils_legacy.webglDevice) == null ? void 0 : _a.gl) || 1;
|
|
69
70
|
globalThis.glContext = globalThis.glContext || gl;
|
|
70
71
|
|
|
71
72
|
// dist/tape.js
|
|
@@ -105,7 +106,7 @@ async function testInitializeLayerAsync(opts) {
|
|
|
105
106
|
const layerManager = initializeLayerManager(opts);
|
|
106
107
|
const deckRenderer = new import_core.DeckRenderer(device);
|
|
107
108
|
while (!opts.layer.isLoaded) {
|
|
108
|
-
await update({ layerManager, deckRenderer, oldResourceCounts: {} });
|
|
109
|
+
await update({ draw: true, layerManager, deckRenderer, oldResourceCounts: {} });
|
|
109
110
|
}
|
|
110
111
|
if (opts.finalize === false) {
|
|
111
112
|
return {
|
|
@@ -135,26 +136,32 @@ async function testLayerAsync(opts) {
|
|
|
135
136
|
const { Layer, testCases = [], spies = [], onError = defaultOnError, createSpy, resetSpy } = opts;
|
|
136
137
|
const resources = setupLayerTests(`testing ${Layer.layerName}`, opts);
|
|
137
138
|
let layer = new Layer();
|
|
138
|
-
|
|
139
|
-
const
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
139
|
+
try {
|
|
140
|
+
for (const testCase of testCases) {
|
|
141
|
+
const oldState = { ...layer.state };
|
|
142
|
+
const { layer: newLayer, spyMap } = runLayerTestUpdate(testCase, resources, layer, spies, createSpy);
|
|
143
|
+
await runLayerTestPostUpdateCheck(testCase, newLayer, oldState, spyMap);
|
|
144
|
+
while (!newLayer.isLoaded || resources.layerManager.getLayers().some((layer2) => {
|
|
145
|
+
var _a2;
|
|
146
|
+
return (_a2 = layer2.internalState) == null ? void 0 : _a2.needsUpdate;
|
|
147
|
+
})) {
|
|
148
|
+
await update(resources);
|
|
149
|
+
await runLayerTestPostUpdateCheck(testCase, newLayer, oldState, spyMap);
|
|
150
|
+
}
|
|
151
|
+
Object.keys(spyMap).forEach((k) => resetSpy(spyMap[k]));
|
|
152
|
+
layer = newLayer;
|
|
153
|
+
}
|
|
154
|
+
} finally {
|
|
155
|
+
const error = await cleanupAfterLayerTestsAsync(resources);
|
|
156
|
+
if (error) {
|
|
157
|
+
onError(error, `${Layer.layerName} should delete all resources`);
|
|
145
158
|
}
|
|
146
|
-
Object.keys(spyMap).forEach((k) => resetSpy(spyMap[k]));
|
|
147
|
-
layer = newLayer;
|
|
148
|
-
}
|
|
149
|
-
const error = await cleanupAfterLayerTestsAsync(resources);
|
|
150
|
-
if (error) {
|
|
151
|
-
onError(error, `${Layer.layerName} should delete all resources`);
|
|
152
159
|
}
|
|
153
160
|
}
|
|
154
|
-
function setupLayerTests(testTitle, { viewport = testViewport, timeline, onError = defaultOnError }) {
|
|
161
|
+
function setupLayerTests(testTitle, { device: testDevice = device, draw = true, viewport = testViewport, timeline, onError = defaultOnError }) {
|
|
155
162
|
const oldResourceCounts = getResourceCounts();
|
|
156
|
-
const layerManager = new import_core.LayerManager(
|
|
157
|
-
const deckRenderer = new import_core.DeckRenderer(
|
|
163
|
+
const layerManager = new import_core.LayerManager(testDevice, { viewport, timeline });
|
|
164
|
+
const deckRenderer = new import_core.DeckRenderer(testDevice);
|
|
158
165
|
const props = {
|
|
159
166
|
layerFilter: null,
|
|
160
167
|
drawPickingColors: false,
|
|
@@ -162,7 +169,7 @@ function setupLayerTests(testTitle, { viewport = testViewport, timeline, onError
|
|
|
162
169
|
};
|
|
163
170
|
layerManager.setProps(props);
|
|
164
171
|
deckRenderer.setProps(props);
|
|
165
|
-
return { layerManager, deckRenderer, oldResourceCounts };
|
|
172
|
+
return { draw, layerManager, deckRenderer, oldResourceCounts };
|
|
166
173
|
}
|
|
167
174
|
function cleanupAfterLayerTests({ layerManager, deckRenderer, oldResourceCounts }) {
|
|
168
175
|
layerManager.setLayers([]);
|
|
@@ -206,7 +213,7 @@ function runLayerTestPostUpdateCheck(testCase, newLayer, oldState, spyMap) {
|
|
|
206
213
|
if (testCase.onAfterUpdate) {
|
|
207
214
|
const subLayers = newLayer.isComposite ? newLayer.getSubLayers() : [];
|
|
208
215
|
const subLayer = subLayers.length ? subLayers[0] : null;
|
|
209
|
-
testCase.onAfterUpdate({
|
|
216
|
+
return testCase.onAfterUpdate({
|
|
210
217
|
testCase,
|
|
211
218
|
layer: newLayer,
|
|
212
219
|
oldState,
|
|
@@ -216,8 +223,9 @@ function runLayerTestPostUpdateCheck(testCase, newLayer, oldState, spyMap) {
|
|
|
216
223
|
});
|
|
217
224
|
}
|
|
218
225
|
}
|
|
219
|
-
function runLayerTestUpdate(testCase, { layerManager, deckRenderer }, layer, spies, spyFactory) {
|
|
226
|
+
function runLayerTestUpdate(testCase, { draw, layerManager, deckRenderer }, layer, spies, spyFactory) {
|
|
220
227
|
const { props, updateProps, onBeforeUpdate, viewport = layerManager.context.viewport } = testCase;
|
|
228
|
+
(0, import_core.assert)(viewport);
|
|
221
229
|
if (onBeforeUpdate) {
|
|
222
230
|
onBeforeUpdate({ layer, testCase });
|
|
223
231
|
}
|
|
@@ -229,6 +237,8 @@ function runLayerTestUpdate(testCase, { layerManager, deckRenderer }, layer, spi
|
|
|
229
237
|
spies = testCase.spies || spies;
|
|
230
238
|
const spyMap = injectSpies(layer, spies, spyFactory);
|
|
231
239
|
const drawLayers = () => {
|
|
240
|
+
if (!draw)
|
|
241
|
+
return;
|
|
232
242
|
deckRenderer.renderLayers({
|
|
233
243
|
pass: "test",
|
|
234
244
|
views: {},
|
|
@@ -246,26 +256,34 @@ function runLayerTestUpdate(testCase, { layerManager, deckRenderer }, layer, spi
|
|
|
246
256
|
}
|
|
247
257
|
return { layer, spyMap };
|
|
248
258
|
}
|
|
249
|
-
function update({ layerManager, deckRenderer }) {
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
259
|
+
async function update({ draw, layerManager, deckRenderer }) {
|
|
260
|
+
let delay = 0;
|
|
261
|
+
while (true) {
|
|
262
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
263
|
+
if (layerManager.getLayers().some((layer) => {
|
|
264
|
+
var _a2;
|
|
265
|
+
return (_a2 = layer.internalState) == null ? void 0 : _a2.needsUpdate;
|
|
266
|
+
})) {
|
|
267
|
+
layerManager.setNeedsUpdate("pending layer update");
|
|
268
|
+
}
|
|
269
|
+
if (!layerManager.needsUpdate()) {
|
|
270
|
+
delay = 50;
|
|
271
|
+
continue;
|
|
272
|
+
}
|
|
273
|
+
layerManager.updateLayers();
|
|
274
|
+
const viewport = layerManager.context.viewport;
|
|
275
|
+
(0, import_core.assert)(viewport);
|
|
276
|
+
if (draw)
|
|
277
|
+
deckRenderer.renderLayers({
|
|
278
|
+
pass: "test",
|
|
279
|
+
views: {},
|
|
280
|
+
effects: [],
|
|
281
|
+
viewports: [viewport],
|
|
282
|
+
layers: layerManager.getLayers(),
|
|
283
|
+
onViewportActive: layerManager.activateViewport
|
|
284
|
+
});
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
269
287
|
}
|
|
270
288
|
|
|
271
289
|
// dist/tape.js
|
|
@@ -309,12 +327,12 @@ function generateLayerTests({
|
|
|
309
327
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
310
328
|
Layer,
|
|
311
329
|
sampleProps = {},
|
|
312
|
-
assert = defaultAssert,
|
|
330
|
+
assert: assert2 = defaultAssert,
|
|
313
331
|
onBeforeUpdate = noop,
|
|
314
332
|
onAfterUpdate = noop,
|
|
315
333
|
runDefaultAsserts = true
|
|
316
334
|
}) {
|
|
317
|
-
|
|
335
|
+
assert2(Layer.layerName, "Layer should have display name");
|
|
318
336
|
function wrapTestCaseTitle(title) {
|
|
319
337
|
return `${Layer.layerName}#${title}`;
|
|
320
338
|
}
|
|
@@ -336,13 +354,13 @@ function generateLayerTests({
|
|
|
336
354
|
try {
|
|
337
355
|
new Layer({});
|
|
338
356
|
} catch (error) {
|
|
339
|
-
|
|
357
|
+
assert2(false, `Construct ${Layer.layerName} throws: ${error.message}`);
|
|
340
358
|
}
|
|
341
359
|
const { _propTypes: propTypes, _mergedDefaultProps: defaultProps } = Layer;
|
|
342
360
|
testCases.push(...makeAltDataTestCases(sampleProps, propTypes));
|
|
343
361
|
for (const propName in Layer.defaultProps) {
|
|
344
362
|
if (!(propName in sampleProps)) {
|
|
345
|
-
const newTestCase = makeAltPropTestCase({ propName, propTypes, defaultProps, sampleProps, assert }) || [];
|
|
363
|
+
const newTestCase = makeAltPropTestCase({ propName, propTypes, defaultProps, sampleProps, assert: assert2 }) || [];
|
|
346
364
|
testCases.push(...newTestCase);
|
|
347
365
|
}
|
|
348
366
|
}
|
|
@@ -361,17 +379,17 @@ function generateLayerTests({
|
|
|
361
379
|
if (params.layer.isComposite) {
|
|
362
380
|
const { data } = params.layer.props;
|
|
363
381
|
if (data && typeof data === "object" && (0, import_core2._count)(data)) {
|
|
364
|
-
|
|
382
|
+
assert2(params.subLayers.length, "Layer should have sublayers");
|
|
365
383
|
}
|
|
366
384
|
} else {
|
|
367
|
-
|
|
385
|
+
assert2(params.layer.getModels().length, "Layer should have models");
|
|
368
386
|
}
|
|
369
387
|
}
|
|
370
388
|
};
|
|
371
389
|
});
|
|
372
390
|
return testCases;
|
|
373
391
|
}
|
|
374
|
-
function makeAltPropTestCase({ propName, propTypes, defaultProps, sampleProps, assert }) {
|
|
392
|
+
function makeAltPropTestCase({ propName, propTypes, defaultProps, sampleProps, assert: assert2 }) {
|
|
375
393
|
const newProps = { ...sampleProps };
|
|
376
394
|
const propDef = propTypes[propName];
|
|
377
395
|
if (!propDef) {
|
|
@@ -413,7 +431,7 @@ function makeAltPropTestCase({ propName, propTypes, defaultProps, sampleProps, a
|
|
|
413
431
|
[propName]: "function"
|
|
414
432
|
};
|
|
415
433
|
const onBeforeUpdate = () => callCount = 0;
|
|
416
|
-
const onAfterUpdate = () =>
|
|
434
|
+
const onAfterUpdate = () => assert2(callCount > 0, "accessor function is called");
|
|
417
435
|
return [
|
|
418
436
|
{
|
|
419
437
|
title: `${propName}: () => ${defaultProps[propName]}`,
|
package/dist/index.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts", "../src/utils/layer.ts", "../src/utils/precision.ts", "../src/utils/setup-gl.ts", "../src/tape.ts", "../src/lifecycle-test.ts", "../src/generate-layer-tests.ts", "../src/test-runner.ts", "../src/utils/dom.ts", "../src/snapshot-test-runner.ts", "../src/interaction-test-runner.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": ["testLayer", "testLayerAsync", "import_test_utils", "testLayer", "testLayerAsync", "import_core", "count", "import_core", "device", "DEFAULT_TEST_OPTIONS", "_a", "DEFAULT_TEST_CASE"]
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;mBAAAA;EAAA,sBAAAC;EAAA;;;;;ACUM,SAAU,iBAAiB,OAAc,WAAkB;AAC/D,QAAM,WAAW,CAAA;AACjB,QAAM,eAAe,MAAM,UAAS,EAAG,CAAC,EAAE;AAC1C,QAAM,gBAAgB,YAClB,CAAC,aAAa,cAAc,IAAI,SAAS,CAAC,IAC1C,aAAa,cAAc,OAAM;AACrC,aAAW,SAAS,eAAe;AACjC,WAAO,OAAO,UAAU,MAAO,QAAQ;EACzC;AAEA,SAAO;AACT;;;ACNM,SAAU,eACd,OACA,YAAoB,IAAE;AAGtB,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,OAAO,MAAM,YAAY,SAAS,CAAC;EAC5C;AACA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,IAAI,UAAQ,eAAe,MAAM,SAAS,CAAC;EAC1D;AACA,MAAI,OAAO,UAAU,UAAU;AAC7B,eAAW,OAAO,OAAO;AACvB,YAAM,GAAG,IAAI,eAAe,MAAM,GAAG,GAAG,SAAS;IACnD;EACF;AACA,SAAO;AACT;;;AC5BA,wBAAyB;AACzB,+BAA0B;AAGnB,IAAM,SAAS,wCAAe,IAAI,6BAAW,CAAA,CAAE;AARtD;AASO,IAAM,OAAK,iEAAa,OAAM;AAErC,WAAW,YAAY,WAAW,aAAa;;;ACJ/C,IAAAC,qBAAsB;;;ACHtB,kBAA0D;AAQ1D,IAAM,eAAe,IAAI,oBAAQ,CAAA,CAAE,EAAE,aAAa;EAChD,OAAO;EACP,QAAQ;EACR,WAAW,EAAC,WAAW,GAAG,UAAU,GAAG,MAAM,EAAC;CAC/C;AAED,SAAS,eAAe,OAAgB,OAAa;AACnD,MAAI,OAAO;AACT,UAAM;EACR;AACF;AAaA,SAAS,uBAAuB,EAC9B,OACA,WAAW,cACX,UAAU,eAAc,GACG;AAC3B,QAAM,eAAe,IAAI,yBAAa,QAAQ,EAAC,SAAQ,CAAC;AACxD,eAAa,SAAS;IACpB,SAAS,WAAS,QAAQ,OAAO,gBAAgB,MAAM,EAAE,EAAE;GAC5D;AAED,eAAa,UAAU,CAAC,KAAK,CAAC;AAC9B,SAAO;AACT;AAqBM,SAAU,oBACd,MAGC;AAKD,QAAM,eAAe,uBAAuB,IAAI;AAChD,MAAI,KAAK,aAAa,OAAO;AAC3B,WAAO;MACL,UAAU,MAAM,aAAa,SAAQ;;EAEzC;AACA,eAAa,SAAQ;AACrB,SAAO;AACT;AAqBA,eAAsB,yBACpB,MAGC;AAKD,QAAM,eAAe,uBAAuB,IAAI;AAChD,QAAM,eAAe,IAAI,yBAAa,MAAM;AAC5C,SAAO,CAAC,KAAK,MAAM,UAAU;AAC3B,UAAM,OAAO,EAAC,MAAM,MAAM,cAAc,cAAc,mBAAmB,CAAA,EAAE,CAAC;EAC9E;AACA,MAAI,KAAK,aAAa,OAAO;AAC3B,WAAO;MACL,UAAU,MAAM,aAAa,SAAQ;;EAEzC;AACA,eAAa,SAAQ;AACrB,SAAO;AACT;AA2FM,SAAU,UAAgC,MAA8B;AAC5E,QAAM,EAAC,OAAO,YAAY,CAAA,GAAI,QAAQ,CAAA,GAAI,UAAU,gBAAgB,WAAW,SAAQ,IAAI;AAE3F,QAAM,YAAY,gBAAgB,WAAW,MAAM,SAAS,IAAI,IAAI;AAEpE,MAAI,QAAQ,IAAI,MAAK;AAErB,aAAW,YAAY,WAAW;AAEhC,UAAM,WAAW,EAAC,GAAG,MAAM,MAAK;AAEhC,UAAM,EAAC,OAAO,UAAU,OAAM,IAAI,mBAChC,UACA,WACA,OACA,OACA,SAAS;AAGX,gCAA4B,UAAU,UAAU,UAAU,MAAM;AAGhE,WAAO,KAAK,MAAM,EAAE,QAAQ,OAAK,SAAS,OAAO,CAAC,CAAC,CAAC;AACpD,YAAQ;EACV;AAEA,QAAM,QAAQ,uBAAuB,SAAS;AAC9C,MAAI,OAAO;AACT,YAAQ,OAAO,GAAG,MAAM,SAAS,8BAA8B;EACjE;AACF;AAMA,eAAsB,eACpB,MAA8B;AAE9B,QAAM,EAAC,OAAO,YAAY,CAAA,GAAI,QAAQ,CAAA,GAAI,UAAU,gBAAgB,WAAW,SAAQ,IAAI;AAE3F,QAAM,YAAY,gBAAgB,WAAW,MAAM,SAAS,IAAI,IAAI;AAEpE,MAAI,QAAQ,IAAI,MAAK;AACrB,MAAI;AAEF,eAAW,YAAY,WAAW;AAEhC,YAAM,WAAW,EAAC,GAAG,MAAM,MAAK;AAEhC,YAAM,EAAC,OAAO,UAAU,OAAM,IAAI,mBAChC,UACA,WACA,OACA,OACA,SAAS;AAGX,YAAM,4BAA4B,UAAU,UAAU,UAAU,MAAM;AAGtE,aACE,CAAC,SAAS,YACV,UAAU,aAAa,UAAS,EAAG,KAAK,CAAAC,WAAM;AAzRtD,YAAAC;AAyRyD,gBAAAA,MAAAD,OAAM,kBAAN,gBAAAC,IAAqB;OAAW,GACjF;AACA,cAAM,OAAO,SAAS;AACtB,cAAM,4BAA4B,UAAU,UAAU,UAAU,MAAM;MACxE;AAGA,aAAO,KAAK,MAAM,EAAE,QAAQ,OAAK,SAAS,OAAO,CAAC,CAAC,CAAC;AACpD,cAAQ;IACV;EACF;AAEE,UAAM,QAAQ,MAAM,4BAA4B,SAAS;AACzD,QAAI,OAAO;AACT,cAAQ,OAAO,GAAG,MAAM,SAAS,8BAA8B;IACjE;EACF;AACF;AAEA,SAAS,gBACP,WACA,EACE,QAAQ,aAAa,QACrB,OAAO,MACP,WAAW,cACX,UACA,UAAU,eAAc,GAOzB;AAED,QAAM,oBAAoB,kBAAiB;AAE3C,QAAM,eAAe,IAAI,yBAAa,YAAY,EAAC,UAAU,SAAQ,CAAC;AACtE,QAAM,eAAe,IAAI,yBAAa,UAAU;AAEhD,QAAM,QAAQ;IACZ,aAAa;IACb,mBAAmB;IACnB,SAAS,WAAS,QAAQ,OAAO,SAAS;;AAE5C,eAAa,SAAS,KAAK;AAC3B,eAAa,SAAS,KAAK;AAE3B,SAAO,EAAC,MAAM,cAAc,cAAc,kBAAiB;AAC7D;AAEA,SAAS,uBAAuB,EAC9B,cACA,cACA,kBAAiB,GACH;AACd,eAAa,UAAU,CAAA,CAAE;AACzB,eAAa,SAAQ;AACrB,eAAa,SAAQ;AAErB,SAAO,sBAAsB,iBAAiB;AAChD;AAOA,eAAe,4BAA4B,EACzC,cACA,cACA,kBAAiB,GACH;AACd,eAAa,UAAU,CAAA,CAAE;AAMzB,QAAM,IAAI,QAAQ,aAAW,WAAW,SAAS,CAAC,CAAC;AAEnD,eAAa,SAAQ;AACrB,eAAa,SAAQ;AAErB,SAAO,sBAAsB,iBAAiB;AAChD;AAEA,SAAS,oBAAiB;AAExB,QAAM,gBAAiB,KAAK,MAAuB,IAAI,iBAAiB;AACxE,SAAO;IACL,WAAW,cAAc,IAAI,mBAAmB,EAAE;IAClD,QAAQ,cAAc,IAAI,gBAAgB,EAAE;;AAEhD;AAEA,SAAS,sBAAsB,mBAAyC;AACtE,QAAM,iBAAiB,kBAAiB;AAExC,aAAW,gBAAgB,gBAAgB;AACzC,QAAI,eAAe,YAAY,MAAM,kBAAkB,YAAY,GAAG;AACpE,aAAO,IAAI,MACT,GAAG,eAAe,YAAY,IAAI,kBAAkB,YAAY,CAAC,IAAI,YAAY,GAAG;IAExF;EACF;AACA,SAAO;AACT;AAEA,SAAS,YAAY,OAAc,OAAiB,YAAsB;AACxE,QAAM,SAA8B,CAAA;AACpC,MAAI,OAAO;AACT,eAAW,gBAAgB,OAAO;AAChC,aAAO,YAAY,IAAI,WAAW,OAAO,eAAe,KAAK,GAAG,YAAY;IAC9E;EACF;AACA,SAAO;AACT;AAEA,SAAS,4BACP,UACA,UACA,UACA,QAA2B;AAG3B,MAAI,SAAS,eAAe;AAG1B,UAAM,YAAY,SAAS,cACtB,SAAqC,aAAY,IAClD,CAAA;AACJ,UAAM,WAAW,UAAU,SAAS,UAAU,CAAC,IAAI;AAEnD,WAAO,SAAS,cAAc;MAC5B;MACA,OAAO;MACP;MACA;MACA;MACA,OAAO;KACR;EACH;AACF;AAEA,SAAS,mBACP,UACA,EAAC,MAAM,cAAc,aAAY,GACjC,OACA,OACA,YAAsB;AAKtB,QAAM,EAAC,OAAO,aAAa,gBAAgB,WAAW,aAAa,QAAQ,SAAQ,IAAI;AAEvF,0BAAO,QAAQ;AAEf,MAAI,gBAAgB;AAClB,mBAAe,EAAC,OAAO,SAAQ,CAAC;EAClC;AAEA,MAAI,OAAO;AAET,YAAQ,IAAK,MAAM,YAAmC,KAAK;EAC7D,WAAW,aAAa;AAEtB,YAAQ,MAAM,MAAM,WAAW;EACjC;AAGA,UAAQ,SAAS,SAAS;AAC1B,QAAM,SAAS,YAAY,OAAO,OAAO,UAAU;AACnD,QAAM,aAAa,MAAK;AACtB,QAAI,CAAC;AAAM;AACX,iBAAa,aAAa;MACxB,MAAM;MACN,OAAO,CAAA;MACP,SAAS,CAAA;MACT,WAAW,CAAC,QAAQ;MACpB,QAAQ,aAAa,UAAS;MAC9B,kBAAkB,aAAa;KAChC;EACH;AAEA,eAAa,UAAU,CAAC,KAAK,CAAC;AAC9B,aAAU;AAGV,MAAI,aAAa,YAAW,GAAI;AAC9B,iBAAa,aAAY;AACzB,eAAU;EACZ;AAEA,SAAO,EAAC,OAAO,OAAM;AACvB;AAGA,eAAe,OAAO,EAAC,MAAM,cAAc,aAAY,GAAgB;AACrE,MAAI,QAAQ;AACZ,SAAO,MAAM;AAEX,UAAM,IAAI,QAAc,aAAW,WAAW,SAAS,KAAK,CAAC;AAC7D,QAAI,aAAa,UAAS,EAAG,KAAK,WAAM;AAre5C,UAAAA;AAqe+C,cAAAA,MAAA,MAAM,kBAAN,gBAAAA,IAAqB;KAAW,GAAG;AAC5E,mBAAa,eAAe,sBAAsB;IACpD;AACA,QAAI,CAAC,aAAa,YAAW,GAAI;AAC/B,cAAQ;AACR;IACF;AACA,iBAAa,aAAY;AAEzB,UAAM,WAAW,aAAa,QAAQ;AAEtC,4BAAO,QAAQ;AACf,QAAI;AACF,mBAAa,aAAa;QACxB,MAAM;QACN,OAAO,CAAA;QACP,SAAS,CAAA;QACT,WAAW,CAAC,QAAQ;QACpB,QAAQ,aAAa,UAAS;QAC9B,kBAAkB,aAAa;OAChC;AACH;EACF;AACF;;;ADleA,IAAI,sBAAsB;AAC1B,IAAI,qBAAqB;AAEzB,SAAS,uBAAoB;AAC3B,MAAI,CAAC,qBAAqB;AACxB,0BAAsB;AAEtB,YAAQ,KACN,mMAEuC;EAE3C;AACA,SAAO;AACT;AAGA,SAAS,qBAAkB;AACzB,MAAI,CAAC,oBAAoB;AACvB,yBAAqB;AAErB,YAAQ,KACN,gLAEmD;EAEvD;AACA,SAAO,SAAQ,IAAmC,MAAK;AACzD;AAMM,SAAUC,WACd,MAGC;AAED,QAAM,YAAY,KAAK,aAAa,qBAAoB;AACxD,QAAM,WAAW,KAAK,YAAY,mBAAkB;AACpD,YAAc,EAAC,GAAG,MAAM,WAAW,SAAQ,CAAC;AAC9C;AAMA,eAAsBC,gBACpB,MAGC;AAED,QAAM,YAAY,KAAK,aAAa,qBAAoB;AACxD,QAAM,WAAW,KAAK,YAAY,mBAAkB;AACpD,QAAM,eAAmB,EAAC,GAAG,MAAM,WAAW,SAAQ,CAAC;AACzD;;;AEhFA,IAAAC,eAAqC;AAMrC,SAAS,OAAI;AAAI;AAEjB,SAAS,cAAc,WAAgB,SAAe;AACpD,MAAI,CAAC,WAAW;AACd,UAAM,IAAI,MAAM,OAAO;EACzB;AACF;AAGM,SAAU,mBAAyC;;EAEvD;EACA,cAAc,CAAA;EACd,QAAAC,UAAS;EACT,iBAAiB;EACjB,gBAAgB;EAChB,oBAAoB;AAAI,GAkBzB;AACC,EAAAA,QAAO,MAAM,WAAW,gCAAgC;AAExD,WAAS,kBAAkB,OAAa;AACtC,WAAO,GAAG,MAAM,SAAS,IAAI,KAAK;EACpC;AAEA,QAAM,YAAqC;IACzC;MACE,OAAO;MACP,OAAO,CAAA;;IAET;MACE,OAAO;;MAEP,aAAa,EAAC,MAAM,KAAI;;IAE1B;MACE,OAAO;MACP,aAAa;;;AAIjB,MAAI;AAGF,QAAI,MAAM,CAAA,CAAE;EACd,SAAS,OAAgB;AACvB,IAAAA,QAAO,OAAO,aAAa,MAAM,SAAS,YAAa,MAAgB,OAAO,EAAE;EAClF;AAGA,QAAM,EAAC,YAAY,WAAW,qBAAqB,aAAY,IAAI;AAGnE,YAAU,KAAK,GAAG,qBAA6B,aAAa,SAAS,CAAC;AAEtE,aAAW,YAAY,MAAM,cAAc;AACzC,QAAI,EAAE,YAAY,cAAc;AAE9B,YAAM,cACJ,oBAAoB,EAAC,UAAU,WAAW,cAAc,aAAa,QAAAA,QAAM,CAAC,KAAK,CAAA;AACnF,gBAAU,KAAK,GAAG,WAAW;IAC/B;EACF;AAEA,YAAU,QAAQ,cAAW;AAC3B,aAAS,QAAQ,kBAAkB,SAAS,KAAK;AACjD,UAAM,aAAa,SAAS,kBAAkB;AAC9C,UAAM,YAAY,SAAS,iBAAiB;AAC5C,aAAS,iBAAiB,YAAS;AAEjC,iBAAW,MAAM;AAEjB,qBAAe,MAAM;IACvB;AACA,aAAS,gBAAgB,YAAS;AAEhC,gBAAU,MAAM;AAEhB,oBAAc,MAAM;AAGpB,UAAI,mBAAmB;AACrB,YAAI,OAAO,MAAM,aAAa;AAC5B,gBAAM,EAAC,KAAI,IAAI,OAAO,MAAM;AAC5B,cAAI,QAAQ,OAAO,SAAS,gBAAY,aAAAC,QAAM,IAAI,GAAG;AACnD,YAAAD,QAAO,OAAO,UAAU,QAAQ,6BAA6B;UAC/D;QACF,OAAO;AACL,UAAAA,QAAO,OAAO,MAAM,UAAS,EAAG,QAAQ,0BAA0B;QACpE;MACF;IACF;EACF,CAAC;AAED,SAAO;AACT;AAEA,SAAS,oBAA0C,EACjD,UACA,WACA,cACA,aACA,QAAAA,QAAM,GAOP;AACC,QAAM,WAAW,EAAC,GAAG,YAAW;AAChC,QAAM,UAAU,UAAU,QAAQ;AAElC,MAAI,CAAC,SAAS;AACZ,WAAO;EACT;AAEA,UAAQ,QAAQ,MAAM;IACpB,KAAK;AACH,eAAS,QAAQ,IAAI,CAAC,aAAa,QAAQ;AAC3C,aAAO;QACL;UACE,OAAO,GAAG,QAAQ,KAAK,OAAO,SAAS,QAAQ,CAAC,CAAC;UACjD,OAAO;;;IAIb,KAAK;AACH,UAAI,SAAS,SAAS;AACpB,iBAAS,QAAQ,IAAI,QAAQ;MAC/B,WAAW,SAAS,SAAS;AAC3B,iBAAS,QAAQ,IAAI,QAAQ;MAC/B,OAAO;AACL,iBAAS,QAAQ,IAAI,aAAa,QAAQ,IAAI;MAChD;AACA,aAAO;QACL;UACE,OAAO,GAAG,QAAQ,KAAK,OAAO,SAAS,QAAQ,CAAC,CAAC;UACjD,OAAO;;;IAIb,KAAK,YAAY;AACf,UAAI,OAAO,aAAa,QAAQ,MAAM,YAAY;AAChD,eAAO;MACT;AACA,UAAI,YAAY;AAChB,eAAS,QAAQ,IAAI,MAAK;AACxB;AACA,eAAO,aAAa,QAAQ;MAC9B;AACA,eAAS,iBAAiB;QACxB,CAAC,QAAQ,GAAG;;AAEd,YAAM,iBAAiB,MAAO,YAAY;AAC1C,YAAM,gBAAgB,MAAMA,QAAO,YAAY,GAAG,6BAA6B;AAE/E,aAAO;QACL;UACE,OAAO,GAAG,QAAQ,WAAW,aAAa,QAAQ,CAAC;UACnD,OAAO;UACP;UACA;;QAEF;UACE,OAAO,GAAG,QAAQ;UAClB,aAAa;YACX,gBAAgB;cACd,CAAC,QAAQ,GAAG;;;UAGhB;UACA;;;IAGN;IAEA;AACE,aAAO;EACX;AACF;AAEA,SAAS,qBACP,OACA,WAAwC;AAExC,QAAM,eAAe,MAAM;AAC3B,MAAI,CAAC,MAAM,QAAQ,YAAY,GAAG;AAChC,WAAO,CAAA;EACT;AAEA,QAAM,qBAA8C;IAClD,MAAM,aAAa,MAAK;IACxB,WAAW,MAAM,CAAC,EAAC,UAAU,GAAG,QAAQ,EAAC,CAAC;;AAG5C,QAAM,mBAA4C;IAChD,MAAM,IAAI,IAAI,YAAY;IAC1B,WAAW;;AAGb,QAAM,mBAA4C;IAChD,MAAM;MACJ,QAAQ,aAAa;;;AAGzB,aAAW,YAAY,OAAO;AAE5B,QAAI,UAAU,QAAQ,EAAE,SAAS,YAAY;AAE3C,uBAAiB,QAAQ,IAAI,CAAC,GAAG,SAAS,MAAM,QAAQ,EAAE,aAAa,KAAK,KAAK,GAAG,IAAI;IAC1F;EACF;AAEA,SAAO;IACL;MACE,OAAO;MACP,aAAa;;IAEf;MACE,OAAO;MACP,aAAa;;IAEf;MACE,OAAO;MACP,aAAa;;;AAGnB;;;ACxPA,IAAAE,eAAuC;AAGvC,IAAM,qBAAqC;EACzC,GAAG,kBAAK;EACR,IAAI;EACJ,OAAO;EACP,QAAQ;EACR,OAAO,EAAC,UAAU,YAAY,MAAM,OAAO,KAAK,MAAK;EACrD,OAAO,CAAC,IAAI,qBAAQ,CAAA,CAAE,CAAC;EACvB,iBAAiB;EACjB,OAAO;;AAqBT,IAAM,uBAAuD;;EAE3D,aAAa,cAAY,QAAQ,IAAI,KAAK,SAAS,IAAI,EAAE;EACzD,YAAY,cAAY,QAAQ,IAAI,MAAM,SAAS,IAAI,SAAS;EAChE,YAAY,cAAY,QAAQ,IAAI,UAAU,SAAS,IAAI,SAAS;;EAGpE,SAAS;;AAGL,IAAgB,aAAhB,MAA0B;;;;;EAgB9B,YAAY,QAAmB,CAAA,GAAI,SAAqB;AAfxD,SAAA,OAAyB;AAGzB,SAAA,YAAqB;AAIb,SAAA,aAA0B,CAAA;AAC1B,SAAA,mBAAqC;AACrC,SAAA,gBAAyB;AAO/B,SAAK,QAAQ,EAAC,GAAG,oBAAoB,GAAG,MAAK;AAG7C,SAAK,aAAa,QAAQ,OAAO,4BAA4B;AAE7D,SAAK,cAAc,EAAC,GAAG,sBAAsB,GAAG,QAAO;EACzD;EAEA,IAAI,kBAAe;AACjB,UAAM,IAAI,MAAM,iBAAiB;EACnC;;;;EAKA,IAAI,WAAsB;AACxB,QAAI,CAAC,MAAM,QAAQ,SAAS,GAAG;AAC7B,kBAAY,CAAC,SAAS;IACxB;AACA,eAAW,YAAY,WAAW;AAChC,WAAK,WAAW,KAAK,QAAQ;IAC/B;AACA,WAAO;EACT;;;;EAKA,IAAI,UAAmE,CAAA,GAAE;AACvE,WAAO,OAAO,KAAK,aAAa,OAAO;AAEvC,WAAO,IAAI,QAAc,CAAC,SAAS,WAAU;AAC3C,WAAK,OAAO,IAAI,kBAAK;QACnB,GAAG,KAAK;QACR,qBAAqB,KAAK,qBAAqB,KAAK,IAAI;QACxD,QAAQ;OACT;AAED,WAAK,YAAY;AACjB,WAAK,mBAAmB;IAC1B,CAAC,EACE,KAAK,MAAK;AACT,UAAI,UAAU,QAAQ,QAAO;AAE7B,WAAK,WAAW,QAAQ,cAAW;AACjC,kBAAU,QAAQ,KAAK,MAAM,KAAK,SAAS,QAAQ,CAAC;MACtD,CAAC;AACD,aAAO;IACT,CAAC,EACA,MAAM,CAAC,UAAkB;AACxB,WAAK,KAAK,EAAC,OAAQ,MAAgB,QAAO,CAAC;IAC7C,CAAC,EACA,QAAQ,MAAK;AACZ,WAAK,KAAM,SAAQ;AACnB,WAAK,OAAO;IACd,CAAC;EACL;;EAIA,aAAa,UAAmB;AAC9B,eAAW,OAAO,KAAK,iBAAiB;AACtC,UAAI,EAAE,OAAO,WAAW;AACtB,iBAAS,GAAG,IAAI,KAAK,gBAAgB,GAAG;MAC1C;IACF;AACA,SAAK,YAAY,YAAY,QAAQ;EACvC;;EASU,KAAK,QAAe;AAC5B,SAAK,YAAY,WAAW,KAAK,kBAAmB,MAAM;EAC5D;EAEU,KAAK,QAAiC;AAC9C,SAAK,YAAY,WAAW,KAAK,kBAAmB,MAAM;EAC5D;;EAIQ,qBAAqBC,SAAc;AACzC,SAAK,YAAYA,QAAO,KAAK;EAC/B;EAEQ,MAAM,SAAS,UAAmB;AACxC,SAAK,mBAAmB;AAGxB,SAAK,aAAa,QAAQ;AAE1B,UAAM,UAAU,SAAS,WAAW,KAAK,YAAY;AACrD,UAAM,OAAO,KAAK,YAAY,QAAQ;AACtC,UAAM,cAAc,IAAI,QAAQ,CAAC,GAAG,WAAU;AAC5C,iBAAW,MAAK;AACd,eAAO,iBAAiB,OAAO,IAAI;MACrC,GAAG,OAAO;IACZ,CAAC;AAED,QAAI;AACF,YAAM,QAAQ,KAAK,CAAC,MAAM,WAAW,CAAC;AACtC,YAAM,KAAK,OAAO,QAAQ;IAC5B,SAAS,KAAc;AACrB,UAAI,OAAO,QAAQ,YAAY,IAAI,WAAW,SAAS,GAAG;AACxD,aAAK,KAAK,EAAC,OAAO,IAAG,CAAC;MACxB;IACF;EACF;;;;AC3KI,SAAU,qBAAqB,YAAuB;AAM1D,QAAM,OAAO,WAAW,sBAAqB;AAC7C,SAAO;IACL,GAAG,OAAO,UAAU,KAAK;IACzB,GAAG,OAAO,UAAU,KAAK;IACzB,OAAO,KAAK;IACZ,QAAQ,KAAK;;AAEjB;;;ACqBA,IAAMC,wBAAuB;EAC3B,kBAAkB,CAAA;;AAGpB,IAAM,oBAAsC;EAC1C,MAAM;EACN,OAAO,CAAA;EACP,gBAAgB,CAAC,EAAC,MAAM,OAAM,MAAK;EAEnC;EACA,eAAe,CAAC,EAAC,MAAM,QAAQ,KAAI,MAAK;AAlD1C,QAAAC;AAmDI;;MAEE,GAACA,MAAA,KAAK,iBAAL,gBAAAA,IAAmB,kBACpB,OAAO,MAAM,WAAS,MAAM,QAAQ;MACpC;AACA,WAAI;IACN;EACF;EACA,aAAa;;AAGT,IAAO,qBAAP,cAAkC,WAIvC;EAGC,YAAY,OAAK;AACf,UAAM,OAAOD,qBAAoB;AAH3B,SAAA,aAAsB;AAK5B,SAAK,aAAa;EACpB;EAEA,IAAI,kBAAe;AACjB,WAAO;EACT;EAEA,aAAa,UAA0B;AACrC,UAAM,aAAa,QAAQ;AAC3B,QAAI,CAAC,SAAS,aAAa;AACzB,YAAM,IAAI,MAAM,aAAa,SAAS,IAAI,6BAA6B;IACzE;EACF;EAEA,YAAY,UAA0B;AACpC,UAAM,OAAO,KAAK;AAElB,WAAO,IAAI,QAAc,aAAU;AACjC,WAAK,SAAS;QACZ,GAAG,KAAK;QACR,GAAG;QACH,gBAAgB,MAAK;AACnB,mBAAS,eAAgB;YACvB;;YAEA,QAAQ,KAAK,KAAK,aAAa,UAAS;WACzC;QACH;QACA,eAAe,MAAK;AAClB,mBAAS,cAAe;YACtB;;YAEA,QAAQ,KAAK,KAAK,aAAa,UAAS;YACxC,MAAM;WACP;QACH;OACD;IACH,CAAC;EACH;EAEA,MAAM,OAAO,UAA0B;AAhHzC,QAAAC,KAAA;AAiHI,QAAI,KAAK,YAAY;AAEnB;IACF;AACA,SAAK,aAAa;AAElB,UAAM,cAAc;MAClB,GAAG,KAAK,YAAY;MACpB,GAAG,SAAS;MACZ,aAAa,SAAS;MACtB,QAAQ,qBAAqB,KAAK,KAAM,UAAS,CAAG;;AAGtD,UAAM,SAAS,MAAM,OAAO,uCAAuC,WAAW;AAG9E,QAAI;AACJ,UAAM,YAAW,MAAAA,MAAA,KAAK,YAAY,qBAAjB,gBAAAA,IAAmC,aAAnC,mBAA6C;AAC9D,QAAI,CAAC,OAAO,SAAS;AACnB,kBAAY,cAAc,YAAY,YAAY,QAChD,kBACA,oCAAoC,QAAQ,GAAG;AAEjD,uBAAiB,MAAM,OAAO,uCAAuC,WAAW;IAClF;AAGA,QAAI,OAAO,WAAW,eAAe,SAAS;AAC5C,WAAK,KAAK,MAAM;IAClB,OAAO;AACL,WAAK,KAAK,MAAM;IAClB;AAEA,SAAK,aAAa;EACpB;;;;ACzHF,IAAMC,qBAAyC;EAC7C,MAAM;EACN,QAAQ,CAAA;EACR,gBAAgB,CAAC,EAAC,KAAI,MAAK;EAAE;EAC7B,eAAe,CAAC,EAAC,MAAM,QAAQ,QAAO,MAAK;EAAE;;AAG/C,SAAS,MAAM,SAAe;AAC5B,SAAO,IAAI,QAAQ,aAAW,OAAO,WAAW,SAAS,OAAO,CAAC;AACnE;AAEM,IAAO,wBAAP,cAAqC,WAAmC;EAC5E,IAAI,kBAAe;AACjB,WAAOA;EACT;;EAGA,MAAM,YAAY,UAA6B;AAC7C,aAAS,UAAU,SAAS,eAAe;MACzC,MAAM,KAAK;KACZ;AAED,eAAW,SAAS,SAAS,QAAQ;AACnC,UAAI,MAAM,MAAM;AACd,cAAM,MAAM,MAAM,IAAI;MACxB,OAAO;AACL,cAAM,OAAO,+BAA+B,KAAK;MACnD;IACF;EACF;EAEA,MAAM,OAAO,UAAQ;AACnB,aAAS,cAAc;MACrB,MAAM,KAAK;;MAEX,QAAQ,KAAK,KAAK,aAAa,UAAS;MACxC,SAAS,SAAS;KACnB;EACH;;",
|
|
5
|
+
"names": ["testLayer", "testLayerAsync", "import_test_utils", "layer", "_a", "testLayer", "testLayerAsync", "import_core", "assert", "count", "import_core", "device", "DEFAULT_TEST_OPTIONS", "_a", "DEFAULT_TEST_CASE"]
|
|
6
6
|
}
|
package/dist/lifecycle-test.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Layer, Viewport } from '@deck.gl/core';
|
|
2
2
|
import type { Timeline } from '@luma.gl/engine';
|
|
3
|
+
import type { Device } from '@luma.gl/core';
|
|
3
4
|
type InitializeLayerTestOptions = {
|
|
4
5
|
/** The layer instance to test */
|
|
5
6
|
layer: Layer;
|
|
@@ -76,7 +77,7 @@ export type LayerTestCase<LayerT extends Layer> = {
|
|
|
76
77
|
layer: Layer;
|
|
77
78
|
testCase: LayerTestCase<LayerT>;
|
|
78
79
|
}) => void;
|
|
79
|
-
/** Called after layer is updated */
|
|
80
|
+
/** Called after layer is updated. Async assertions require `testLayerAsync`. */
|
|
80
81
|
onAfterUpdate?: (params: {
|
|
81
82
|
testCase: LayerTestCase<LayerT>;
|
|
82
83
|
layer: LayerT;
|
|
@@ -84,9 +85,13 @@ export type LayerTestCase<LayerT extends Layer> = {
|
|
|
84
85
|
subLayers: Layer[];
|
|
85
86
|
subLayer: Layer | null;
|
|
86
87
|
spies: Record<string, Spy>;
|
|
87
|
-
}) => void
|
|
88
|
+
}) => void | Promise<void>;
|
|
88
89
|
};
|
|
89
90
|
export type TestLayerOptions<LayerT extends Layer> = {
|
|
91
|
+
/** Render after each update. Disable for tests that only inspect attribute bindings. */
|
|
92
|
+
draw?: boolean;
|
|
93
|
+
/** Device used to initialize and render the layer. Defaults to the WebGL test device. */
|
|
94
|
+
device?: Device;
|
|
90
95
|
/** The layer class to test against */
|
|
91
96
|
Layer: LayerClass<LayerT>;
|
|
92
97
|
/** The initial viewport
|
|
@@ -116,7 +121,7 @@ export type TestLayerOptions<LayerT extends Layer> = {
|
|
|
116
121
|
export declare function testLayer<LayerT extends Layer>(opts: TestLayerOptions<LayerT>): void;
|
|
117
122
|
/**
|
|
118
123
|
* Initialize and updates a layer over a sequence of scenarios (test cases).
|
|
119
|
-
* Each test case
|
|
124
|
+
* Each test case waits for loaded data and checks all requested layer updates.
|
|
120
125
|
*/
|
|
121
126
|
export declare function testLayerAsync<LayerT extends Layer>(opts: TestLayerOptions<LayerT>): Promise<void>;
|
|
122
127
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle-test.d.ts","sourceRoot":"","sources":["../src/lifecycle-test.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAC,KAAK,EAAkB,QAAQ,EAAC,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"lifecycle-test.d.ts","sourceRoot":"","sources":["../src/lifecycle-test.ts"],"names":[],"mappings":"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"}
|
package/dist/lifecycle-test.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// deck.gl
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
|
-
import { LayerManager, MapView, DeckRenderer } from '@deck.gl/core';
|
|
4
|
+
import { LayerManager, MapView, DeckRenderer, assert } from '@deck.gl/core';
|
|
5
5
|
import { device } from "./utils/setup-gl.js";
|
|
6
6
|
const testViewport = new MapView({}).makeViewport({
|
|
7
7
|
width: 100,
|
|
@@ -35,7 +35,7 @@ export async function testInitializeLayerAsync(opts) {
|
|
|
35
35
|
const layerManager = initializeLayerManager(opts);
|
|
36
36
|
const deckRenderer = new DeckRenderer(device);
|
|
37
37
|
while (!opts.layer.isLoaded) {
|
|
38
|
-
await update({ layerManager, deckRenderer, oldResourceCounts: {} });
|
|
38
|
+
await update({ draw: true, layerManager, deckRenderer, oldResourceCounts: {} });
|
|
39
39
|
}
|
|
40
40
|
if (opts.finalize === false) {
|
|
41
41
|
return {
|
|
@@ -70,36 +70,42 @@ export function testLayer(opts) {
|
|
|
70
70
|
}
|
|
71
71
|
/**
|
|
72
72
|
* Initialize and updates a layer over a sequence of scenarios (test cases).
|
|
73
|
-
* Each test case
|
|
73
|
+
* Each test case waits for loaded data and checks all requested layer updates.
|
|
74
74
|
*/
|
|
75
75
|
export async function testLayerAsync(opts) {
|
|
76
76
|
const { Layer, testCases = [], spies = [], onError = defaultOnError, createSpy, resetSpy } = opts;
|
|
77
77
|
const resources = setupLayerTests(`testing ${Layer.layerName}`, opts);
|
|
78
78
|
let layer = new Layer();
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
79
|
+
try {
|
|
80
|
+
// Run successive update tests
|
|
81
|
+
for (const testCase of testCases) {
|
|
82
|
+
// Save old state before update
|
|
83
|
+
const oldState = { ...layer.state };
|
|
84
|
+
const { layer: newLayer, spyMap } = runLayerTestUpdate(testCase, resources, layer, spies, createSpy);
|
|
85
|
+
await runLayerTestPostUpdateCheck(testCase, newLayer, oldState, spyMap);
|
|
86
|
+
// Async props may finish while an assertion is awaited. Apply their requested updates too.
|
|
87
|
+
while (!newLayer.isLoaded ||
|
|
88
|
+
resources.layerManager.getLayers().some(layer => layer.internalState?.needsUpdate)) {
|
|
89
|
+
await update(resources);
|
|
90
|
+
await runLayerTestPostUpdateCheck(testCase, newLayer, oldState, spyMap);
|
|
91
|
+
}
|
|
92
|
+
// Reset spies between test cases
|
|
93
|
+
Object.keys(spyMap).forEach(k => resetSpy(spyMap[k]));
|
|
94
|
+
layer = newLayer;
|
|
88
95
|
}
|
|
89
|
-
// Reset spies between test cases
|
|
90
|
-
Object.keys(spyMap).forEach(k => resetSpy(spyMap[k]));
|
|
91
|
-
layer = newLayer;
|
|
92
96
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
+
finally {
|
|
98
|
+
// Use async cleanup to allow pending luma.gl async operations to complete
|
|
99
|
+
const error = await cleanupAfterLayerTestsAsync(resources);
|
|
100
|
+
if (error) {
|
|
101
|
+
onError(error, `${Layer.layerName} should delete all resources`);
|
|
102
|
+
}
|
|
97
103
|
}
|
|
98
104
|
}
|
|
99
|
-
function setupLayerTests(testTitle, { viewport = testViewport, timeline, onError = defaultOnError }) {
|
|
105
|
+
function setupLayerTests(testTitle, { device: testDevice = device, draw = true, viewport = testViewport, timeline, onError = defaultOnError }) {
|
|
100
106
|
const oldResourceCounts = getResourceCounts();
|
|
101
|
-
const layerManager = new LayerManager(
|
|
102
|
-
const deckRenderer = new DeckRenderer(
|
|
107
|
+
const layerManager = new LayerManager(testDevice, { viewport, timeline });
|
|
108
|
+
const deckRenderer = new DeckRenderer(testDevice);
|
|
103
109
|
const props = {
|
|
104
110
|
layerFilter: null,
|
|
105
111
|
drawPickingColors: false,
|
|
@@ -107,7 +113,7 @@ function setupLayerTests(testTitle, { viewport = testViewport, timeline, onError
|
|
|
107
113
|
};
|
|
108
114
|
layerManager.setProps(props);
|
|
109
115
|
deckRenderer.setProps(props);
|
|
110
|
-
return { layerManager, deckRenderer, oldResourceCounts };
|
|
116
|
+
return { draw, layerManager, deckRenderer, oldResourceCounts };
|
|
111
117
|
}
|
|
112
118
|
function cleanupAfterLayerTests({ layerManager, deckRenderer, oldResourceCounts }) {
|
|
113
119
|
layerManager.setLayers([]);
|
|
@@ -166,7 +172,7 @@ function runLayerTestPostUpdateCheck(testCase, newLayer, oldState, spyMap) {
|
|
|
166
172
|
? newLayer.getSubLayers()
|
|
167
173
|
: [];
|
|
168
174
|
const subLayer = subLayers.length ? subLayers[0] : null;
|
|
169
|
-
testCase.onAfterUpdate({
|
|
175
|
+
return testCase.onAfterUpdate({
|
|
170
176
|
testCase,
|
|
171
177
|
layer: newLayer,
|
|
172
178
|
oldState,
|
|
@@ -176,8 +182,10 @@ function runLayerTestPostUpdateCheck(testCase, newLayer, oldState, spyMap) {
|
|
|
176
182
|
});
|
|
177
183
|
}
|
|
178
184
|
}
|
|
179
|
-
function runLayerTestUpdate(testCase, { layerManager, deckRenderer }, layer, spies, spyFactory) {
|
|
185
|
+
function runLayerTestUpdate(testCase, { draw, layerManager, deckRenderer }, layer, spies, spyFactory) {
|
|
180
186
|
const { props, updateProps, onBeforeUpdate, viewport = layerManager.context.viewport } = testCase;
|
|
187
|
+
// Lifecycle tests construct their manager with a materialized test viewport.
|
|
188
|
+
assert(viewport);
|
|
181
189
|
if (onBeforeUpdate) {
|
|
182
190
|
onBeforeUpdate({ layer, testCase });
|
|
183
191
|
}
|
|
@@ -193,6 +201,8 @@ function runLayerTestUpdate(testCase, { layerManager, deckRenderer }, layer, spi
|
|
|
193
201
|
spies = testCase.spies || spies;
|
|
194
202
|
const spyMap = injectSpies(layer, spies, spyFactory);
|
|
195
203
|
const drawLayers = () => {
|
|
204
|
+
if (!draw)
|
|
205
|
+
return;
|
|
196
206
|
deckRenderer.renderLayers({
|
|
197
207
|
pass: 'test',
|
|
198
208
|
views: {},
|
|
@@ -212,25 +222,32 @@ function runLayerTestUpdate(testCase, { layerManager, deckRenderer }, layer, spi
|
|
|
212
222
|
return { layer, spyMap };
|
|
213
223
|
}
|
|
214
224
|
/* global setTimeout */
|
|
215
|
-
function update({ layerManager, deckRenderer }) {
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
225
|
+
async function update({ draw, layerManager, deckRenderer }) {
|
|
226
|
+
let delay = 0;
|
|
227
|
+
while (true) {
|
|
228
|
+
// Let asynchronous data and coordinate-system loads finish between update attempts.
|
|
229
|
+
await new Promise(resolve => setTimeout(resolve, delay));
|
|
230
|
+
if (layerManager.getLayers().some(layer => layer.internalState?.needsUpdate)) {
|
|
231
|
+
layerManager.setNeedsUpdate('pending layer update');
|
|
232
|
+
}
|
|
233
|
+
if (!layerManager.needsUpdate()) {
|
|
234
|
+
delay = 50;
|
|
235
|
+
continue;
|
|
236
|
+
}
|
|
237
|
+
layerManager.updateLayers();
|
|
238
|
+
const viewport = layerManager.context.viewport;
|
|
239
|
+
// Lifecycle tests always provide a viewport before running updates.
|
|
240
|
+
assert(viewport);
|
|
241
|
+
if (draw)
|
|
242
|
+
deckRenderer.renderLayers({
|
|
243
|
+
pass: 'test',
|
|
244
|
+
views: {},
|
|
245
|
+
effects: [],
|
|
246
|
+
viewports: [viewport],
|
|
247
|
+
layers: layerManager.getLayers(),
|
|
248
|
+
onViewportActive: layerManager.activateViewport
|
|
249
|
+
});
|
|
250
|
+
return;
|
|
251
|
+
}
|
|
235
252
|
}
|
|
236
253
|
//# sourceMappingURL=lifecycle-test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle-test.js","sourceRoot":"","sources":["../src/lifecycle-test.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,YAAY,EAAE,OAAO,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"lifecycle-test.js","sourceRoot":"","sources":["../src/lifecycle-test.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/setup-gl.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NullDevice } from '@luma.gl/test-utils';
|
|
2
|
-
export declare const device: import("@luma.gl/webgl").WebGLDevice | NullDevice;
|
|
1
|
+
import { NullDevice } from '@luma.gl/core/test-utils';
|
|
2
|
+
export declare const device: import("@luma.gl/core/webgl").WebGLDevice | NullDevice;
|
|
3
3
|
export declare const gl: number | WebGL2RenderingContext;
|
|
4
4
|
//# sourceMappingURL=setup-gl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-gl.d.ts","sourceRoot":"","sources":["../../src/utils/setup-gl.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"setup-gl.d.ts","sourceRoot":"","sources":["../../src/utils/setup-gl.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AAIpD,eAAO,MAAM,MAAM,wDAAoC,CAAC;AACxD,eAAO,MAAM,EAAE,iCAAuB,CAAC"}
|
package/dist/utils/setup-gl.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
// deck.gl
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
|
-
import {
|
|
5
|
-
|
|
4
|
+
import { NullDevice } from '@luma.gl/core/test-utils';
|
|
5
|
+
import { webglDevice } from '@luma.gl/core/test-utils-legacy';
|
|
6
|
+
// Use luma.gl's legacy pre-created device, falling back to NullDevice in Node.
|
|
6
7
|
export const device = webglDevice || new NullDevice({});
|
|
7
8
|
export const gl = webglDevice?.gl || 1;
|
|
8
9
|
globalThis.glContext = globalThis.glContext || gl;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-gl.js","sourceRoot":"","sources":["../../src/utils/setup-gl.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"setup-gl.js","sourceRoot":"","sources":["../../src/utils/setup-gl.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAC,WAAW,EAAC,MAAM,iCAAiC,CAAC;AAE5D,+EAA+E;AAC/E,MAAM,CAAC,MAAM,MAAM,GAAG,WAAW,IAAI,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;AACxD,MAAM,CAAC,MAAM,EAAE,GAAG,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC;AAEvC,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC"}
|
package/dist/vitest.cjs
CHANGED
|
@@ -36,10 +36,11 @@ var import_vitest = require("vitest");
|
|
|
36
36
|
var import_core = require("@deck.gl/core");
|
|
37
37
|
|
|
38
38
|
// dist/utils/setup-gl.js
|
|
39
|
-
var import_test_utils = require("@luma.gl/test-utils");
|
|
40
|
-
var
|
|
39
|
+
var import_test_utils = require("@luma.gl/core/test-utils");
|
|
40
|
+
var import_test_utils_legacy = require("@luma.gl/core/test-utils-legacy");
|
|
41
|
+
var device = import_test_utils_legacy.webglDevice || new import_test_utils.NullDevice({});
|
|
41
42
|
var _a;
|
|
42
|
-
var gl = ((_a =
|
|
43
|
+
var gl = ((_a = import_test_utils_legacy.webglDevice) == null ? void 0 : _a.gl) || 1;
|
|
43
44
|
globalThis.glContext = globalThis.glContext || gl;
|
|
44
45
|
|
|
45
46
|
// dist/lifecycle-test.js
|
|
@@ -75,7 +76,7 @@ async function testInitializeLayerAsync(opts) {
|
|
|
75
76
|
const layerManager = initializeLayerManager(opts);
|
|
76
77
|
const deckRenderer = new import_core.DeckRenderer(device);
|
|
77
78
|
while (!opts.layer.isLoaded) {
|
|
78
|
-
await update({ layerManager, deckRenderer, oldResourceCounts: {} });
|
|
79
|
+
await update({ draw: true, layerManager, deckRenderer, oldResourceCounts: {} });
|
|
79
80
|
}
|
|
80
81
|
if (opts.finalize === false) {
|
|
81
82
|
return {
|
|
@@ -105,26 +106,32 @@ async function testLayerAsync(opts) {
|
|
|
105
106
|
const { Layer, testCases = [], spies = [], onError = defaultOnError, createSpy, resetSpy } = opts;
|
|
106
107
|
const resources = setupLayerTests(`testing ${Layer.layerName}`, opts);
|
|
107
108
|
let layer = new Layer();
|
|
108
|
-
|
|
109
|
-
const
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
109
|
+
try {
|
|
110
|
+
for (const testCase of testCases) {
|
|
111
|
+
const oldState = { ...layer.state };
|
|
112
|
+
const { layer: newLayer, spyMap } = runLayerTestUpdate(testCase, resources, layer, spies, createSpy);
|
|
113
|
+
await runLayerTestPostUpdateCheck(testCase, newLayer, oldState, spyMap);
|
|
114
|
+
while (!newLayer.isLoaded || resources.layerManager.getLayers().some((layer2) => {
|
|
115
|
+
var _a2;
|
|
116
|
+
return (_a2 = layer2.internalState) == null ? void 0 : _a2.needsUpdate;
|
|
117
|
+
})) {
|
|
118
|
+
await update(resources);
|
|
119
|
+
await runLayerTestPostUpdateCheck(testCase, newLayer, oldState, spyMap);
|
|
120
|
+
}
|
|
121
|
+
Object.keys(spyMap).forEach((k) => resetSpy(spyMap[k]));
|
|
122
|
+
layer = newLayer;
|
|
123
|
+
}
|
|
124
|
+
} finally {
|
|
125
|
+
const error = await cleanupAfterLayerTestsAsync(resources);
|
|
126
|
+
if (error) {
|
|
127
|
+
onError(error, `${Layer.layerName} should delete all resources`);
|
|
115
128
|
}
|
|
116
|
-
Object.keys(spyMap).forEach((k) => resetSpy(spyMap[k]));
|
|
117
|
-
layer = newLayer;
|
|
118
|
-
}
|
|
119
|
-
const error = await cleanupAfterLayerTestsAsync(resources);
|
|
120
|
-
if (error) {
|
|
121
|
-
onError(error, `${Layer.layerName} should delete all resources`);
|
|
122
129
|
}
|
|
123
130
|
}
|
|
124
|
-
function setupLayerTests(testTitle, { viewport = testViewport, timeline, onError = defaultOnError }) {
|
|
131
|
+
function setupLayerTests(testTitle, { device: testDevice = device, draw = true, viewport = testViewport, timeline, onError = defaultOnError }) {
|
|
125
132
|
const oldResourceCounts = getResourceCounts();
|
|
126
|
-
const layerManager = new import_core.LayerManager(
|
|
127
|
-
const deckRenderer = new import_core.DeckRenderer(
|
|
133
|
+
const layerManager = new import_core.LayerManager(testDevice, { viewport, timeline });
|
|
134
|
+
const deckRenderer = new import_core.DeckRenderer(testDevice);
|
|
128
135
|
const props = {
|
|
129
136
|
layerFilter: null,
|
|
130
137
|
drawPickingColors: false,
|
|
@@ -132,7 +139,7 @@ function setupLayerTests(testTitle, { viewport = testViewport, timeline, onError
|
|
|
132
139
|
};
|
|
133
140
|
layerManager.setProps(props);
|
|
134
141
|
deckRenderer.setProps(props);
|
|
135
|
-
return { layerManager, deckRenderer, oldResourceCounts };
|
|
142
|
+
return { draw, layerManager, deckRenderer, oldResourceCounts };
|
|
136
143
|
}
|
|
137
144
|
function cleanupAfterLayerTests({ layerManager, deckRenderer, oldResourceCounts }) {
|
|
138
145
|
layerManager.setLayers([]);
|
|
@@ -176,7 +183,7 @@ function runLayerTestPostUpdateCheck(testCase, newLayer, oldState, spyMap) {
|
|
|
176
183
|
if (testCase.onAfterUpdate) {
|
|
177
184
|
const subLayers = newLayer.isComposite ? newLayer.getSubLayers() : [];
|
|
178
185
|
const subLayer = subLayers.length ? subLayers[0] : null;
|
|
179
|
-
testCase.onAfterUpdate({
|
|
186
|
+
return testCase.onAfterUpdate({
|
|
180
187
|
testCase,
|
|
181
188
|
layer: newLayer,
|
|
182
189
|
oldState,
|
|
@@ -186,8 +193,9 @@ function runLayerTestPostUpdateCheck(testCase, newLayer, oldState, spyMap) {
|
|
|
186
193
|
});
|
|
187
194
|
}
|
|
188
195
|
}
|
|
189
|
-
function runLayerTestUpdate(testCase, { layerManager, deckRenderer }, layer, spies, spyFactory) {
|
|
196
|
+
function runLayerTestUpdate(testCase, { draw, layerManager, deckRenderer }, layer, spies, spyFactory) {
|
|
190
197
|
const { props, updateProps, onBeforeUpdate, viewport = layerManager.context.viewport } = testCase;
|
|
198
|
+
(0, import_core.assert)(viewport);
|
|
191
199
|
if (onBeforeUpdate) {
|
|
192
200
|
onBeforeUpdate({ layer, testCase });
|
|
193
201
|
}
|
|
@@ -199,6 +207,8 @@ function runLayerTestUpdate(testCase, { layerManager, deckRenderer }, layer, spi
|
|
|
199
207
|
spies = testCase.spies || spies;
|
|
200
208
|
const spyMap = injectSpies(layer, spies, spyFactory);
|
|
201
209
|
const drawLayers = () => {
|
|
210
|
+
if (!draw)
|
|
211
|
+
return;
|
|
202
212
|
deckRenderer.renderLayers({
|
|
203
213
|
pass: "test",
|
|
204
214
|
views: {},
|
|
@@ -216,26 +226,34 @@ function runLayerTestUpdate(testCase, { layerManager, deckRenderer }, layer, spi
|
|
|
216
226
|
}
|
|
217
227
|
return { layer, spyMap };
|
|
218
228
|
}
|
|
219
|
-
function update({ layerManager, deckRenderer }) {
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
229
|
+
async function update({ draw, layerManager, deckRenderer }) {
|
|
230
|
+
let delay = 0;
|
|
231
|
+
while (true) {
|
|
232
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
233
|
+
if (layerManager.getLayers().some((layer) => {
|
|
234
|
+
var _a2;
|
|
235
|
+
return (_a2 = layer.internalState) == null ? void 0 : _a2.needsUpdate;
|
|
236
|
+
})) {
|
|
237
|
+
layerManager.setNeedsUpdate("pending layer update");
|
|
238
|
+
}
|
|
239
|
+
if (!layerManager.needsUpdate()) {
|
|
240
|
+
delay = 50;
|
|
241
|
+
continue;
|
|
242
|
+
}
|
|
243
|
+
layerManager.updateLayers();
|
|
244
|
+
const viewport = layerManager.context.viewport;
|
|
245
|
+
(0, import_core.assert)(viewport);
|
|
246
|
+
if (draw)
|
|
247
|
+
deckRenderer.renderLayers({
|
|
248
|
+
pass: "test",
|
|
249
|
+
views: {},
|
|
250
|
+
effects: [],
|
|
251
|
+
viewports: [viewport],
|
|
252
|
+
layers: layerManager.getLayers(),
|
|
253
|
+
onViewportActive: layerManager.activateViewport
|
|
254
|
+
});
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
239
257
|
}
|
|
240
258
|
|
|
241
259
|
// dist/utils/layer.js
|
|
@@ -278,12 +296,12 @@ function generateLayerTests({
|
|
|
278
296
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
279
297
|
Layer,
|
|
280
298
|
sampleProps = {},
|
|
281
|
-
assert = defaultAssert,
|
|
299
|
+
assert: assert2 = defaultAssert,
|
|
282
300
|
onBeforeUpdate = noop,
|
|
283
301
|
onAfterUpdate = noop,
|
|
284
302
|
runDefaultAsserts = true
|
|
285
303
|
}) {
|
|
286
|
-
|
|
304
|
+
assert2(Layer.layerName, "Layer should have display name");
|
|
287
305
|
function wrapTestCaseTitle(title) {
|
|
288
306
|
return `${Layer.layerName}#${title}`;
|
|
289
307
|
}
|
|
@@ -305,13 +323,13 @@ function generateLayerTests({
|
|
|
305
323
|
try {
|
|
306
324
|
new Layer({});
|
|
307
325
|
} catch (error) {
|
|
308
|
-
|
|
326
|
+
assert2(false, `Construct ${Layer.layerName} throws: ${error.message}`);
|
|
309
327
|
}
|
|
310
328
|
const { _propTypes: propTypes, _mergedDefaultProps: defaultProps } = Layer;
|
|
311
329
|
testCases.push(...makeAltDataTestCases(sampleProps, propTypes));
|
|
312
330
|
for (const propName in Layer.defaultProps) {
|
|
313
331
|
if (!(propName in sampleProps)) {
|
|
314
|
-
const newTestCase = makeAltPropTestCase({ propName, propTypes, defaultProps, sampleProps, assert }) || [];
|
|
332
|
+
const newTestCase = makeAltPropTestCase({ propName, propTypes, defaultProps, sampleProps, assert: assert2 }) || [];
|
|
315
333
|
testCases.push(...newTestCase);
|
|
316
334
|
}
|
|
317
335
|
}
|
|
@@ -330,17 +348,17 @@ function generateLayerTests({
|
|
|
330
348
|
if (params.layer.isComposite) {
|
|
331
349
|
const { data } = params.layer.props;
|
|
332
350
|
if (data && typeof data === "object" && (0, import_core2._count)(data)) {
|
|
333
|
-
|
|
351
|
+
assert2(params.subLayers.length, "Layer should have sublayers");
|
|
334
352
|
}
|
|
335
353
|
} else {
|
|
336
|
-
|
|
354
|
+
assert2(params.layer.getModels().length, "Layer should have models");
|
|
337
355
|
}
|
|
338
356
|
}
|
|
339
357
|
};
|
|
340
358
|
});
|
|
341
359
|
return testCases;
|
|
342
360
|
}
|
|
343
|
-
function makeAltPropTestCase({ propName, propTypes, defaultProps, sampleProps, assert }) {
|
|
361
|
+
function makeAltPropTestCase({ propName, propTypes, defaultProps, sampleProps, assert: assert2 }) {
|
|
344
362
|
const newProps = { ...sampleProps };
|
|
345
363
|
const propDef = propTypes[propName];
|
|
346
364
|
if (!propDef) {
|
|
@@ -382,7 +400,7 @@ function makeAltPropTestCase({ propName, propTypes, defaultProps, sampleProps, a
|
|
|
382
400
|
[propName]: "function"
|
|
383
401
|
};
|
|
384
402
|
const onBeforeUpdate = () => callCount = 0;
|
|
385
|
-
const onAfterUpdate = () =>
|
|
403
|
+
const onAfterUpdate = () => assert2(callCount > 0, "accessor function is called");
|
|
386
404
|
return [
|
|
387
405
|
{
|
|
388
406
|
title: `${propName}: () => ${defaultProps[propName]}`,
|
package/dist/vitest.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/vitest.ts", "../src/lifecycle-test.ts", "../src/utils/setup-gl.ts", "../src/utils/layer.ts", "../src/utils/precision.ts", "../src/generate-layer-tests.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;mBAAAA;EAAA,sBAAAC;EAAA;;;AAOA,oBAAiB;;;ACHjB,
|
|
5
|
-
"names": ["testLayer", "testLayerAsync", "import_core", "count", "_a", "testLayer", "testLayerAsync"]
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["testLayer", "testLayerAsync", "layer", "_a", "import_core", "assert", "count", "_a", "testLayer", "testLayerAsync"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "Test utilities for deck.gl layers",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"version": "
|
|
6
|
+
"version": "10.0.0-alpha.1",
|
|
7
7
|
"publishConfig": {
|
|
8
8
|
"access": "public"
|
|
9
9
|
},
|
|
@@ -41,13 +41,12 @@
|
|
|
41
41
|
"src"
|
|
42
42
|
],
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@luma.gl/
|
|
45
|
-
"@luma.gl/webgl": "^9.4.2"
|
|
44
|
+
"@luma.gl/core": "10.0.0-alpha.14"
|
|
46
45
|
},
|
|
47
46
|
"peerDependencies": {
|
|
48
|
-
"@deck.gl/core": "~
|
|
49
|
-
"@luma.gl/core": "
|
|
50
|
-
"@luma.gl/engine": "
|
|
47
|
+
"@deck.gl/core": "~10.0.0-alpha",
|
|
48
|
+
"@luma.gl/core": "10.0.0-alpha.14",
|
|
49
|
+
"@luma.gl/engine": "10.0.0-alpha.14",
|
|
51
50
|
"@probe.gl/test-utils": "^4.1.1",
|
|
52
51
|
"vitest": "^4.0.18"
|
|
53
52
|
},
|
|
@@ -56,5 +55,5 @@
|
|
|
56
55
|
"optional": true
|
|
57
56
|
}
|
|
58
57
|
},
|
|
59
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "78067bff4f951169e02cbbe486ca9399078d1675"
|
|
60
59
|
}
|
package/src/lifecycle-test.ts
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
|
|
5
|
-
import {LayerManager, MapView, DeckRenderer} from '@deck.gl/core';
|
|
5
|
+
import {LayerManager, MapView, DeckRenderer, assert} from '@deck.gl/core';
|
|
6
6
|
|
|
7
7
|
import {device} from './utils/setup-gl';
|
|
8
8
|
|
|
9
9
|
import type {Layer, CompositeLayer, Viewport} from '@deck.gl/core';
|
|
10
10
|
import type {Timeline} from '@luma.gl/engine';
|
|
11
|
-
import type {StatsManager} from '@luma.gl/core';
|
|
11
|
+
import type {Device, StatsManager} from '@luma.gl/core';
|
|
12
12
|
|
|
13
13
|
const testViewport = new MapView({}).makeViewport({
|
|
14
14
|
width: 100,
|
|
@@ -116,7 +116,7 @@ export async function testInitializeLayerAsync(
|
|
|
116
116
|
const layerManager = initializeLayerManager(opts);
|
|
117
117
|
const deckRenderer = new DeckRenderer(device);
|
|
118
118
|
while (!opts.layer.isLoaded) {
|
|
119
|
-
await update({layerManager, deckRenderer, oldResourceCounts: {}});
|
|
119
|
+
await update({draw: true, layerManager, deckRenderer, oldResourceCounts: {}});
|
|
120
120
|
}
|
|
121
121
|
if (opts.finalize === false) {
|
|
122
122
|
return {
|
|
@@ -166,7 +166,7 @@ export type LayerTestCase<LayerT extends Layer> = {
|
|
|
166
166
|
/** Called before layer updates */
|
|
167
167
|
onBeforeUpdate?: (params: {layer: Layer; testCase: LayerTestCase<LayerT>}) => void;
|
|
168
168
|
|
|
169
|
-
/** Called after layer is updated */
|
|
169
|
+
/** Called after layer is updated. Async assertions require `testLayerAsync`. */
|
|
170
170
|
onAfterUpdate?: (params: {
|
|
171
171
|
testCase: LayerTestCase<LayerT>;
|
|
172
172
|
layer: LayerT;
|
|
@@ -174,16 +174,21 @@ export type LayerTestCase<LayerT extends Layer> = {
|
|
|
174
174
|
subLayers: Layer[];
|
|
175
175
|
subLayer: Layer | null;
|
|
176
176
|
spies: Record<string, Spy>;
|
|
177
|
-
}) => void
|
|
177
|
+
}) => void | Promise<void>;
|
|
178
178
|
};
|
|
179
179
|
|
|
180
180
|
type TestResources = {
|
|
181
|
+
draw: boolean;
|
|
181
182
|
layerManager: LayerManager;
|
|
182
183
|
deckRenderer: DeckRenderer;
|
|
183
184
|
oldResourceCounts: Record<string, number>;
|
|
184
185
|
};
|
|
185
186
|
|
|
186
187
|
export type TestLayerOptions<LayerT extends Layer> = {
|
|
188
|
+
/** Render after each update. Disable for tests that only inspect attribute bindings. */
|
|
189
|
+
draw?: boolean;
|
|
190
|
+
/** Device used to initialize and render the layer. Defaults to the WebGL test device. */
|
|
191
|
+
device?: Device;
|
|
187
192
|
/** The layer class to test against */
|
|
188
193
|
Layer: LayerClass<LayerT>;
|
|
189
194
|
/** The initial viewport
|
|
@@ -245,7 +250,7 @@ export function testLayer<LayerT extends Layer>(opts: TestLayerOptions<LayerT>):
|
|
|
245
250
|
|
|
246
251
|
/**
|
|
247
252
|
* Initialize and updates a layer over a sequence of scenarios (test cases).
|
|
248
|
-
* Each test case
|
|
253
|
+
* Each test case waits for loaded data and checks all requested layer updates.
|
|
249
254
|
*/
|
|
250
255
|
export async function testLayerAsync<LayerT extends Layer>(
|
|
251
256
|
opts: TestLayerOptions<LayerT>
|
|
@@ -255,45 +260,55 @@ export async function testLayerAsync<LayerT extends Layer>(
|
|
|
255
260
|
const resources = setupLayerTests(`testing ${Layer.layerName}`, opts);
|
|
256
261
|
|
|
257
262
|
let layer = new Layer();
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
263
|
+
try {
|
|
264
|
+
// Run successive update tests
|
|
265
|
+
for (const testCase of testCases) {
|
|
266
|
+
// Save old state before update
|
|
267
|
+
const oldState = {...layer.state};
|
|
268
|
+
|
|
269
|
+
const {layer: newLayer, spyMap} = runLayerTestUpdate(
|
|
270
|
+
testCase,
|
|
271
|
+
resources,
|
|
272
|
+
layer,
|
|
273
|
+
spies,
|
|
274
|
+
createSpy
|
|
275
|
+
);
|
|
262
276
|
|
|
263
|
-
|
|
264
|
-
testCase,
|
|
265
|
-
resources,
|
|
266
|
-
layer,
|
|
267
|
-
spies,
|
|
268
|
-
createSpy
|
|
269
|
-
);
|
|
277
|
+
await runLayerTestPostUpdateCheck(testCase, newLayer, oldState, spyMap);
|
|
270
278
|
|
|
271
|
-
|
|
279
|
+
// Async props may finish while an assertion is awaited. Apply their requested updates too.
|
|
280
|
+
while (
|
|
281
|
+
!newLayer.isLoaded ||
|
|
282
|
+
resources.layerManager.getLayers().some(layer => layer.internalState?.needsUpdate)
|
|
283
|
+
) {
|
|
284
|
+
await update(resources);
|
|
285
|
+
await runLayerTestPostUpdateCheck(testCase, newLayer, oldState, spyMap);
|
|
286
|
+
}
|
|
272
287
|
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
288
|
+
// Reset spies between test cases
|
|
289
|
+
Object.keys(spyMap).forEach(k => resetSpy(spyMap[k]));
|
|
290
|
+
layer = newLayer;
|
|
291
|
+
}
|
|
292
|
+
} finally {
|
|
293
|
+
// Use async cleanup to allow pending luma.gl async operations to complete
|
|
294
|
+
const error = await cleanupAfterLayerTestsAsync(resources);
|
|
295
|
+
if (error) {
|
|
296
|
+
onError(error, `${Layer.layerName} should delete all resources`);
|
|
276
297
|
}
|
|
277
|
-
|
|
278
|
-
// Reset spies between test cases
|
|
279
|
-
Object.keys(spyMap).forEach(k => resetSpy(spyMap[k]));
|
|
280
|
-
layer = newLayer;
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
// Use async cleanup to allow pending luma.gl async operations to complete
|
|
284
|
-
const error = await cleanupAfterLayerTestsAsync(resources);
|
|
285
|
-
if (error) {
|
|
286
|
-
onError(error, `${Layer.layerName} should delete all resources`);
|
|
287
298
|
}
|
|
288
299
|
}
|
|
289
300
|
|
|
290
301
|
function setupLayerTests(
|
|
291
302
|
testTitle: string,
|
|
292
303
|
{
|
|
304
|
+
device: testDevice = device,
|
|
305
|
+
draw = true,
|
|
293
306
|
viewport = testViewport,
|
|
294
307
|
timeline,
|
|
295
308
|
onError = defaultOnError
|
|
296
309
|
}: {
|
|
310
|
+
device?: Device;
|
|
311
|
+
draw?: boolean;
|
|
297
312
|
viewport?: Viewport;
|
|
298
313
|
timeline?: Timeline;
|
|
299
314
|
onError?: (error: Error, title: string) => void;
|
|
@@ -301,8 +316,8 @@ function setupLayerTests(
|
|
|
301
316
|
): TestResources {
|
|
302
317
|
const oldResourceCounts = getResourceCounts();
|
|
303
318
|
|
|
304
|
-
const layerManager = new LayerManager(
|
|
305
|
-
const deckRenderer = new DeckRenderer(
|
|
319
|
+
const layerManager = new LayerManager(testDevice, {viewport, timeline});
|
|
320
|
+
const deckRenderer = new DeckRenderer(testDevice);
|
|
306
321
|
|
|
307
322
|
const props = {
|
|
308
323
|
layerFilter: null,
|
|
@@ -312,7 +327,7 @@ function setupLayerTests(
|
|
|
312
327
|
layerManager.setProps(props);
|
|
313
328
|
deckRenderer.setProps(props);
|
|
314
329
|
|
|
315
|
-
return {layerManager, deckRenderer, oldResourceCounts};
|
|
330
|
+
return {draw, layerManager, deckRenderer, oldResourceCounts};
|
|
316
331
|
}
|
|
317
332
|
|
|
318
333
|
function cleanupAfterLayerTests({
|
|
@@ -398,7 +413,7 @@ function runLayerTestPostUpdateCheck<LayerT extends Layer>(
|
|
|
398
413
|
: [];
|
|
399
414
|
const subLayer = subLayers.length ? subLayers[0] : null;
|
|
400
415
|
|
|
401
|
-
testCase.onAfterUpdate({
|
|
416
|
+
return testCase.onAfterUpdate({
|
|
402
417
|
testCase,
|
|
403
418
|
layer: newLayer,
|
|
404
419
|
oldState,
|
|
@@ -411,7 +426,7 @@ function runLayerTestPostUpdateCheck<LayerT extends Layer>(
|
|
|
411
426
|
|
|
412
427
|
function runLayerTestUpdate<LayerT extends Layer>(
|
|
413
428
|
testCase: LayerTestCase<LayerT>,
|
|
414
|
-
{layerManager, deckRenderer}: TestResources,
|
|
429
|
+
{draw, layerManager, deckRenderer}: TestResources,
|
|
415
430
|
layer: LayerT,
|
|
416
431
|
spies: string[],
|
|
417
432
|
spyFactory: SpyFactory
|
|
@@ -420,6 +435,8 @@ function runLayerTestUpdate<LayerT extends Layer>(
|
|
|
420
435
|
spyMap: Record<string, Spy>;
|
|
421
436
|
} {
|
|
422
437
|
const {props, updateProps, onBeforeUpdate, viewport = layerManager.context.viewport} = testCase;
|
|
438
|
+
// Lifecycle tests construct their manager with a materialized test viewport.
|
|
439
|
+
assert(viewport);
|
|
423
440
|
|
|
424
441
|
if (onBeforeUpdate) {
|
|
425
442
|
onBeforeUpdate({layer, testCase});
|
|
@@ -437,6 +454,7 @@ function runLayerTestUpdate<LayerT extends Layer>(
|
|
|
437
454
|
spies = testCase.spies || spies;
|
|
438
455
|
const spyMap = injectSpies(layer, spies, spyFactory);
|
|
439
456
|
const drawLayers = () => {
|
|
457
|
+
if (!draw) return;
|
|
440
458
|
deckRenderer.renderLayers({
|
|
441
459
|
pass: 'test',
|
|
442
460
|
views: {},
|
|
@@ -460,27 +478,32 @@ function runLayerTestUpdate<LayerT extends Layer>(
|
|
|
460
478
|
}
|
|
461
479
|
|
|
462
480
|
/* global setTimeout */
|
|
463
|
-
function update({layerManager, deckRenderer}: TestResources): Promise<void> {
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
});
|
|
477
|
-
resolve();
|
|
478
|
-
return;
|
|
479
|
-
}
|
|
480
|
-
|
|
481
|
-
setTimeout(onAnimationFrame, 50);
|
|
482
|
-
};
|
|
481
|
+
async function update({draw, layerManager, deckRenderer}: TestResources): Promise<void> {
|
|
482
|
+
let delay = 0;
|
|
483
|
+
while (true) {
|
|
484
|
+
// Let asynchronous data and coordinate-system loads finish between update attempts.
|
|
485
|
+
await new Promise<void>(resolve => setTimeout(resolve, delay));
|
|
486
|
+
if (layerManager.getLayers().some(layer => layer.internalState?.needsUpdate)) {
|
|
487
|
+
layerManager.setNeedsUpdate('pending layer update');
|
|
488
|
+
}
|
|
489
|
+
if (!layerManager.needsUpdate()) {
|
|
490
|
+
delay = 50;
|
|
491
|
+
continue;
|
|
492
|
+
}
|
|
493
|
+
layerManager.updateLayers();
|
|
483
494
|
|
|
484
|
-
|
|
485
|
-
|
|
495
|
+
const viewport = layerManager.context.viewport;
|
|
496
|
+
// Lifecycle tests always provide a viewport before running updates.
|
|
497
|
+
assert(viewport);
|
|
498
|
+
if (draw)
|
|
499
|
+
deckRenderer.renderLayers({
|
|
500
|
+
pass: 'test',
|
|
501
|
+
views: {},
|
|
502
|
+
effects: [],
|
|
503
|
+
viewports: [viewport],
|
|
504
|
+
layers: layerManager.getLayers(),
|
|
505
|
+
onViewportActive: layerManager.activateViewport
|
|
506
|
+
});
|
|
507
|
+
return;
|
|
508
|
+
}
|
|
486
509
|
}
|
package/src/utils/setup-gl.ts
CHANGED
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import {NullDevice} from '@luma.gl/core/test-utils';
|
|
6
|
+
import {webglDevice} from '@luma.gl/core/test-utils-legacy';
|
|
6
7
|
|
|
7
|
-
// Use pre-created device
|
|
8
|
+
// Use luma.gl's legacy pre-created device, falling back to NullDevice in Node.
|
|
8
9
|
export const device = webglDevice || new NullDevice({});
|
|
9
10
|
export const gl = webglDevice?.gl || 1;
|
|
10
11
|
|