@quake2ts/test-utils 0.0.1 → 0.0.739
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 +486 -556
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +30 -38
- package/dist/index.d.ts +30 -38
- package/dist/index.js +482 -551
- package/dist/index.js.map +1 -1
- package/package.json +32 -9
- package/src/e2e/visual.ts +72 -139
- package/src/game/factories.ts +17 -0
- package/src/game/helpers.ts +35 -5
- package/src/index.ts +1 -1
- package/src/server/mocks/state.ts +21 -13
- package/src/game/mocks.ts +0 -105
package/dist/index.d.cts
CHANGED
|
@@ -6,10 +6,11 @@ import { Vec3 as Vec3$1, Bounds3 } from '@quake2ts/shared/math/vec3';
|
|
|
6
6
|
import { TraceResult, CollisionPlane as CollisionPlane$1 } from '@quake2ts/shared/bsp/collision';
|
|
7
7
|
import { ConfigStringEntry, Cvar, BspModel, AudioNodeLike, AudioBufferSourceNodeLike, AudioBufferLike, AudioParamLike, GainNodeLike, DynamicsCompressorNodeLike, PannerNodeLike, BiquadFilterNodeLike, AudioDestinationNodeLike, AudioContextLike, Renderer, FrameRenderer, BspSurfacePipeline, Md2Pipeline, Md3Pipeline, SpriteRenderer, SkyboxPipeline, AssetManager, PreparedTexture, Md2Model, Md3Model, BspMap, BufferUsage, VertexBuffer, IndexBuffer, ShaderProgram, DLight, DynamicLightManager, ParticleSystem, Camera, FrameRenderStats, EntityState as EntityState$1, ProtocolPlayerState as ProtocolPlayerState$1, FrameData, DamageIndicator, FogData } from '@quake2ts/engine';
|
|
8
8
|
export { ConfigStringEntry, Cvar, DLight, DynamicLightManager, IndexBuffer, ParticleSystem, ShaderProgram, VertexBuffer } from '@quake2ts/engine';
|
|
9
|
-
import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, GameSaveFile, LevelState, MonsterMove, DamageMod, PlayerInventory, BaseItem, WeaponId, WeaponItem, HealthItem, ArmorItem, AmmoItemId, PowerupItem,
|
|
9
|
+
import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, GameSaveFile, LevelState, MonsterMove, DamageMod, PlayerInventory, BaseItem, WeaponId, WeaponItem, HealthItem, ArmorItem, AmmoItemId, PowerupItem, PlayerClient } from '@quake2ts/game';
|
|
10
10
|
import { NetworkTransport, Server, ServerStatic, Client, ClientState as ClientState$1, ClientFrame } from '@quake2ts/server';
|
|
11
11
|
import { ImageData, Canvas } from '@napi-rs/canvas';
|
|
12
12
|
import { vec3 } from 'gl-matrix';
|
|
13
|
+
import { Page } from 'playwright';
|
|
13
14
|
|
|
14
15
|
/**
|
|
15
16
|
* Interface for the BinaryWriter mock.
|
|
@@ -431,6 +432,13 @@ declare function createGameImportsAndEngine(overrides?: {
|
|
|
431
432
|
soundIndex: Mock;
|
|
432
433
|
};
|
|
433
434
|
};
|
|
435
|
+
/**
|
|
436
|
+
* Creates a mock GameExports object with mocked properties.
|
|
437
|
+
* This is useful for testing game logic that consumes the game object.
|
|
438
|
+
*
|
|
439
|
+
* @param overrides Optional overrides for the game object properties
|
|
440
|
+
*/
|
|
441
|
+
declare function createMockGameExports(overrides?: Partial<any>): any;
|
|
434
442
|
|
|
435
443
|
/**
|
|
436
444
|
* Creates a physics test scenario with pre-configured geometry.
|
|
@@ -607,25 +615,6 @@ declare function createMockAmmoItem(ammoItemId: AmmoItemId, overrides?: Partial<
|
|
|
607
615
|
*/
|
|
608
616
|
declare function createMockPowerupItem(id: string, duration: number, overrides?: Partial<PowerupItem>): PowerupItem;
|
|
609
617
|
|
|
610
|
-
/**
|
|
611
|
-
* Interface for mock GameState.
|
|
612
|
-
*/
|
|
613
|
-
interface GameState {
|
|
614
|
-
levelName: string;
|
|
615
|
-
time: number;
|
|
616
|
-
entities: Entity[];
|
|
617
|
-
clients: any[];
|
|
618
|
-
}
|
|
619
|
-
/**
|
|
620
|
-
* Creates a mock game state object.
|
|
621
|
-
* @param overrides Optional overrides for the game state.
|
|
622
|
-
*/
|
|
623
|
-
declare function createMockGameState(overrides?: Partial<GameState>): GameState;
|
|
624
|
-
/**
|
|
625
|
-
* Creates a mock GameExports object.
|
|
626
|
-
*/
|
|
627
|
-
declare function createMockGameExports(overrides?: Partial<GameExports>): GameExports;
|
|
628
|
-
|
|
629
618
|
/**
|
|
630
619
|
* Mock implementation of the NetworkTransport interface for server testing.
|
|
631
620
|
* Allows simulating connections and errors.
|
|
@@ -780,6 +769,17 @@ declare class MockNetDriver implements NetDriver {
|
|
|
780
769
|
clearSentMessages(): void;
|
|
781
770
|
}
|
|
782
771
|
|
|
772
|
+
interface GameState {
|
|
773
|
+
levelName: string;
|
|
774
|
+
time: number;
|
|
775
|
+
entities: Entity[];
|
|
776
|
+
clients: any[];
|
|
777
|
+
}
|
|
778
|
+
/**
|
|
779
|
+
* Creates a mock game state object.
|
|
780
|
+
* @param overrides Optional overrides for the game state.
|
|
781
|
+
*/
|
|
782
|
+
declare function createMockGameState(overrides?: Partial<GameState>): GameState;
|
|
783
783
|
/**
|
|
784
784
|
* Creates a mock server state object.
|
|
785
785
|
* @param overrides Optional overrides for the server state.
|
|
@@ -2113,38 +2113,30 @@ declare function createCustomNetworkCondition(latency: number, jitter: number, p
|
|
|
2113
2113
|
declare function throttleBandwidth(bytesPerSecond: number): void;
|
|
2114
2114
|
|
|
2115
2115
|
interface VisualDiff {
|
|
2116
|
+
diffPixels: number;
|
|
2116
2117
|
diffPercentage: number;
|
|
2118
|
+
isMatch: boolean;
|
|
2117
2119
|
diffImage?: Buffer;
|
|
2118
2120
|
}
|
|
2121
|
+
interface VisualScenario {
|
|
2122
|
+
sceneName: string;
|
|
2123
|
+
setup?: (page: Page) => Promise<void>;
|
|
2124
|
+
}
|
|
2119
2125
|
/**
|
|
2120
|
-
* Captures a screenshot of the game
|
|
2121
|
-
* @param page Playwright Page object
|
|
2122
|
-
* @param name Output filename (without extension)
|
|
2126
|
+
* Captures a screenshot of the game canvas.
|
|
2123
2127
|
*/
|
|
2124
|
-
declare function captureGameScreenshot(page:
|
|
2128
|
+
declare function captureGameScreenshot(page: Page, name: string): Promise<Buffer>;
|
|
2125
2129
|
/**
|
|
2126
2130
|
* Saves a canvas to a PNG file.
|
|
2127
|
-
* Compatible with both JSDOM/HTMLCanvasElement and @napi-rs/canvas.
|
|
2128
2131
|
*/
|
|
2129
2132
|
declare function takeScreenshot(canvas: Canvas | HTMLCanvasElement, filepath: string): Promise<void>;
|
|
2130
2133
|
/**
|
|
2131
|
-
* Compares
|
|
2132
|
-
* Returns true if they match (within optional threshold logic, currently strict pixel match).
|
|
2133
|
-
* If baseline does not exist, it saves the current state as baseline and returns true.
|
|
2134
|
-
*/
|
|
2135
|
-
declare function compareScreenshot(canvas: Canvas | HTMLCanvasElement, baselinePath: string): Promise<boolean>;
|
|
2136
|
-
/**
|
|
2137
|
-
* Compares two screenshots (Buffers).
|
|
2138
|
-
* Uses simple buffer check. Kept for backward compatibility or direct buffer comparison.
|
|
2134
|
+
* Compares two image buffers using pixelmatch.
|
|
2139
2135
|
*/
|
|
2140
2136
|
declare function compareScreenshots(baseline: Buffer, current: Buffer, threshold?: number): VisualDiff;
|
|
2141
|
-
interface VisualScenario {
|
|
2142
|
-
sceneName: string;
|
|
2143
|
-
setup: () => Promise<void>;
|
|
2144
|
-
}
|
|
2145
2137
|
/**
|
|
2146
2138
|
* Creates a visual test scenario.
|
|
2147
2139
|
*/
|
|
2148
2140
|
declare function createVisualTestScenario(sceneName: string): VisualScenario;
|
|
2149
2141
|
|
|
2150
|
-
export { type AudioEvent, type BandwidthScenario, type BinaryStreamMock, type BinaryWriterMock, BrowserInputSource, type BrowserSetupOptions, type CameraInput, type CaptureOptions, type ClientInfo, type ClientState, type ClientStateProvider, type ComparisonOptions, type ComparisonResult, type ComputeTestSetup, type Connection, type ConnectionState, type ConsistencyReport, type ControlledTimer, type CvarRegistry, type DeltaSnapshot, type DemoCameraResult, type DownloadManager, type DrawCall, FakeAudioContext, FakeAudioNode, FakeAudioParam, FakeBiquadFilterNode, FakeBufferSource, FakeDestination, FakeGainNode, FakePannerNode, type Frame, type GameState, type GameStateCapture, type GeometryBuffers, type Handshake, HandshakeStage, type HeadlessWebGPUSetup, type HudState, InputInjector, type KeyModifiers, type LevelFrameState, type Lightmap, type MasterServer, type Message, type MessageReaderMock, type MessageWriterMock, type MockAI, FakeBufferSource as MockAudioBufferSourceNode, type MockChatMessage, MockClientConfigStrings, type MockCollisionEntityIndex, type MockCommand, type MockConsole, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockNetDriver, type MockNetDriverState, MockNetworkTransport, type MockNotification, type MockParticle, type MockParticleEmitter, MockPointerLock, type MockRAF, type MockRConClient, type MockRenderingContext, type MockSaveGame, type MockServer, type MockServerConsole, type MockServerContext, type MockServerMessage, MockTransport, type MockUDPSocket, MockWebGL2RenderingContext, type MockWebGPUContext, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkSimulator, type NodeSetupOptions, type PacketMock, type PhysicsScenario, type PlaywrightOptions, type PlaywrightTestClient, type PrecacheList, type PredictionScenario, type RateLimiter, type RecordedPacket, type RefDef, type RenderTestSetup, type SaveGameDiff, type ServerInfo, type ServerListFilter, type SmoothingAnalysis, type Snapshot, type SnapshotTestOptions, type StorageScenario, type SurfaceMock, type TestContext, type TraceMock, type Transform, type UserInfo, type ViewScenario, type ViewState, type VisualDiff, type VisualScenario, type WebGPUContextState, captureAudioEvents, captureCanvasDrawCalls, captureFramebufferAsPNG, captureGameScreenshot, captureGameState, captureTexture, compareSaveGames,
|
|
2142
|
+
export { type AudioEvent, type BandwidthScenario, type BinaryStreamMock, type BinaryWriterMock, BrowserInputSource, type BrowserSetupOptions, type CameraInput, type CaptureOptions, type ClientInfo, type ClientState, type ClientStateProvider, type ComparisonOptions, type ComparisonResult, type ComputeTestSetup, type Connection, type ConnectionState, type ConsistencyReport, type ControlledTimer, type CvarRegistry, type DeltaSnapshot, type DemoCameraResult, type DownloadManager, type DrawCall, FakeAudioContext, FakeAudioNode, FakeAudioParam, FakeBiquadFilterNode, FakeBufferSource, FakeDestination, FakeGainNode, FakePannerNode, type Frame, type GameState, type GameStateCapture, type GeometryBuffers, type Handshake, HandshakeStage, type HeadlessWebGPUSetup, type HudState, InputInjector, type KeyModifiers, type LevelFrameState, type Lightmap, type MasterServer, type Message, type MessageReaderMock, type MessageWriterMock, type MockAI, FakeBufferSource as MockAudioBufferSourceNode, type MockChatMessage, MockClientConfigStrings, type MockCollisionEntityIndex, type MockCommand, type MockConsole, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockNetDriver, type MockNetDriverState, MockNetworkTransport, type MockNotification, type MockParticle, type MockParticleEmitter, MockPointerLock, type MockRAF, type MockRConClient, type MockRenderingContext, type MockSaveGame, type MockServer, type MockServerConsole, type MockServerContext, type MockServerMessage, MockTransport, type MockUDPSocket, MockWebGL2RenderingContext, type MockWebGPUContext, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkSimulator, type NodeSetupOptions, type PacketMock, type PhysicsScenario, type PlaywrightOptions, type PlaywrightTestClient, type PrecacheList, type PredictionScenario, type RateLimiter, type RecordedPacket, type RefDef, type RenderTestSetup, type SaveGameDiff, type ServerInfo, type ServerListFilter, type SmoothingAnalysis, type Snapshot, type SnapshotTestOptions, type StorageScenario, type SurfaceMock, type TestContext, type TraceMock, type Transform, type UserInfo, type ViewScenario, type ViewState, type VisualDiff, type VisualScenario, type WebGPUContextState, captureAudioEvents, captureCanvasDrawCalls, captureFramebufferAsPNG, captureGameScreenshot, captureGameState, captureTexture, compareSaveGames, compareScreenshots, compareSnapshots, createBandwidthTestScenario, createBinaryStreamMock, createBinaryWriterMock, createBounds, createCombatTestContext, createComputeTestSetup, createConfigStringArrayMock, createConfigStringMock, createControlledTimer, createCustomNetworkCondition, createCvarMock, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameImportsAndEngine, createGameStateSnapshotFactory, createHeadlessTestContext, createInputInjector, createInterpolationTestData, createItemEntityFactory, createMessageReaderMock, createMessageWriterMock, createMockAI, createMockAmmoItem, createMockArmorItem, createMockAssetManager, createMockAudioBuffer, createMockAudioContext, createMockBspMap, createMockBspPipeline, createMockBufferSource, createMockCamera, createMockCanvas, createMockCanvasContext2D, createMockChatMessage, createMockClientInfo, createMockClientState, createMockCollisionEntityIndex, createMockCommand, createMockCommandEncoder, createMockComputePassEncoder, createMockComputePipeline, createMockConnection, createMockConnectionState, createMockConsole, createMockCvarRegistry, createMockDLight, createMockDLightManager, createMockDamageIndicator, createMockDamageInfo, createMockDeltaFrame, createMockDemoCameraResult, createMockDownloadManager, createMockEngine, createMockEntityState, createMockFogData, createMockFrame, createMockFrameRenderer, createMockGPUAdapter, createMockGPUBuffer, createMockGPUDevice, createMockGPUTexture, createMockGame, createMockGameExports, createMockGameState, createMockHandshake, createMockHealthItem, createMockHudState, createMockImage, createMockImageData, createMockIndexBuffer, createMockIndexedDB, createMockInventory, createMockItem, createMockKeyboardEvent, createMockLightmap, createMockLocalStorage, createMockMasterServer, createMockMd2Model, createMockMd2Pipeline, createMockMd3Model, createMockMd3Pipeline, createMockMonsterAI, createMockMonsterMove, createMockMouseEvent, createMockNetDriver, createMockNetworkAddress, createMockNotification, createMockPannerNode, createMockParticle, createMockParticleEmitter, createMockParticleSystem, createMockPerformance, createMockPlayerState, createMockPointerLock, createMockPowerupItem, createMockPrecacheList, createMockQueue, createMockRAF, createMockRConClient, createMockRateLimiter, createMockRefDef, createMockRenderPassEncoder, createMockRenderPipeline, createMockRenderer, createMockRenderingContext, createMockSampler, createMockSaveGame, createMockScoreboard, createMockServer, createMockServerClient, createMockServerConsole, createMockServerInfo, createMockServerMessage, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockShader, createMockShaderModule, createMockShaderProgram, createMockSkyboxPipeline, createMockSnapshot, createMockSpritePipeline, createMockTexture, createMockTextureView, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockVertexBuffer, createMockViewState, createMockWeapon, createMockWeaponItem, createMockWebGL2Context, createMockWebGPUContext, createMockWheelEvent, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createPacketMock, createPhysicsTestContext, createPhysicsTestScenario, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createPredictionTestScenario, createProjectileEntityFactory, createRenderTestSetup, createSaveGameSnapshot, createServerSnapshot, createSpawnTestContext, createStorageTestScenario, createSurfaceMock, createTestContext, createTraceMock, createTransform, createTriggerEntityFactory, createVector3, createViewTestScenario, createVisualTestScenario, expectSnapshot, findPakFile, getSnapshotPath, initHeadlessWebGPU, loadMapFromPak, loadPNG, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, measureSnapshotSize, mockMonsterAttacks, parseProtocolPlayerState, randomVector3, renderAndCapture, renderAndExpectSnapshot, restoreSaveGameSnapshot, runComputeAndReadback, savePNG, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateBandwidthLimit, simulateCameraMovement, simulateClientPrediction, simulateDownload, simulateFrames, simulateGravity, simulateHandshake, simulateJump, simulateMovement, simulateNetworkCondition, simulateNetworkDelay, simulatePacketLoss, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerRegistration, simulateServerTick, simulateSnapshotDelivery, takeScreenshot, teardownBrowserEnvironment, teardownMockAudioContext, teardownNodeEnvironment, testComputeShader, testPipelineRendering, throttleBandwidth, verifySmoothing, verifySnapshotConsistency, waitForGameReady };
|
package/dist/index.d.ts
CHANGED
|
@@ -6,10 +6,11 @@ import { Vec3 as Vec3$1, Bounds3 } from '@quake2ts/shared/math/vec3';
|
|
|
6
6
|
import { TraceResult, CollisionPlane as CollisionPlane$1 } from '@quake2ts/shared/bsp/collision';
|
|
7
7
|
import { ConfigStringEntry, Cvar, BspModel, AudioNodeLike, AudioBufferSourceNodeLike, AudioBufferLike, AudioParamLike, GainNodeLike, DynamicsCompressorNodeLike, PannerNodeLike, BiquadFilterNodeLike, AudioDestinationNodeLike, AudioContextLike, Renderer, FrameRenderer, BspSurfacePipeline, Md2Pipeline, Md3Pipeline, SpriteRenderer, SkyboxPipeline, AssetManager, PreparedTexture, Md2Model, Md3Model, BspMap, BufferUsage, VertexBuffer, IndexBuffer, ShaderProgram, DLight, DynamicLightManager, ParticleSystem, Camera, FrameRenderStats, EntityState as EntityState$1, ProtocolPlayerState as ProtocolPlayerState$1, FrameData, DamageIndicator, FogData } from '@quake2ts/engine';
|
|
8
8
|
export { ConfigStringEntry, Cvar, DLight, DynamicLightManager, IndexBuffer, ParticleSystem, ShaderProgram, VertexBuffer } from '@quake2ts/engine';
|
|
9
|
-
import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, GameSaveFile, LevelState, MonsterMove, DamageMod, PlayerInventory, BaseItem, WeaponId, WeaponItem, HealthItem, ArmorItem, AmmoItemId, PowerupItem,
|
|
9
|
+
import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, GameSaveFile, LevelState, MonsterMove, DamageMod, PlayerInventory, BaseItem, WeaponId, WeaponItem, HealthItem, ArmorItem, AmmoItemId, PowerupItem, PlayerClient } from '@quake2ts/game';
|
|
10
10
|
import { NetworkTransport, Server, ServerStatic, Client, ClientState as ClientState$1, ClientFrame } from '@quake2ts/server';
|
|
11
11
|
import { ImageData, Canvas } from '@napi-rs/canvas';
|
|
12
12
|
import { vec3 } from 'gl-matrix';
|
|
13
|
+
import { Page } from 'playwright';
|
|
13
14
|
|
|
14
15
|
/**
|
|
15
16
|
* Interface for the BinaryWriter mock.
|
|
@@ -431,6 +432,13 @@ declare function createGameImportsAndEngine(overrides?: {
|
|
|
431
432
|
soundIndex: Mock;
|
|
432
433
|
};
|
|
433
434
|
};
|
|
435
|
+
/**
|
|
436
|
+
* Creates a mock GameExports object with mocked properties.
|
|
437
|
+
* This is useful for testing game logic that consumes the game object.
|
|
438
|
+
*
|
|
439
|
+
* @param overrides Optional overrides for the game object properties
|
|
440
|
+
*/
|
|
441
|
+
declare function createMockGameExports(overrides?: Partial<any>): any;
|
|
434
442
|
|
|
435
443
|
/**
|
|
436
444
|
* Creates a physics test scenario with pre-configured geometry.
|
|
@@ -607,25 +615,6 @@ declare function createMockAmmoItem(ammoItemId: AmmoItemId, overrides?: Partial<
|
|
|
607
615
|
*/
|
|
608
616
|
declare function createMockPowerupItem(id: string, duration: number, overrides?: Partial<PowerupItem>): PowerupItem;
|
|
609
617
|
|
|
610
|
-
/**
|
|
611
|
-
* Interface for mock GameState.
|
|
612
|
-
*/
|
|
613
|
-
interface GameState {
|
|
614
|
-
levelName: string;
|
|
615
|
-
time: number;
|
|
616
|
-
entities: Entity[];
|
|
617
|
-
clients: any[];
|
|
618
|
-
}
|
|
619
|
-
/**
|
|
620
|
-
* Creates a mock game state object.
|
|
621
|
-
* @param overrides Optional overrides for the game state.
|
|
622
|
-
*/
|
|
623
|
-
declare function createMockGameState(overrides?: Partial<GameState>): GameState;
|
|
624
|
-
/**
|
|
625
|
-
* Creates a mock GameExports object.
|
|
626
|
-
*/
|
|
627
|
-
declare function createMockGameExports(overrides?: Partial<GameExports>): GameExports;
|
|
628
|
-
|
|
629
618
|
/**
|
|
630
619
|
* Mock implementation of the NetworkTransport interface for server testing.
|
|
631
620
|
* Allows simulating connections and errors.
|
|
@@ -780,6 +769,17 @@ declare class MockNetDriver implements NetDriver {
|
|
|
780
769
|
clearSentMessages(): void;
|
|
781
770
|
}
|
|
782
771
|
|
|
772
|
+
interface GameState {
|
|
773
|
+
levelName: string;
|
|
774
|
+
time: number;
|
|
775
|
+
entities: Entity[];
|
|
776
|
+
clients: any[];
|
|
777
|
+
}
|
|
778
|
+
/**
|
|
779
|
+
* Creates a mock game state object.
|
|
780
|
+
* @param overrides Optional overrides for the game state.
|
|
781
|
+
*/
|
|
782
|
+
declare function createMockGameState(overrides?: Partial<GameState>): GameState;
|
|
783
783
|
/**
|
|
784
784
|
* Creates a mock server state object.
|
|
785
785
|
* @param overrides Optional overrides for the server state.
|
|
@@ -2113,38 +2113,30 @@ declare function createCustomNetworkCondition(latency: number, jitter: number, p
|
|
|
2113
2113
|
declare function throttleBandwidth(bytesPerSecond: number): void;
|
|
2114
2114
|
|
|
2115
2115
|
interface VisualDiff {
|
|
2116
|
+
diffPixels: number;
|
|
2116
2117
|
diffPercentage: number;
|
|
2118
|
+
isMatch: boolean;
|
|
2117
2119
|
diffImage?: Buffer;
|
|
2118
2120
|
}
|
|
2121
|
+
interface VisualScenario {
|
|
2122
|
+
sceneName: string;
|
|
2123
|
+
setup?: (page: Page) => Promise<void>;
|
|
2124
|
+
}
|
|
2119
2125
|
/**
|
|
2120
|
-
* Captures a screenshot of the game
|
|
2121
|
-
* @param page Playwright Page object
|
|
2122
|
-
* @param name Output filename (without extension)
|
|
2126
|
+
* Captures a screenshot of the game canvas.
|
|
2123
2127
|
*/
|
|
2124
|
-
declare function captureGameScreenshot(page:
|
|
2128
|
+
declare function captureGameScreenshot(page: Page, name: string): Promise<Buffer>;
|
|
2125
2129
|
/**
|
|
2126
2130
|
* Saves a canvas to a PNG file.
|
|
2127
|
-
* Compatible with both JSDOM/HTMLCanvasElement and @napi-rs/canvas.
|
|
2128
2131
|
*/
|
|
2129
2132
|
declare function takeScreenshot(canvas: Canvas | HTMLCanvasElement, filepath: string): Promise<void>;
|
|
2130
2133
|
/**
|
|
2131
|
-
* Compares
|
|
2132
|
-
* Returns true if they match (within optional threshold logic, currently strict pixel match).
|
|
2133
|
-
* If baseline does not exist, it saves the current state as baseline and returns true.
|
|
2134
|
-
*/
|
|
2135
|
-
declare function compareScreenshot(canvas: Canvas | HTMLCanvasElement, baselinePath: string): Promise<boolean>;
|
|
2136
|
-
/**
|
|
2137
|
-
* Compares two screenshots (Buffers).
|
|
2138
|
-
* Uses simple buffer check. Kept for backward compatibility or direct buffer comparison.
|
|
2134
|
+
* Compares two image buffers using pixelmatch.
|
|
2139
2135
|
*/
|
|
2140
2136
|
declare function compareScreenshots(baseline: Buffer, current: Buffer, threshold?: number): VisualDiff;
|
|
2141
|
-
interface VisualScenario {
|
|
2142
|
-
sceneName: string;
|
|
2143
|
-
setup: () => Promise<void>;
|
|
2144
|
-
}
|
|
2145
2137
|
/**
|
|
2146
2138
|
* Creates a visual test scenario.
|
|
2147
2139
|
*/
|
|
2148
2140
|
declare function createVisualTestScenario(sceneName: string): VisualScenario;
|
|
2149
2141
|
|
|
2150
|
-
export { type AudioEvent, type BandwidthScenario, type BinaryStreamMock, type BinaryWriterMock, BrowserInputSource, type BrowserSetupOptions, type CameraInput, type CaptureOptions, type ClientInfo, type ClientState, type ClientStateProvider, type ComparisonOptions, type ComparisonResult, type ComputeTestSetup, type Connection, type ConnectionState, type ConsistencyReport, type ControlledTimer, type CvarRegistry, type DeltaSnapshot, type DemoCameraResult, type DownloadManager, type DrawCall, FakeAudioContext, FakeAudioNode, FakeAudioParam, FakeBiquadFilterNode, FakeBufferSource, FakeDestination, FakeGainNode, FakePannerNode, type Frame, type GameState, type GameStateCapture, type GeometryBuffers, type Handshake, HandshakeStage, type HeadlessWebGPUSetup, type HudState, InputInjector, type KeyModifiers, type LevelFrameState, type Lightmap, type MasterServer, type Message, type MessageReaderMock, type MessageWriterMock, type MockAI, FakeBufferSource as MockAudioBufferSourceNode, type MockChatMessage, MockClientConfigStrings, type MockCollisionEntityIndex, type MockCommand, type MockConsole, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockNetDriver, type MockNetDriverState, MockNetworkTransport, type MockNotification, type MockParticle, type MockParticleEmitter, MockPointerLock, type MockRAF, type MockRConClient, type MockRenderingContext, type MockSaveGame, type MockServer, type MockServerConsole, type MockServerContext, type MockServerMessage, MockTransport, type MockUDPSocket, MockWebGL2RenderingContext, type MockWebGPUContext, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkSimulator, type NodeSetupOptions, type PacketMock, type PhysicsScenario, type PlaywrightOptions, type PlaywrightTestClient, type PrecacheList, type PredictionScenario, type RateLimiter, type RecordedPacket, type RefDef, type RenderTestSetup, type SaveGameDiff, type ServerInfo, type ServerListFilter, type SmoothingAnalysis, type Snapshot, type SnapshotTestOptions, type StorageScenario, type SurfaceMock, type TestContext, type TraceMock, type Transform, type UserInfo, type ViewScenario, type ViewState, type VisualDiff, type VisualScenario, type WebGPUContextState, captureAudioEvents, captureCanvasDrawCalls, captureFramebufferAsPNG, captureGameScreenshot, captureGameState, captureTexture, compareSaveGames,
|
|
2142
|
+
export { type AudioEvent, type BandwidthScenario, type BinaryStreamMock, type BinaryWriterMock, BrowserInputSource, type BrowserSetupOptions, type CameraInput, type CaptureOptions, type ClientInfo, type ClientState, type ClientStateProvider, type ComparisonOptions, type ComparisonResult, type ComputeTestSetup, type Connection, type ConnectionState, type ConsistencyReport, type ControlledTimer, type CvarRegistry, type DeltaSnapshot, type DemoCameraResult, type DownloadManager, type DrawCall, FakeAudioContext, FakeAudioNode, FakeAudioParam, FakeBiquadFilterNode, FakeBufferSource, FakeDestination, FakeGainNode, FakePannerNode, type Frame, type GameState, type GameStateCapture, type GeometryBuffers, type Handshake, HandshakeStage, type HeadlessWebGPUSetup, type HudState, InputInjector, type KeyModifiers, type LevelFrameState, type Lightmap, type MasterServer, type Message, type MessageReaderMock, type MessageWriterMock, type MockAI, FakeBufferSource as MockAudioBufferSourceNode, type MockChatMessage, MockClientConfigStrings, type MockCollisionEntityIndex, type MockCommand, type MockConsole, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockNetDriver, type MockNetDriverState, MockNetworkTransport, type MockNotification, type MockParticle, type MockParticleEmitter, MockPointerLock, type MockRAF, type MockRConClient, type MockRenderingContext, type MockSaveGame, type MockServer, type MockServerConsole, type MockServerContext, type MockServerMessage, MockTransport, type MockUDPSocket, MockWebGL2RenderingContext, type MockWebGPUContext, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkSimulator, type NodeSetupOptions, type PacketMock, type PhysicsScenario, type PlaywrightOptions, type PlaywrightTestClient, type PrecacheList, type PredictionScenario, type RateLimiter, type RecordedPacket, type RefDef, type RenderTestSetup, type SaveGameDiff, type ServerInfo, type ServerListFilter, type SmoothingAnalysis, type Snapshot, type SnapshotTestOptions, type StorageScenario, type SurfaceMock, type TestContext, type TraceMock, type Transform, type UserInfo, type ViewScenario, type ViewState, type VisualDiff, type VisualScenario, type WebGPUContextState, captureAudioEvents, captureCanvasDrawCalls, captureFramebufferAsPNG, captureGameScreenshot, captureGameState, captureTexture, compareSaveGames, compareScreenshots, compareSnapshots, createBandwidthTestScenario, createBinaryStreamMock, createBinaryWriterMock, createBounds, createCombatTestContext, createComputeTestSetup, createConfigStringArrayMock, createConfigStringMock, createControlledTimer, createCustomNetworkCondition, createCvarMock, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameImportsAndEngine, createGameStateSnapshotFactory, createHeadlessTestContext, createInputInjector, createInterpolationTestData, createItemEntityFactory, createMessageReaderMock, createMessageWriterMock, createMockAI, createMockAmmoItem, createMockArmorItem, createMockAssetManager, createMockAudioBuffer, createMockAudioContext, createMockBspMap, createMockBspPipeline, createMockBufferSource, createMockCamera, createMockCanvas, createMockCanvasContext2D, createMockChatMessage, createMockClientInfo, createMockClientState, createMockCollisionEntityIndex, createMockCommand, createMockCommandEncoder, createMockComputePassEncoder, createMockComputePipeline, createMockConnection, createMockConnectionState, createMockConsole, createMockCvarRegistry, createMockDLight, createMockDLightManager, createMockDamageIndicator, createMockDamageInfo, createMockDeltaFrame, createMockDemoCameraResult, createMockDownloadManager, createMockEngine, createMockEntityState, createMockFogData, createMockFrame, createMockFrameRenderer, createMockGPUAdapter, createMockGPUBuffer, createMockGPUDevice, createMockGPUTexture, createMockGame, createMockGameExports, createMockGameState, createMockHandshake, createMockHealthItem, createMockHudState, createMockImage, createMockImageData, createMockIndexBuffer, createMockIndexedDB, createMockInventory, createMockItem, createMockKeyboardEvent, createMockLightmap, createMockLocalStorage, createMockMasterServer, createMockMd2Model, createMockMd2Pipeline, createMockMd3Model, createMockMd3Pipeline, createMockMonsterAI, createMockMonsterMove, createMockMouseEvent, createMockNetDriver, createMockNetworkAddress, createMockNotification, createMockPannerNode, createMockParticle, createMockParticleEmitter, createMockParticleSystem, createMockPerformance, createMockPlayerState, createMockPointerLock, createMockPowerupItem, createMockPrecacheList, createMockQueue, createMockRAF, createMockRConClient, createMockRateLimiter, createMockRefDef, createMockRenderPassEncoder, createMockRenderPipeline, createMockRenderer, createMockRenderingContext, createMockSampler, createMockSaveGame, createMockScoreboard, createMockServer, createMockServerClient, createMockServerConsole, createMockServerInfo, createMockServerMessage, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockShader, createMockShaderModule, createMockShaderProgram, createMockSkyboxPipeline, createMockSnapshot, createMockSpritePipeline, createMockTexture, createMockTextureView, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockVertexBuffer, createMockViewState, createMockWeapon, createMockWeaponItem, createMockWebGL2Context, createMockWebGPUContext, createMockWheelEvent, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createPacketMock, createPhysicsTestContext, createPhysicsTestScenario, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createPredictionTestScenario, createProjectileEntityFactory, createRenderTestSetup, createSaveGameSnapshot, createServerSnapshot, createSpawnTestContext, createStorageTestScenario, createSurfaceMock, createTestContext, createTraceMock, createTransform, createTriggerEntityFactory, createVector3, createViewTestScenario, createVisualTestScenario, expectSnapshot, findPakFile, getSnapshotPath, initHeadlessWebGPU, loadMapFromPak, loadPNG, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, measureSnapshotSize, mockMonsterAttacks, parseProtocolPlayerState, randomVector3, renderAndCapture, renderAndExpectSnapshot, restoreSaveGameSnapshot, runComputeAndReadback, savePNG, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateBandwidthLimit, simulateCameraMovement, simulateClientPrediction, simulateDownload, simulateFrames, simulateGravity, simulateHandshake, simulateJump, simulateMovement, simulateNetworkCondition, simulateNetworkDelay, simulatePacketLoss, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerRegistration, simulateServerTick, simulateSnapshotDelivery, takeScreenshot, teardownBrowserEnvironment, teardownMockAudioContext, teardownNodeEnvironment, testComputeShader, testPipelineRendering, throttleBandwidth, verifySmoothing, verifySnapshotConsistency, waitForGameReady };
|