@quake2ts/test-utils 0.0.799 → 0.0.804

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
@@ -13874,24 +13874,45 @@ async function createWebGLPlaywrightSetup(options = {}) {
13874
13874
  cleanup
13875
13875
  };
13876
13876
  }
13877
- async function renderAndCaptureWebGLPlaywright(page, renderFn) {
13878
- const pixelData = await page.evaluate((code) => {
13879
- const renderer = window.testRenderer;
13880
- const gl = window.testGl;
13881
- if (!renderer || !gl) {
13882
- throw new Error("Renderer not initialized");
13883
- }
13884
- const fn = new Function("renderer", "gl", code);
13885
- fn(renderer, gl);
13886
- gl.finish();
13887
- return window.captureCanvas();
13888
- }, renderFn);
13889
- return new Uint8ClampedArray(pixelData);
13877
+ async function renderAndCaptureWebGLPlaywright(page, renderFn, width, height) {
13878
+ try {
13879
+ const pixelData = await page.evaluate(({ code, width: width2, height: height2 }) => {
13880
+ const renderer = window.testRenderer;
13881
+ const gl = window.testGl;
13882
+ const canvas = window.testCanvas;
13883
+ if (!renderer || !gl || !canvas) {
13884
+ throw new Error("Renderer not initialized");
13885
+ }
13886
+ if (width2 !== void 0 && height2 !== void 0) {
13887
+ canvas.width = width2;
13888
+ canvas.height = height2;
13889
+ gl.viewport(0, 0, width2, height2);
13890
+ }
13891
+ try {
13892
+ const fn = new Function("renderer", "gl", code);
13893
+ fn(renderer, gl);
13894
+ } catch (err) {
13895
+ throw new Error(`Renderer Execution Error: ${err.message}
13896
+ Code:
13897
+ ${code}`);
13898
+ }
13899
+ gl.finish();
13900
+ return window.captureCanvas();
13901
+ }, { code: renderFn, width, height });
13902
+ return new Uint8ClampedArray(pixelData);
13903
+ } catch (err) {
13904
+ throw new Error(`Browser Test Error: ${err.message}`);
13905
+ }
13890
13906
  }
13891
13907
  async function testWebGLRenderer(renderCode, options) {
13892
13908
  const setup = await createWebGLPlaywrightSetup(options);
13893
13909
  try {
13894
- const pixels = await renderAndCaptureWebGLPlaywright(setup.page, renderCode);
13910
+ const pixels = await renderAndCaptureWebGLPlaywright(
13911
+ setup.page,
13912
+ renderCode,
13913
+ options.width,
13914
+ options.height
13915
+ );
13895
13916
  await expectSnapshot(pixels, {
13896
13917
  name: options.name,
13897
13918
  description: options.description,