@deck.gl/test-utils 9.4.0 → 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 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 device = import_test_utils.webglDevice || new import_test_utils.NullDevice({});
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 = import_test_utils.webglDevice) == null ? void 0 : _a.gl) || 1;
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
- for (const testCase of testCases) {
139
- const oldState = { ...layer.state };
140
- const { layer: newLayer, spyMap } = runLayerTestUpdate(testCase, resources, layer, spies, createSpy);
141
- runLayerTestPostUpdateCheck(testCase, newLayer, oldState, spyMap);
142
- while (!newLayer.isLoaded) {
143
- await update(resources);
144
- runLayerTestPostUpdateCheck(testCase, newLayer, oldState, spyMap);
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(device, { viewport, timeline });
157
- const deckRenderer = new import_core.DeckRenderer(device);
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
- return new Promise((resolve) => {
251
- const onAnimationFrame = () => {
252
- if (layerManager.needsUpdate()) {
253
- layerManager.updateLayers();
254
- deckRenderer.renderLayers({
255
- pass: "test",
256
- views: {},
257
- effects: [],
258
- viewports: [layerManager.context.viewport],
259
- layers: layerManager.getLayers(),
260
- onViewportActive: layerManager.activateViewport
261
- });
262
- resolve();
263
- return;
264
- }
265
- setTimeout(onAnimationFrame, 50);
266
- };
267
- onAnimationFrame();
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
- assert(Layer.layerName, "Layer should have display name");
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
- assert(false, `Construct ${Layer.layerName} throws: ${error.message}`);
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
- assert(params.subLayers.length, "Layer should have sublayers");
382
+ assert2(params.subLayers.length, "Layer should have sublayers");
365
383
  }
366
384
  } else {
367
- assert(params.layer.getModels().length, "Layer should have models");
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 = () => assert(callCount > 0, "accessor function is called");
434
+ const onAfterUpdate = () => assert2(callCount > 0, "accessor function is called");
417
435
  return [
418
436
  {
419
437
  title: `${propName}: () => ${defaultProps[propName]}`,
@@ -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": "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",
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
  }
@@ -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 is awaited until the layer's isLoaded flag is true.
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":"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"}
1
+ {"version":3,"file":"lifecycle-test.d.ts","sourceRoot":"","sources":["../src/lifecycle-test.ts"],"names":[],"mappings":"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"}
@@ -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 is awaited until the layer's isLoaded flag is true.
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
- // Run successive update tests
80
- for (const testCase of testCases) {
81
- // Save old state before update
82
- const oldState = { ...layer.state };
83
- const { layer: newLayer, spyMap } = runLayerTestUpdate(testCase, resources, layer, spies, createSpy);
84
- runLayerTestPostUpdateCheck(testCase, newLayer, oldState, spyMap);
85
- while (!newLayer.isLoaded) {
86
- await update(resources);
87
- runLayerTestPostUpdateCheck(testCase, newLayer, oldState, spyMap);
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
- // Use async cleanup to allow pending luma.gl async operations to complete
94
- const error = await cleanupAfterLayerTestsAsync(resources);
95
- if (error) {
96
- onError(error, `${Layer.layerName} should delete all resources`);
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(device, { viewport, timeline });
102
- const deckRenderer = new DeckRenderer(device);
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
- return new Promise(resolve => {
217
- const onAnimationFrame = () => {
218
- if (layerManager.needsUpdate()) {
219
- layerManager.updateLayers();
220
- deckRenderer.renderLayers({
221
- pass: 'test',
222
- views: {},
223
- effects: [],
224
- viewports: [layerManager.context.viewport],
225
- layers: layerManager.getLayers(),
226
- onViewportActive: layerManager.activateViewport
227
- });
228
- resolve();
229
- return;
230
- }
231
- setTimeout(onAnimationFrame, 50);
232
- };
233
- onAnimationFrame();
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":"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"}
1
+ {"version":3,"file":"lifecycle-test.js","sourceRoot":"","sources":["../src/lifecycle-test.ts"],"names":[],"mappings":"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"}
@@ -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,EAAc,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAG5D,eAAO,MAAM,MAAM,mDAAoC,CAAC;AACxD,eAAO,MAAM,EAAE,iCAAuB,CAAC"}
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"}
@@ -1,8 +1,9 @@
1
1
  // deck.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { webglDevice, NullDevice } from '@luma.gl/test-utils';
5
- // Use pre-created device from @luma.gl/test-utils, fall back to NullDevice in Node
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,WAAW,EAAE,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAE5D,mFAAmF;AACnF,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"}
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 device = import_test_utils.webglDevice || new import_test_utils.NullDevice({});
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 = import_test_utils.webglDevice) == null ? void 0 : _a.gl) || 1;
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
- for (const testCase of testCases) {
109
- const oldState = { ...layer.state };
110
- const { layer: newLayer, spyMap } = runLayerTestUpdate(testCase, resources, layer, spies, createSpy);
111
- runLayerTestPostUpdateCheck(testCase, newLayer, oldState, spyMap);
112
- while (!newLayer.isLoaded) {
113
- await update(resources);
114
- runLayerTestPostUpdateCheck(testCase, newLayer, oldState, spyMap);
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(device, { viewport, timeline });
127
- const deckRenderer = new import_core.DeckRenderer(device);
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
- return new Promise((resolve) => {
221
- const onAnimationFrame = () => {
222
- if (layerManager.needsUpdate()) {
223
- layerManager.updateLayers();
224
- deckRenderer.renderLayers({
225
- pass: "test",
226
- views: {},
227
- effects: [],
228
- viewports: [layerManager.context.viewport],
229
- layers: layerManager.getLayers(),
230
- onViewportActive: layerManager.activateViewport
231
- });
232
- resolve();
233
- return;
234
- }
235
- setTimeout(onAnimationFrame, 50);
236
- };
237
- onAnimationFrame();
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
- assert(Layer.layerName, "Layer should have display name");
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
- assert(false, `Construct ${Layer.layerName} throws: ${error.message}`);
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
- assert(params.subLayers.length, "Layer should have sublayers");
351
+ assert2(params.subLayers.length, "Layer should have sublayers");
334
352
  }
335
353
  } else {
336
- assert(params.layer.getModels().length, "Layer should have models");
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 = () => assert(callCount > 0, "accessor function is called");
403
+ const onAfterUpdate = () => assert2(callCount > 0, "accessor function is called");
386
404
  return [
387
405
  {
388
406
  title: `${propName}: () => ${defaultProps[propName]}`,
@@ -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": "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",
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": "9.4.0",
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/test-utils": "^9.4.0",
45
- "@luma.gl/webgl": "^9.4.0"
44
+ "@luma.gl/core": "10.0.0-alpha.14"
46
45
  },
47
46
  "peerDependencies": {
48
- "@deck.gl/core": "~9.4.0",
49
- "@luma.gl/core": "~9.4.0",
50
- "@luma.gl/engine": "~9.4.0",
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": "5eded84b438eef83387dc6579c51670389053602"
58
+ "gitHead": "78067bff4f951169e02cbbe486ca9399078d1675"
60
59
  }
@@ -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 is awaited until the layer's isLoaded flag is true.
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
- // Run successive update tests
259
- for (const testCase of testCases) {
260
- // Save old state before update
261
- const oldState = {...layer.state};
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
- const {layer: newLayer, spyMap} = runLayerTestUpdate(
264
- testCase,
265
- resources,
266
- layer,
267
- spies,
268
- createSpy
269
- );
277
+ await runLayerTestPostUpdateCheck(testCase, newLayer, oldState, spyMap);
270
278
 
271
- runLayerTestPostUpdateCheck(testCase, newLayer, oldState, spyMap);
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
- while (!newLayer.isLoaded) {
274
- await update(resources);
275
- runLayerTestPostUpdateCheck(testCase, newLayer, oldState, spyMap);
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(device, {viewport, timeline});
305
- const deckRenderer = new DeckRenderer(device);
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
- return new Promise(resolve => {
465
- const onAnimationFrame = () => {
466
- if (layerManager.needsUpdate()) {
467
- layerManager.updateLayers();
468
-
469
- deckRenderer.renderLayers({
470
- pass: 'test',
471
- views: {},
472
- effects: [],
473
- viewports: [layerManager.context.viewport],
474
- layers: layerManager.getLayers(),
475
- onViewportActive: layerManager.activateViewport
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
- onAnimationFrame();
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
  }
@@ -2,9 +2,10 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
- import {webglDevice, NullDevice} from '@luma.gl/test-utils';
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 from @luma.gl/test-utils, fall back to NullDevice in Node
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