quake2ts 0.0.581 → 0.0.584
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 +1 -1
- package/packages/test-utils/dist/index.cjs +357 -538
- package/packages/test-utils/dist/index.cjs.map +1 -1
- package/packages/test-utils/dist/index.d.cts +153 -108
- package/packages/test-utils/dist/index.d.ts +153 -108
- package/packages/test-utils/dist/index.js +356 -537
- package/packages/test-utils/dist/index.js.map +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as vitest from 'vitest';
|
|
2
|
-
import { Mock } from 'vitest';
|
|
2
|
+
import { Mock, vi } from 'vitest';
|
|
3
3
|
import { Vec3, CollisionPlane, CollisionBrush, CollisionNode, CollisionLeaf, CollisionModel, PlayerState, EntityState, createRandomGenerator, NetDriver, TraceResult, UserCommand } from '@quake2ts/shared';
|
|
4
4
|
export { intersects, ladderTrace, stairTrace } from '@quake2ts/shared';
|
|
5
5
|
import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, MonsterMove, DamageMod, PlayerInventory, BaseItem, WeaponId, WeaponItem, HealthItem, ArmorItem, AmmoItemId, PowerupItem, GameExports } from '@quake2ts/game';
|
|
@@ -7,8 +7,6 @@ import { NetworkTransport, Server, ServerStatic, Client, ClientState, ClientFram
|
|
|
7
7
|
import { ImageData } from '@napi-rs/canvas';
|
|
8
8
|
import { vec3 } from 'gl-matrix';
|
|
9
9
|
import { Camera } from '@quake2ts/engine';
|
|
10
|
-
import { LaunchOptions, BrowserContextOptions, Browser, BrowserContext, Page } from 'playwright';
|
|
11
|
-
import { Server as Server$1 } from 'http';
|
|
12
10
|
|
|
13
11
|
interface BinaryWriterMock {
|
|
14
12
|
writeByte: Mock<[number], void>;
|
|
@@ -678,21 +676,24 @@ declare function setupBrowserEnvironment(options?: BrowserSetupOptions): void;
|
|
|
678
676
|
*/
|
|
679
677
|
declare function teardownBrowserEnvironment(): void;
|
|
680
678
|
|
|
681
|
-
interface DrawCall {
|
|
682
|
-
method: string;
|
|
683
|
-
args: any[];
|
|
684
|
-
}
|
|
685
679
|
/**
|
|
686
|
-
* Creates a mock
|
|
680
|
+
* Creates a mock HTMLCanvasElement backed by napi-rs/canvas,
|
|
681
|
+
* with support for both 2D and WebGL2 contexts.
|
|
687
682
|
*/
|
|
688
683
|
declare function createMockCanvas(width?: number, height?: number): HTMLCanvasElement;
|
|
689
684
|
/**
|
|
690
|
-
* Creates a mock
|
|
685
|
+
* Creates a mock CanvasRenderingContext2D.
|
|
691
686
|
*/
|
|
692
687
|
declare function createMockCanvasContext2D(canvas?: HTMLCanvasElement): CanvasRenderingContext2D;
|
|
693
688
|
/**
|
|
694
|
-
*
|
|
695
|
-
|
|
689
|
+
* Information about a captured draw call.
|
|
690
|
+
*/
|
|
691
|
+
interface DrawCall {
|
|
692
|
+
method: string;
|
|
693
|
+
args: any[];
|
|
694
|
+
}
|
|
695
|
+
/**
|
|
696
|
+
* Wraps a CanvasRenderingContext2D to capture all method calls.
|
|
696
697
|
*/
|
|
697
698
|
declare function captureCanvasDrawCalls(context: CanvasRenderingContext2D): DrawCall[];
|
|
698
699
|
/**
|
|
@@ -700,7 +701,7 @@ declare function captureCanvasDrawCalls(context: CanvasRenderingContext2D): Draw
|
|
|
700
701
|
*/
|
|
701
702
|
declare function createMockImageData(width: number, height: number, fillColor?: [number, number, number, number]): ImageData;
|
|
702
703
|
/**
|
|
703
|
-
* Creates a mock
|
|
704
|
+
* Creates a mock HTMLImageElement.
|
|
704
705
|
*/
|
|
705
706
|
declare function createMockImage(width?: number, height?: number, src?: string): HTMLImageElement;
|
|
706
707
|
|
|
@@ -709,54 +710,76 @@ declare function createMockGPUDevice(): Partial<GPUDevice>;
|
|
|
709
710
|
declare function createMockGPUCanvasContext(): Partial<GPUCanvasContext>;
|
|
710
711
|
declare function setupWebGPUMocks(): void;
|
|
711
712
|
|
|
713
|
+
/**
|
|
714
|
+
* Interface for the mock RequestAnimationFrame implementation.
|
|
715
|
+
*/
|
|
712
716
|
interface MockRAF {
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
717
|
+
/**
|
|
718
|
+
* Advances time by one tick (simulating one frame).
|
|
719
|
+
* @param time Timestamp to pass to callbacks (default: calls Date.now())
|
|
720
|
+
*/
|
|
721
|
+
tick(time?: number): void;
|
|
722
|
+
/**
|
|
723
|
+
* Advances time by a specific amount, triggering multiple frames if necessary.
|
|
724
|
+
* Not fully implemented in simple version, acts as alias to tick() with specific time.
|
|
725
|
+
*/
|
|
726
|
+
advance(ms: number): void;
|
|
727
|
+
/**
|
|
728
|
+
* Returns current pending callbacks.
|
|
729
|
+
*/
|
|
730
|
+
getCallbacks(): Array<{
|
|
731
|
+
id: number;
|
|
732
|
+
callback: FrameRequestCallback;
|
|
733
|
+
}>;
|
|
719
734
|
}
|
|
720
735
|
/**
|
|
721
|
-
* Creates a mock implementation
|
|
722
|
-
*
|
|
736
|
+
* Creates a mock RequestAnimationFrame implementation.
|
|
737
|
+
* Replaces global.requestAnimationFrame and cancelAnimationFrame.
|
|
723
738
|
*/
|
|
724
739
|
declare function createMockRAF(): MockRAF;
|
|
725
740
|
/**
|
|
726
|
-
* Creates a mock Performance object
|
|
741
|
+
* Creates a mock Performance object.
|
|
727
742
|
*/
|
|
728
743
|
declare function createMockPerformance(startTime?: number): Performance;
|
|
729
744
|
interface ControlledTimer {
|
|
730
|
-
|
|
745
|
+
/**
|
|
746
|
+
* Advances virtual time by ms.
|
|
747
|
+
*/
|
|
731
748
|
advanceBy(ms: number): void;
|
|
749
|
+
/**
|
|
750
|
+
* Runs all pending timers.
|
|
751
|
+
*/
|
|
752
|
+
runAll(): void;
|
|
753
|
+
/**
|
|
754
|
+
* Restores original timer functions.
|
|
755
|
+
*/
|
|
732
756
|
clear(): void;
|
|
733
|
-
restore(): void;
|
|
734
757
|
}
|
|
735
758
|
/**
|
|
736
|
-
* Creates
|
|
737
|
-
*
|
|
759
|
+
* Creates controlled timers (setTimeout/setInterval).
|
|
760
|
+
* Note: Use verify's useFakeTimers() for better integration with test runner.
|
|
761
|
+
* This is a lightweight alternative or specific helper.
|
|
738
762
|
*/
|
|
739
763
|
declare function createControlledTimer(): ControlledTimer;
|
|
740
764
|
/**
|
|
741
|
-
*
|
|
742
|
-
* @param count Number of frames to simulate
|
|
743
|
-
* @param frameTimeMs Time per frame in milliseconds
|
|
744
|
-
* @param callback Optional callback to run inside the loop (e.g. triggering inputs)
|
|
765
|
+
* Simulates multiple RAF frames.
|
|
745
766
|
*/
|
|
746
|
-
declare function simulateFrames(count: number,
|
|
767
|
+
declare function simulateFrames(count: number, frameTime?: number, callback?: (frameIndex: number) => void): void;
|
|
768
|
+
|
|
747
769
|
/**
|
|
748
|
-
*
|
|
770
|
+
* Setup helpers for Node.js environments.
|
|
749
771
|
*/
|
|
750
|
-
declare function simulateFramesWithMock(mock: MockRAF, count: number, frameTimeMs?: number, callback?: (frameIndex: number) => void): void;
|
|
751
|
-
|
|
752
772
|
interface NodeSetupOptions {
|
|
753
|
-
polyfillFetch?: boolean;
|
|
754
773
|
}
|
|
755
774
|
/**
|
|
756
775
|
* Sets up a Node.js environment for testing.
|
|
757
|
-
*
|
|
776
|
+
* Currently a placeholder for future Node-specific setup.
|
|
758
777
|
*/
|
|
759
778
|
declare function setupNodeEnvironment(options?: NodeSetupOptions): void;
|
|
779
|
+
/**
|
|
780
|
+
* Teardown for Node.js environment.
|
|
781
|
+
*/
|
|
782
|
+
declare function teardownNodeEnvironment(): void;
|
|
760
783
|
|
|
761
784
|
interface ShaderRecord {
|
|
762
785
|
readonly id: number;
|
|
@@ -904,47 +927,82 @@ declare class MockWebGL2RenderingContext {
|
|
|
904
927
|
}
|
|
905
928
|
declare function createMockWebGL2Context(overridesOrCanvas?: Partial<WebGL2RenderingContext> | HTMLCanvasElement): MockWebGL2RenderingContext;
|
|
906
929
|
|
|
930
|
+
interface MockPipeline {
|
|
931
|
+
render: ReturnType<typeof vi.fn>;
|
|
932
|
+
init: ReturnType<typeof vi.fn>;
|
|
933
|
+
resize: ReturnType<typeof vi.fn>;
|
|
934
|
+
}
|
|
935
|
+
interface MockCamera {
|
|
936
|
+
update: ReturnType<typeof vi.fn>;
|
|
937
|
+
getViewMatrix: ReturnType<typeof vi.fn>;
|
|
938
|
+
getProjectionMatrix: ReturnType<typeof vi.fn>;
|
|
939
|
+
getViewProjectionMatrix: ReturnType<typeof vi.fn>;
|
|
940
|
+
getPosition: ReturnType<typeof vi.fn>;
|
|
941
|
+
getForward: ReturnType<typeof vi.fn>;
|
|
942
|
+
getRight: ReturnType<typeof vi.fn>;
|
|
943
|
+
getUp: ReturnType<typeof vi.fn>;
|
|
944
|
+
extractFrustumPlanes: ReturnType<typeof vi.fn>;
|
|
945
|
+
transform: {
|
|
946
|
+
origin: number[];
|
|
947
|
+
angles: number[];
|
|
948
|
+
fov: number;
|
|
949
|
+
};
|
|
950
|
+
}
|
|
951
|
+
interface MockRenderingContext {
|
|
952
|
+
gl: MockWebGL2RenderingContext;
|
|
953
|
+
camera: MockCamera;
|
|
954
|
+
pipelines: {
|
|
955
|
+
md2: MockPipeline;
|
|
956
|
+
bsp: MockPipeline;
|
|
957
|
+
sprite: MockPipeline;
|
|
958
|
+
poly: MockPipeline;
|
|
959
|
+
particle: MockPipeline;
|
|
960
|
+
};
|
|
961
|
+
}
|
|
962
|
+
declare function createMockRenderingContext(): MockRenderingContext;
|
|
963
|
+
|
|
907
964
|
/**
|
|
908
|
-
* Creates a mock
|
|
965
|
+
* Creates a mock LocalStorage instance.
|
|
909
966
|
*/
|
|
910
967
|
declare function createMockLocalStorage(initialData?: Record<string, string>): Storage;
|
|
911
968
|
/**
|
|
912
|
-
* Creates a mock SessionStorage
|
|
913
|
-
* Functionally identical to LocalStorage mock but distinct for testing isolation.
|
|
969
|
+
* Creates a mock SessionStorage instance.
|
|
914
970
|
*/
|
|
915
971
|
declare function createMockSessionStorage(initialData?: Record<string, string>): Storage;
|
|
916
972
|
/**
|
|
917
973
|
* Creates a mock IndexedDB factory.
|
|
918
|
-
*
|
|
919
|
-
* This helper ensures the global is available or resets it.
|
|
974
|
+
* Wraps fake-indexeddb.
|
|
920
975
|
*/
|
|
921
|
-
declare function createMockIndexedDB(): IDBFactory;
|
|
976
|
+
declare function createMockIndexedDB(databases?: IDBDatabase[]): IDBFactory;
|
|
922
977
|
interface StorageScenario {
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
978
|
+
localStorage: Storage;
|
|
979
|
+
sessionStorage: Storage;
|
|
980
|
+
indexedDB: IDBFactory;
|
|
926
981
|
}
|
|
927
982
|
/**
|
|
928
|
-
*
|
|
983
|
+
* Creates a complete storage test scenario.
|
|
929
984
|
*/
|
|
930
985
|
declare function createStorageTestScenario(storageType?: 'local' | 'session' | 'indexed'): StorageScenario;
|
|
931
986
|
|
|
932
|
-
declare function createMockAudioContext(): AudioContext;
|
|
933
987
|
/**
|
|
934
|
-
*
|
|
988
|
+
* Mocks for Web Audio API.
|
|
989
|
+
*/
|
|
990
|
+
/**
|
|
991
|
+
* Sets up a mock AudioContext globally.
|
|
935
992
|
*/
|
|
936
993
|
declare function setupMockAudioContext(): void;
|
|
937
994
|
/**
|
|
938
|
-
* Restores
|
|
995
|
+
* Restores original AudioContext.
|
|
939
996
|
*/
|
|
940
997
|
declare function teardownMockAudioContext(): void;
|
|
941
998
|
interface AudioEvent {
|
|
942
999
|
type: string;
|
|
943
|
-
|
|
1000
|
+
data?: any;
|
|
944
1001
|
}
|
|
945
1002
|
/**
|
|
946
|
-
* Captures audio
|
|
947
|
-
*
|
|
1003
|
+
* Captures audio events from a context.
|
|
1004
|
+
* Requires the context to be instrumented or mocked to emit events.
|
|
1005
|
+
* This helper currently works with the `setupMockAudioContext` mock if extended.
|
|
948
1006
|
*/
|
|
949
1007
|
declare function captureAudioEvents(context: AudioContext): AudioEvent[];
|
|
950
1008
|
|
|
@@ -1068,93 +1126,80 @@ declare function createViewTestScenario(scenarioType: 'firstPerson' | 'thirdPers
|
|
|
1068
1126
|
*/
|
|
1069
1127
|
declare function simulateCameraMovement(camera: Camera, input: CameraInput, deltaTime: number): Camera;
|
|
1070
1128
|
|
|
1071
|
-
/**
|
|
1072
|
-
* Interface for Test Client options
|
|
1073
|
-
*/
|
|
1074
1129
|
interface PlaywrightOptions {
|
|
1075
1130
|
headless?: boolean;
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
rootPath?: string;
|
|
1081
|
-
launchOptions?: LaunchOptions;
|
|
1082
|
-
contextOptions?: BrowserContextOptions;
|
|
1131
|
+
viewport?: {
|
|
1132
|
+
width: number;
|
|
1133
|
+
height: number;
|
|
1134
|
+
};
|
|
1083
1135
|
}
|
|
1084
1136
|
interface PlaywrightTestClient {
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
injectInput: (type: string, data: any) => Promise<void>;
|
|
1137
|
+
page: any;
|
|
1138
|
+
browser: any;
|
|
1139
|
+
navigate(url: string): Promise<void>;
|
|
1140
|
+
waitForGame(): Promise<void>;
|
|
1141
|
+
injectInput(type: string, data: any): Promise<void>;
|
|
1142
|
+
screenshot(name: string): Promise<Buffer>;
|
|
1143
|
+
close(): Promise<void>;
|
|
1093
1144
|
}
|
|
1094
1145
|
/**
|
|
1095
|
-
* Creates a Playwright
|
|
1096
|
-
*
|
|
1146
|
+
* Creates a Playwright test client.
|
|
1147
|
+
* Note: Requires playwright to be installed in the project.
|
|
1097
1148
|
*/
|
|
1098
1149
|
declare function createPlaywrightTestClient(options?: PlaywrightOptions): Promise<PlaywrightTestClient>;
|
|
1099
|
-
|
|
1150
|
+
/**
|
|
1151
|
+
* Waits for the game to be ready.
|
|
1152
|
+
*/
|
|
1153
|
+
declare function waitForGameReady(page: any, timeout?: number): Promise<void>;
|
|
1100
1154
|
interface GameStateCapture {
|
|
1101
|
-
|
|
1155
|
+
time: number;
|
|
1156
|
+
entities: number;
|
|
1102
1157
|
}
|
|
1103
|
-
|
|
1158
|
+
/**
|
|
1159
|
+
* Captures current game state from the browser.
|
|
1160
|
+
*/
|
|
1161
|
+
declare function captureGameState(page: any): Promise<GameStateCapture>;
|
|
1104
1162
|
|
|
1163
|
+
type NetworkCondition = 'good' | 'slow' | 'unstable' | 'offline' | 'custom';
|
|
1105
1164
|
interface NetworkSimulator {
|
|
1106
|
-
apply(page: any): Promise<void>;
|
|
1107
|
-
clear(page: any): Promise<void>;
|
|
1108
|
-
}
|
|
1109
|
-
type NetworkCondition = 'good' | 'slow' | 'unstable' | 'offline';
|
|
1110
|
-
interface NetworkConfig {
|
|
1111
|
-
offline: boolean;
|
|
1112
|
-
downloadThroughput: number;
|
|
1113
|
-
uploadThroughput: number;
|
|
1114
1165
|
latency: number;
|
|
1166
|
+
jitter: number;
|
|
1167
|
+
packetLoss: number;
|
|
1168
|
+
bandwidth: number;
|
|
1115
1169
|
}
|
|
1116
1170
|
/**
|
|
1117
|
-
* Simulates network conditions
|
|
1171
|
+
* Simulates network conditions.
|
|
1118
1172
|
*/
|
|
1119
1173
|
declare function simulateNetworkCondition(condition: NetworkCondition): NetworkSimulator;
|
|
1120
1174
|
/**
|
|
1121
|
-
* Creates a custom network condition
|
|
1122
|
-
*
|
|
1123
|
-
* @param latency Latency in milliseconds
|
|
1124
|
-
* @param jitter Approximate jitter (variation in latency) - Note: CDP doesn't support jitter natively.
|
|
1125
|
-
* @param packetLoss Packet loss percentage (0-100) - Ignored for basic CDP emulation.
|
|
1175
|
+
* Creates a custom network condition.
|
|
1126
1176
|
*/
|
|
1127
|
-
declare function createCustomNetworkCondition(latency: number, jitter
|
|
1177
|
+
declare function createCustomNetworkCondition(latency: number, jitter: number, packetLoss: number): NetworkSimulator;
|
|
1128
1178
|
/**
|
|
1129
|
-
*
|
|
1179
|
+
* Helper to throttle bandwidth (e.g. for Playwright).
|
|
1130
1180
|
*/
|
|
1131
|
-
declare function throttleBandwidth(
|
|
1181
|
+
declare function throttleBandwidth(bytesPerSecond: number): void;
|
|
1132
1182
|
|
|
1133
1183
|
interface VisualDiff {
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
matched: boolean;
|
|
1184
|
+
diffPercentage: number;
|
|
1185
|
+
diffImage?: Buffer;
|
|
1137
1186
|
}
|
|
1138
1187
|
/**
|
|
1139
|
-
* Captures a screenshot of the
|
|
1188
|
+
* Captures a screenshot of the game.
|
|
1140
1189
|
*/
|
|
1141
|
-
declare function captureGameScreenshot(page:
|
|
1142
|
-
dir?: string;
|
|
1143
|
-
fullPage?: boolean;
|
|
1144
|
-
}): Promise<Buffer>;
|
|
1190
|
+
declare function captureGameScreenshot(page: any, name: string): Promise<Buffer>;
|
|
1145
1191
|
/**
|
|
1146
|
-
* Compares two
|
|
1147
|
-
*
|
|
1148
|
-
* For now, we provide a basic placeholder or rely on simple buffer comparison.
|
|
1192
|
+
* Compares two screenshots (Buffers).
|
|
1193
|
+
* Uses a pixel comparison library if available, or simple buffer check.
|
|
1149
1194
|
*/
|
|
1150
|
-
declare function compareScreenshots(baseline: Buffer, current: Buffer, threshold?: number):
|
|
1195
|
+
declare function compareScreenshots(baseline: Buffer, current: Buffer, threshold?: number): VisualDiff;
|
|
1151
1196
|
interface VisualScenario {
|
|
1152
|
-
|
|
1153
|
-
|
|
1197
|
+
sceneName: string;
|
|
1198
|
+
setup: () => Promise<void>;
|
|
1154
1199
|
}
|
|
1155
1200
|
/**
|
|
1156
|
-
* Creates a
|
|
1201
|
+
* Creates a visual test scenario.
|
|
1157
1202
|
*/
|
|
1158
|
-
declare function createVisualTestScenario(
|
|
1203
|
+
declare function createVisualTestScenario(sceneName: string): VisualScenario;
|
|
1159
1204
|
|
|
1160
|
-
export { type AudioEvent, type BandwidthScenario, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type CameraInput, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type KeyModifiers, type MasterServer, type Message, type MockAI, type MockCollisionEntityIndex, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockPointerLock, type MockRAF, type MockRConClient, type MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, MockWebGL2RenderingContext, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type
|
|
1205
|
+
export { type AudioEvent, type BandwidthScenario, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type CameraInput, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type KeyModifiers, type MasterServer, type Message, type MockAI, type MockCollisionEntityIndex, type MockDamageInfo, type MockEngine, type MockGame, type MockMonsterAI, MockPointerLock, type MockRAF, type MockRConClient, type MockRenderingContext, type MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, MockWebGL2RenderingContext, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkSimulator, type NodeSetupOptions, type PlaywrightOptions, type PlaywrightTestClient, type RateLimiter, type RefDef, type ServerInfo, type ServerListFilter, type Snapshot, type StorageScenario, type TestContext, type UserInfo, type ViewScenario, type ViewState, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshots, createBandwidthTestScenario, createBinaryStreamMock, createBinaryWriterMock, createCombatTestContext, createControlledTimer, createCustomNetworkCondition, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameStateSnapshotFactory, createInputInjector, createItemEntityFactory, createMockAI, createMockAmmoItem, createMockArmorItem, createMockCamera, createMockCanvas, createMockCanvasContext2D, createMockCollisionEntityIndex, createMockConnection, createMockDamageInfo, createMockEngine, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameExports, createMockGameState, createMockHandshake, createMockHealthItem, createMockImage, createMockImageData, createMockIndexedDB, createMockInventory, createMockItem, createMockKeyboardEvent, createMockLocalStorage, createMockMasterServer, createMockMonsterAI, createMockMonsterMove, createMockMouseEvent, createMockNetDriver, createMockNetworkAddress, createMockPerformance, createMockPointerLock, createMockPowerupItem, createMockRAF, createMockRConClient, createMockRateLimiter, createMockRefDef, createMockRenderingContext, createMockServer, createMockServerClient, createMockServerConsole, createMockServerInfo, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockViewState, createMockWeapon, createMockWeaponItem, createMockWebGL2Context, createMockWheelEvent, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createPhysicsTestContext, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createProjectileEntityFactory, createServerSnapshot, createSpawnTestContext, createStorageTestScenario, createTestContext, createTriggerEntityFactory, createViewTestScenario, createVisualTestScenario, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, measureSnapshotSize, mockMonsterAttacks, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateBandwidthLimit, simulateCameraMovement, simulateFrames, simulateHandshake, simulateNetworkCondition, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerRegistration, simulateServerTick, simulateSnapshotDelivery, teardownBrowserEnvironment, teardownMockAudioContext, teardownNodeEnvironment, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
|