@quake2ts/test-utils 0.0.802 → 0.0.805

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quake2ts/test-utils",
3
- "version": "0.0.802",
3
+ "version": "0.0.805",
4
4
  "type": "module",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.js",
@@ -42,12 +42,13 @@
42
42
  "pixelmatch": "^7.1.0",
43
43
  "playwright": "^1.57.0",
44
44
  "pngjs": "^7.0.0",
45
+ "serve-handler": "^6.1.6",
45
46
  "vitest": "^1.6.0",
46
47
  "webgpu": "^0.3.8",
47
- "@quake2ts/engine": "^0.0.802",
48
- "@quake2ts/game": "0.0.802",
49
- "@quake2ts/shared": "0.0.802",
50
- "@quake2ts/server": "0.0.802"
48
+ "@quake2ts/engine": "^0.0.805",
49
+ "@quake2ts/game": "0.0.805",
50
+ "@quake2ts/server": "0.0.805",
51
+ "@quake2ts/shared": "0.0.805"
51
52
  },
52
53
  "peerDependenciesMeta": {
53
54
  "@quake2ts/engine": {
@@ -77,6 +78,9 @@
77
78
  "pngjs": {
78
79
  "optional": true
79
80
  },
81
+ "serve-handler": {
82
+ "optional": true
83
+ },
80
84
  "webgpu": {
81
85
  "optional": true
82
86
  }
@@ -100,10 +104,10 @@
100
104
  "vitest": "^4.0.16",
101
105
  "serve-handler": "^6.1.6",
102
106
  "webgpu": "^0.3.8",
103
- "@quake2ts/engine": "^0.0.802",
104
- "@quake2ts/shared": "0.0.802",
105
- "@quake2ts/game": "0.0.802",
106
- "@quake2ts/server": "0.0.802"
107
+ "@quake2ts/game": "0.0.805",
108
+ "@quake2ts/shared": "0.0.805",
109
+ "@quake2ts/server": "0.0.805",
110
+ "@quake2ts/engine": "^0.0.805"
107
111
  },
108
112
  "dependencies": {
109
113
  "upng-js": "^2.1.0"
@@ -5,15 +5,10 @@
5
5
  * Loads the actual built renderer code via a static server, similar to e2e-tests.
6
6
  */
7
7
 
8
- import { chromium, Browser, Page, BrowserContext } from 'playwright';
8
+ import type { Browser, Page, BrowserContext } from 'playwright';
9
9
  import { expectSnapshot, SnapshotTestOptions } from '../../visual/snapshots.js';
10
10
  import { createServer, IncomingMessage, ServerResponse } from 'http';
11
- import handler from 'serve-handler';
12
11
  import path from 'path';
13
- import { fileURLToPath } from 'url';
14
-
15
- const __filename = fileURLToPath(import.meta.url);
16
- const __dirname = path.dirname(__filename);
17
12
 
18
13
  export interface WebGLPlaywrightSetup {
19
14
  browser: Browser;
@@ -42,8 +37,27 @@ export async function createWebGLPlaywrightSetup(
42
37
  const height = options.height ?? 256;
43
38
  const headless = options.headless ?? true;
44
39
 
40
+ // Dynamic imports for optional dependencies
41
+ let chromium;
42
+ let handler;
43
+
44
+ try {
45
+ const playwright = await import('playwright');
46
+ chromium = playwright.chromium;
47
+ } catch (e) {
48
+ throw new Error('Failed to load "playwright" package. Please ensure it is installed.');
49
+ }
50
+
51
+ try {
52
+ const serveHandler = await import('serve-handler');
53
+ handler = serveHandler.default;
54
+ } catch (e) {
55
+ throw new Error('Failed to load "serve-handler" package. Please ensure it is installed.');
56
+ }
57
+
45
58
  // Start static server to serve built files
46
59
  // Serve from repo root so we can access packages/engine/dist
60
+ // Note: __dirname is handled by tsup shims to work in both ESM and CJS
47
61
  const repoRoot = path.resolve(__dirname, '../../../../..');
48
62
 
49
63
  const staticServer = createServer((request: IncomingMessage, response: ServerResponse) => {