@quake2ts/test-utils 0.0.828 → 0.0.829
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 +70 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +23 -2
- package/dist/index.d.ts +23 -2
- package/dist/index.js +55 -5
- package/dist/index.js.map +1 -1
- package/package.json +9 -9
- package/src/game/helpers/spawn.ts +68 -0
- package/src/game/helpers.ts +27 -5
- package/src/index.ts +1 -0
package/dist/index.d.cts
CHANGED
|
@@ -7,7 +7,7 @@ import { BspTexInfo, BspLightmapInfo, BspEntity, BspMap, ConfigStringEntry, Cvar
|
|
|
7
7
|
export { ConfigStringEntry, Cvar, DLight, DynamicLightManager, IndexBuffer, ParticleSystem, ShaderProgram, VertexBuffer } from '@quake2ts/engine';
|
|
8
8
|
import { Vec3, Bounds3 } from '@quake2ts/shared/math/vec3';
|
|
9
9
|
import { TraceResult, CollisionPlane as CollisionPlane$1 } from '@quake2ts/shared/bsp/collision';
|
|
10
|
-
import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, GameSaveFile, LevelState, MonsterMove, DamageMod, ArmorType, RegularArmorState, PowerArmorState, PlayerInventory, BaseItem, WeaponId, WeaponItem, HealthItem, ArmorItem, AmmoItemId, PowerupItem, PlayerClient } from '@quake2ts/game';
|
|
10
|
+
import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, SpawnFunction, GameSaveFile, LevelState, MonsterMove, DamageMod, ArmorType, RegularArmorState, PowerArmorState, PlayerInventory, BaseItem, WeaponId, WeaponItem, HealthItem, ArmorItem, AmmoItemId, PowerupItem, PlayerClient } from '@quake2ts/game';
|
|
11
11
|
import { NetworkTransport, Server, ServerStatic, Client, ClientState as ClientState$1, ClientFrame } from '@quake2ts/server';
|
|
12
12
|
import { ImageData, Canvas } from '@napi-rs/canvas';
|
|
13
13
|
import { Browser, BrowserContext, Page } from 'playwright';
|
|
@@ -403,6 +403,7 @@ interface MockGame {
|
|
|
403
403
|
spawnWorld: LegacyMock<[], void>;
|
|
404
404
|
clientBegin: LegacyMock<[any], void>;
|
|
405
405
|
damage: LegacyMock<[number], void>;
|
|
406
|
+
entities: any;
|
|
406
407
|
}
|
|
407
408
|
interface TestContext extends SpawnContext {
|
|
408
409
|
entities: EntitySystem;
|
|
@@ -489,6 +490,26 @@ declare function createGameImportsAndEngine(overrides?: {
|
|
|
489
490
|
*/
|
|
490
491
|
declare function createMockGameExports(overrides?: Partial<any>): any;
|
|
491
492
|
|
|
493
|
+
/**
|
|
494
|
+
* Creates a configured SpawnRegistry for testing.
|
|
495
|
+
* Uses the default spawn registry but handles the game dependency if not provided.
|
|
496
|
+
*/
|
|
497
|
+
declare function createSpawnRegistry(game?: any): SpawnRegistry;
|
|
498
|
+
/**
|
|
499
|
+
* Registers a custom spawn function for testing.
|
|
500
|
+
*/
|
|
501
|
+
declare function registerTestSpawn(registry: SpawnRegistry, classname: string, spawnFunc: SpawnFunction): void;
|
|
502
|
+
interface SpawnTestEntityOptions {
|
|
503
|
+
classname: string;
|
|
504
|
+
keyValues?: Record<string, string>;
|
|
505
|
+
registry?: SpawnRegistry;
|
|
506
|
+
onWarning?: (message: string) => void;
|
|
507
|
+
}
|
|
508
|
+
/**
|
|
509
|
+
* Convenience function to spawn an entity using the spawn system.
|
|
510
|
+
*/
|
|
511
|
+
declare function spawnTestEntity(context: TestContext, options: SpawnTestEntityOptions): Entity | null;
|
|
512
|
+
|
|
492
513
|
/**
|
|
493
514
|
* Creates a physics test scenario with pre-configured geometry.
|
|
494
515
|
* NOTE: Since real BSP loading is complex, this often uses block entities
|
|
@@ -2357,4 +2378,4 @@ declare function compareScreenshots(baseline: Buffer, current: Buffer, threshold
|
|
|
2357
2378
|
*/
|
|
2358
2379
|
declare function createVisualTestScenario(sceneName: string): VisualScenario;
|
|
2359
2380
|
|
|
2360
|
-
export { type AnimationSnapshotOptions, type AnimationSnapshotResult, type AudioEvent, type BandwidthScenario, type BinaryStreamMock, type BinaryWriterMock, BrowserInputSource, type BrowserSetupOptions, type BspVec3, 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 HeadlessWebGLContext, type HeadlessWebGLOptions, 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 MockImportsAndEngine, 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, type MockWeapon, MockWebGL2RenderingContext, type MockWebGPUContext, type MultiplayerScenario, type NetChanMock, 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 TestBspMapOptions, type TestBspSurface, type TestContext, type TraceMock, type Transform, type UserInfo, type ViewScenario, type ViewState, type VisualDiff, type VisualScenario, type WebGLPlaywrightOptions, type WebGLPlaywrightSetup, type WebGLRenderTestSetup, type WebGPUContextState, type WebGPUMocks, captureAudioEvents, captureCanvasDrawCalls, captureFramebufferAsPNG, captureGameScreenshot, captureGameState, captureTexture, captureWebGLFramebuffer, compareSaveGames, compareScreenshots, compareSnapshots, createBandwidthTestScenario, createBinaryStreamMock, createBinaryWriterMock, createBounds, createCheckerboardTexture, createCombatTestContext, createComputeTestSetup, createConfigStringArrayMock, createConfigStringMock, createControlledTimer, createCustomNetworkCondition, createCvarMock, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameImportsAndEngine, createGameStateSnapshotFactory, createHeadlessTestContext, createHeadlessWebGL, createInputInjector, createInterpolationTestData, createItemEntityFactory, createLoggingRenderer, 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, createMockWebGLContextState, createMockWebGPUContext, createMockWheelEvent, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createNullRenderer, createPacketMock, createPhysicsTestContext, createPhysicsTestScenario, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createPowerArmorState, createPredictionTestScenario, createProjectileEntityFactory, createRegularArmorState, createRenderTestSetup, createSaveGameSnapshot, createServerSnapshot, createSolidTexture, createSpawnTestContext, createStorageTestScenario, createSurfaceMock, createTestBspMap, createTestContext, createTestLightmap, createTraceMock, createTransform, createTriggerEntityFactory, createVector3, createViewTestScenario, createVisualTestScenario, createWebGLPlaywrightSetup, createWebGLRenderTestSetup, expectAnimationSnapshot, expectNoDoubleTransform, expectRendererCalls, expectSnapshot, findPakFile, flipPixelsVertically, getSnapshotPath, initHeadlessWebGPU, loadMapFromPak, loadPNG, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, measureSnapshotSize, mockMonsterAttacks, parseProtocolPlayerState, randomVector3, renderAndCapture, renderAndCaptureWebGL, renderAndCaptureWebGLPlaywright, 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, spawnEntity, takeScreenshot, teardownBrowserEnvironment, teardownMockAudioContext, teardownNodeEnvironment, testComputeShader, testPipelineRendering, testWebGLAnimation, testWebGLRenderer, throttleBandwidth, verifySmoothing, verifySnapshotConsistency, waitForGameReady };
|
|
2381
|
+
export { type AnimationSnapshotOptions, type AnimationSnapshotResult, type AudioEvent, type BandwidthScenario, type BinaryStreamMock, type BinaryWriterMock, BrowserInputSource, type BrowserSetupOptions, type BspVec3, 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 HeadlessWebGLContext, type HeadlessWebGLOptions, 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 MockImportsAndEngine, 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, type MockWeapon, MockWebGL2RenderingContext, type MockWebGPUContext, type MultiplayerScenario, type NetChanMock, 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 SpawnTestEntityOptions, type StorageScenario, type SurfaceMock, type TestBspMapOptions, type TestBspSurface, type TestContext, type TraceMock, type Transform, type UserInfo, type ViewScenario, type ViewState, type VisualDiff, type VisualScenario, type WebGLPlaywrightOptions, type WebGLPlaywrightSetup, type WebGLRenderTestSetup, type WebGPUContextState, type WebGPUMocks, captureAudioEvents, captureCanvasDrawCalls, captureFramebufferAsPNG, captureGameScreenshot, captureGameState, captureTexture, captureWebGLFramebuffer, compareSaveGames, compareScreenshots, compareSnapshots, createBandwidthTestScenario, createBinaryStreamMock, createBinaryWriterMock, createBounds, createCheckerboardTexture, createCombatTestContext, createComputeTestSetup, createConfigStringArrayMock, createConfigStringMock, createControlledTimer, createCustomNetworkCondition, createCvarMock, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameImportsAndEngine, createGameStateSnapshotFactory, createHeadlessTestContext, createHeadlessWebGL, createInputInjector, createInterpolationTestData, createItemEntityFactory, createLoggingRenderer, 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, createMockWebGLContextState, createMockWebGPUContext, createMockWheelEvent, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createNullRenderer, createPacketMock, createPhysicsTestContext, createPhysicsTestScenario, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createPowerArmorState, createPredictionTestScenario, createProjectileEntityFactory, createRegularArmorState, createRenderTestSetup, createSaveGameSnapshot, createServerSnapshot, createSolidTexture, createSpawnRegistry, createSpawnTestContext, createStorageTestScenario, createSurfaceMock, createTestBspMap, createTestContext, createTestLightmap, createTraceMock, createTransform, createTriggerEntityFactory, createVector3, createViewTestScenario, createVisualTestScenario, createWebGLPlaywrightSetup, createWebGLRenderTestSetup, expectAnimationSnapshot, expectNoDoubleTransform, expectRendererCalls, expectSnapshot, findPakFile, flipPixelsVertically, getSnapshotPath, initHeadlessWebGPU, loadMapFromPak, loadPNG, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, measureSnapshotSize, mockMonsterAttacks, parseProtocolPlayerState, randomVector3, registerTestSpawn, renderAndCapture, renderAndCaptureWebGL, renderAndCaptureWebGLPlaywright, 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, spawnEntity, spawnTestEntity, takeScreenshot, teardownBrowserEnvironment, teardownMockAudioContext, teardownNodeEnvironment, testComputeShader, testPipelineRendering, testWebGLAnimation, testWebGLRenderer, throttleBandwidth, verifySmoothing, verifySnapshotConsistency, waitForGameReady };
|
package/dist/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { BspTexInfo, BspLightmapInfo, BspEntity, BspMap, ConfigStringEntry, Cvar
|
|
|
7
7
|
export { ConfigStringEntry, Cvar, DLight, DynamicLightManager, IndexBuffer, ParticleSystem, ShaderProgram, VertexBuffer } from '@quake2ts/engine';
|
|
8
8
|
import { Vec3, Bounds3 } from '@quake2ts/shared/math/vec3';
|
|
9
9
|
import { TraceResult, CollisionPlane as CollisionPlane$1 } from '@quake2ts/shared/bsp/collision';
|
|
10
|
-
import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, GameSaveFile, LevelState, MonsterMove, DamageMod, ArmorType, RegularArmorState, PowerArmorState, PlayerInventory, BaseItem, WeaponId, WeaponItem, HealthItem, ArmorItem, AmmoItemId, PowerupItem, PlayerClient } from '@quake2ts/game';
|
|
10
|
+
import { GameStateSnapshot, Entity, ScriptHookRegistry, SpawnContext, EntitySystem, SpawnRegistry, SpawnFunction, GameSaveFile, LevelState, MonsterMove, DamageMod, ArmorType, RegularArmorState, PowerArmorState, PlayerInventory, BaseItem, WeaponId, WeaponItem, HealthItem, ArmorItem, AmmoItemId, PowerupItem, PlayerClient } from '@quake2ts/game';
|
|
11
11
|
import { NetworkTransport, Server, ServerStatic, Client, ClientState as ClientState$1, ClientFrame } from '@quake2ts/server';
|
|
12
12
|
import { ImageData, Canvas } from '@napi-rs/canvas';
|
|
13
13
|
import { Browser, BrowserContext, Page } from 'playwright';
|
|
@@ -403,6 +403,7 @@ interface MockGame {
|
|
|
403
403
|
spawnWorld: LegacyMock<[], void>;
|
|
404
404
|
clientBegin: LegacyMock<[any], void>;
|
|
405
405
|
damage: LegacyMock<[number], void>;
|
|
406
|
+
entities: any;
|
|
406
407
|
}
|
|
407
408
|
interface TestContext extends SpawnContext {
|
|
408
409
|
entities: EntitySystem;
|
|
@@ -489,6 +490,26 @@ declare function createGameImportsAndEngine(overrides?: {
|
|
|
489
490
|
*/
|
|
490
491
|
declare function createMockGameExports(overrides?: Partial<any>): any;
|
|
491
492
|
|
|
493
|
+
/**
|
|
494
|
+
* Creates a configured SpawnRegistry for testing.
|
|
495
|
+
* Uses the default spawn registry but handles the game dependency if not provided.
|
|
496
|
+
*/
|
|
497
|
+
declare function createSpawnRegistry(game?: any): SpawnRegistry;
|
|
498
|
+
/**
|
|
499
|
+
* Registers a custom spawn function for testing.
|
|
500
|
+
*/
|
|
501
|
+
declare function registerTestSpawn(registry: SpawnRegistry, classname: string, spawnFunc: SpawnFunction): void;
|
|
502
|
+
interface SpawnTestEntityOptions {
|
|
503
|
+
classname: string;
|
|
504
|
+
keyValues?: Record<string, string>;
|
|
505
|
+
registry?: SpawnRegistry;
|
|
506
|
+
onWarning?: (message: string) => void;
|
|
507
|
+
}
|
|
508
|
+
/**
|
|
509
|
+
* Convenience function to spawn an entity using the spawn system.
|
|
510
|
+
*/
|
|
511
|
+
declare function spawnTestEntity(context: TestContext, options: SpawnTestEntityOptions): Entity | null;
|
|
512
|
+
|
|
492
513
|
/**
|
|
493
514
|
* Creates a physics test scenario with pre-configured geometry.
|
|
494
515
|
* NOTE: Since real BSP loading is complex, this often uses block entities
|
|
@@ -2357,4 +2378,4 @@ declare function compareScreenshots(baseline: Buffer, current: Buffer, threshold
|
|
|
2357
2378
|
*/
|
|
2358
2379
|
declare function createVisualTestScenario(sceneName: string): VisualScenario;
|
|
2359
2380
|
|
|
2360
|
-
export { type AnimationSnapshotOptions, type AnimationSnapshotResult, type AudioEvent, type BandwidthScenario, type BinaryStreamMock, type BinaryWriterMock, BrowserInputSource, type BrowserSetupOptions, type BspVec3, 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 HeadlessWebGLContext, type HeadlessWebGLOptions, 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 MockImportsAndEngine, 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, type MockWeapon, MockWebGL2RenderingContext, type MockWebGPUContext, type MultiplayerScenario, type NetChanMock, 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 TestBspMapOptions, type TestBspSurface, type TestContext, type TraceMock, type Transform, type UserInfo, type ViewScenario, type ViewState, type VisualDiff, type VisualScenario, type WebGLPlaywrightOptions, type WebGLPlaywrightSetup, type WebGLRenderTestSetup, type WebGPUContextState, type WebGPUMocks, captureAudioEvents, captureCanvasDrawCalls, captureFramebufferAsPNG, captureGameScreenshot, captureGameState, captureTexture, captureWebGLFramebuffer, compareSaveGames, compareScreenshots, compareSnapshots, createBandwidthTestScenario, createBinaryStreamMock, createBinaryWriterMock, createBounds, createCheckerboardTexture, createCombatTestContext, createComputeTestSetup, createConfigStringArrayMock, createConfigStringMock, createControlledTimer, createCustomNetworkCondition, createCvarMock, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameImportsAndEngine, createGameStateSnapshotFactory, createHeadlessTestContext, createHeadlessWebGL, createInputInjector, createInterpolationTestData, createItemEntityFactory, createLoggingRenderer, 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, createMockWebGLContextState, createMockWebGPUContext, createMockWheelEvent, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createNullRenderer, createPacketMock, createPhysicsTestContext, createPhysicsTestScenario, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createPowerArmorState, createPredictionTestScenario, createProjectileEntityFactory, createRegularArmorState, createRenderTestSetup, createSaveGameSnapshot, createServerSnapshot, createSolidTexture, createSpawnTestContext, createStorageTestScenario, createSurfaceMock, createTestBspMap, createTestContext, createTestLightmap, createTraceMock, createTransform, createTriggerEntityFactory, createVector3, createViewTestScenario, createVisualTestScenario, createWebGLPlaywrightSetup, createWebGLRenderTestSetup, expectAnimationSnapshot, expectNoDoubleTransform, expectRendererCalls, expectSnapshot, findPakFile, flipPixelsVertically, getSnapshotPath, initHeadlessWebGPU, loadMapFromPak, loadPNG, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, measureSnapshotSize, mockMonsterAttacks, parseProtocolPlayerState, randomVector3, renderAndCapture, renderAndCaptureWebGL, renderAndCaptureWebGLPlaywright, 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, spawnEntity, takeScreenshot, teardownBrowserEnvironment, teardownMockAudioContext, teardownNodeEnvironment, testComputeShader, testPipelineRendering, testWebGLAnimation, testWebGLRenderer, throttleBandwidth, verifySmoothing, verifySnapshotConsistency, waitForGameReady };
|
|
2381
|
+
export { type AnimationSnapshotOptions, type AnimationSnapshotResult, type AudioEvent, type BandwidthScenario, type BinaryStreamMock, type BinaryWriterMock, BrowserInputSource, type BrowserSetupOptions, type BspVec3, 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 HeadlessWebGLContext, type HeadlessWebGLOptions, 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 MockImportsAndEngine, 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, type MockWeapon, MockWebGL2RenderingContext, type MockWebGPUContext, type MultiplayerScenario, type NetChanMock, 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 SpawnTestEntityOptions, type StorageScenario, type SurfaceMock, type TestBspMapOptions, type TestBspSurface, type TestContext, type TraceMock, type Transform, type UserInfo, type ViewScenario, type ViewState, type VisualDiff, type VisualScenario, type WebGLPlaywrightOptions, type WebGLPlaywrightSetup, type WebGLRenderTestSetup, type WebGPUContextState, type WebGPUMocks, captureAudioEvents, captureCanvasDrawCalls, captureFramebufferAsPNG, captureGameScreenshot, captureGameState, captureTexture, captureWebGLFramebuffer, compareSaveGames, compareScreenshots, compareSnapshots, createBandwidthTestScenario, createBinaryStreamMock, createBinaryWriterMock, createBounds, createCheckerboardTexture, createCombatTestContext, createComputeTestSetup, createConfigStringArrayMock, createConfigStringMock, createControlledTimer, createCustomNetworkCondition, createCvarMock, createDeltaSnapshot, createEntity, createEntityFactory, createEntityStateFactory, createGameImportsAndEngine, createGameStateSnapshotFactory, createHeadlessTestContext, createHeadlessWebGL, createInputInjector, createInterpolationTestData, createItemEntityFactory, createLoggingRenderer, 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, createMockWebGLContextState, createMockWebGPUContext, createMockWheelEvent, createMonsterEntityFactory, createMultiplayerTestScenario, createNetChanMock, createNullRenderer, createPacketMock, createPhysicsTestContext, createPhysicsTestScenario, createPlayerEntityFactory, createPlayerStateFactory, createPlaywrightTestClient, createPowerArmorState, createPredictionTestScenario, createProjectileEntityFactory, createRegularArmorState, createRenderTestSetup, createSaveGameSnapshot, createServerSnapshot, createSolidTexture, createSpawnRegistry, createSpawnTestContext, createStorageTestScenario, createSurfaceMock, createTestBspMap, createTestContext, createTestLightmap, createTraceMock, createTransform, createTriggerEntityFactory, createVector3, createViewTestScenario, createVisualTestScenario, createWebGLPlaywrightSetup, createWebGLRenderTestSetup, expectAnimationSnapshot, expectNoDoubleTransform, expectRendererCalls, expectSnapshot, findPakFile, flipPixelsVertically, getSnapshotPath, initHeadlessWebGPU, loadMapFromPak, loadPNG, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, measureSnapshotSize, mockMonsterAttacks, parseProtocolPlayerState, randomVector3, registerTestSpawn, renderAndCapture, renderAndCaptureWebGL, renderAndCaptureWebGLPlaywright, 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, spawnEntity, spawnTestEntity, takeScreenshot, teardownBrowserEnvironment, teardownMockAudioContext, teardownNodeEnvironment, testComputeShader, testPipelineRendering, testWebGLAnimation, testWebGLRenderer, throttleBandwidth, verifySmoothing, verifySnapshotConsistency, waitForGameReady };
|
package/dist/index.js
CHANGED
|
@@ -695,7 +695,10 @@ var createMockGame = (seed = 12345) => {
|
|
|
695
695
|
}),
|
|
696
696
|
damage: vi3.fn((amount) => {
|
|
697
697
|
hooks.onDamage({}, null, null, amount, 0, 0);
|
|
698
|
-
})
|
|
698
|
+
}),
|
|
699
|
+
entities: {
|
|
700
|
+
spawnRegistry
|
|
701
|
+
}
|
|
699
702
|
};
|
|
700
703
|
return { game, spawnRegistry };
|
|
701
704
|
};
|
|
@@ -711,7 +714,10 @@ function createTestContext(options) {
|
|
|
711
714
|
);
|
|
712
715
|
const entityList = options?.initialEntities ? [...options.initialEntities] : [];
|
|
713
716
|
const hooks = game.hooks;
|
|
714
|
-
let currentSpawnRegistry;
|
|
717
|
+
let currentSpawnRegistry = spawnRegistry;
|
|
718
|
+
const findByTargetName = (targetname) => {
|
|
719
|
+
return entityList.filter((e) => e.targetname === targetname && e.inUse);
|
|
720
|
+
};
|
|
715
721
|
const entities = {
|
|
716
722
|
spawn: vi3.fn(() => {
|
|
717
723
|
const ent = new Entity2(entityList.length + 1);
|
|
@@ -766,9 +772,20 @@ function createTestContext(options) {
|
|
|
766
772
|
}),
|
|
767
773
|
soundIndex: vi3.fn((sound) => engine.soundIndex(sound)),
|
|
768
774
|
useTargets: vi3.fn((entity, activator) => {
|
|
775
|
+
if (entity.target) {
|
|
776
|
+
const targets = findByTargetName(entity.target);
|
|
777
|
+
for (const t of targets) {
|
|
778
|
+
t.use?.(t, entity, activator);
|
|
779
|
+
}
|
|
780
|
+
}
|
|
781
|
+
}),
|
|
782
|
+
findByTargetName: vi3.fn(findByTargetName),
|
|
783
|
+
pickTarget: vi3.fn((targetname) => {
|
|
784
|
+
if (!targetname) return null;
|
|
785
|
+
const matches = findByTargetName(targetname);
|
|
786
|
+
if (matches.length === 0) return null;
|
|
787
|
+
return matches[0];
|
|
769
788
|
}),
|
|
770
|
-
findByTargetName: vi3.fn(() => []),
|
|
771
|
-
pickTarget: vi3.fn(() => null),
|
|
772
789
|
killBox: vi3.fn(),
|
|
773
790
|
rng: createRandomGenerator({ seed }),
|
|
774
791
|
imports: {
|
|
@@ -790,7 +807,7 @@ function createTestContext(options) {
|
|
|
790
807
|
return entityList.find(predicate);
|
|
791
808
|
}),
|
|
792
809
|
findByClassname: vi3.fn((classname) => {
|
|
793
|
-
return entityList.
|
|
810
|
+
return entityList.filter((e) => e.classname === classname);
|
|
794
811
|
}),
|
|
795
812
|
beginFrame: vi3.fn((timeSeconds) => {
|
|
796
813
|
entities.timeSeconds = timeSeconds;
|
|
@@ -811,6 +828,7 @@ function createTestContext(options) {
|
|
|
811
828
|
activeCount: entityList.length,
|
|
812
829
|
world: entityList.find((e) => e.classname === "worldspawn") || new Entity2(0)
|
|
813
830
|
};
|
|
831
|
+
game.entities = entities;
|
|
814
832
|
return {
|
|
815
833
|
keyValues: {},
|
|
816
834
|
entities,
|
|
@@ -910,6 +928,35 @@ function createMockGameExports(overrides = {}) {
|
|
|
910
928
|
};
|
|
911
929
|
}
|
|
912
930
|
|
|
931
|
+
// src/game/helpers/spawn.ts
|
|
932
|
+
import {
|
|
933
|
+
createDefaultSpawnRegistry,
|
|
934
|
+
spawnEntityFromDictionary
|
|
935
|
+
} from "@quake2ts/game";
|
|
936
|
+
function createSpawnRegistry(game) {
|
|
937
|
+
const gameMock = game || {};
|
|
938
|
+
return createDefaultSpawnRegistry(gameMock);
|
|
939
|
+
}
|
|
940
|
+
function registerTestSpawn(registry, classname, spawnFunc) {
|
|
941
|
+
registry.register(classname, spawnFunc);
|
|
942
|
+
}
|
|
943
|
+
function spawnTestEntity(context, options) {
|
|
944
|
+
const registry = options.registry || context.game?.entities?.spawnRegistry;
|
|
945
|
+
if (!registry) {
|
|
946
|
+
throw new Error("No spawn registry provided and none found on context.game.entities");
|
|
947
|
+
}
|
|
948
|
+
const keyValues = {
|
|
949
|
+
classname: options.classname,
|
|
950
|
+
...options.keyValues || {}
|
|
951
|
+
};
|
|
952
|
+
const spawnOptions = {
|
|
953
|
+
registry,
|
|
954
|
+
entities: context.entities,
|
|
955
|
+
onWarning: options.onWarning
|
|
956
|
+
};
|
|
957
|
+
return spawnEntityFromDictionary(keyValues, spawnOptions);
|
|
958
|
+
}
|
|
959
|
+
|
|
913
960
|
// src/game/helpers/physics.ts
|
|
914
961
|
import { MoveType as MoveType2, Solid as Solid2 } from "@quake2ts/game";
|
|
915
962
|
import { subtractVec3, scaleVec3, lengthVec3, normalizeVec3 } from "@quake2ts/shared";
|
|
@@ -5708,6 +5755,7 @@ export {
|
|
|
5708
5755
|
createSaveGameSnapshot,
|
|
5709
5756
|
createServerSnapshot,
|
|
5710
5757
|
createSolidTexture,
|
|
5758
|
+
createSpawnRegistry,
|
|
5711
5759
|
createSpawnTestContext,
|
|
5712
5760
|
createStorageTestScenario,
|
|
5713
5761
|
createSurfaceMock,
|
|
@@ -5745,6 +5793,7 @@ export {
|
|
|
5745
5793
|
mockMonsterAttacks,
|
|
5746
5794
|
parseProtocolPlayerState,
|
|
5747
5795
|
randomVector3,
|
|
5796
|
+
registerTestSpawn,
|
|
5748
5797
|
renderAndCapture,
|
|
5749
5798
|
renderAndCaptureWebGL,
|
|
5750
5799
|
renderAndCaptureWebGLPlaywright,
|
|
@@ -5777,6 +5826,7 @@ export {
|
|
|
5777
5826
|
simulateServerTick,
|
|
5778
5827
|
simulateSnapshotDelivery,
|
|
5779
5828
|
spawnEntity,
|
|
5829
|
+
spawnTestEntity,
|
|
5780
5830
|
stairTrace,
|
|
5781
5831
|
takeScreenshot,
|
|
5782
5832
|
teardownBrowserEnvironment,
|