quake2ts 0.0.566 → 0.0.567
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 +77 -25
- package/packages/test-utils/dist/index.cjs.map +1 -1
- package/packages/test-utils/dist/index.d.cts +42 -1
- package/packages/test-utils/dist/index.d.ts +42 -1
- package/packages/test-utils/dist/index.js +74 -25
- package/packages/test-utils/dist/index.js.map +1 -1
|
@@ -339,6 +339,47 @@ declare function createMockHandshake(stage?: HandshakeStage): Handshake;
|
|
|
339
339
|
*/
|
|
340
340
|
declare function simulateHandshake(client: Client, server: any): Promise<boolean>;
|
|
341
341
|
|
|
342
|
+
/**
|
|
343
|
+
* Interface for a mocked server console that can execute commands.
|
|
344
|
+
* Reference: quake2/server/sv_main.c (SV_ExecuteUserCommand)
|
|
345
|
+
*/
|
|
346
|
+
interface MockServerConsole {
|
|
347
|
+
exec(cmd: string): string;
|
|
348
|
+
print(text: string): void;
|
|
349
|
+
broadcast(text: string): void;
|
|
350
|
+
commandBuffer: string[];
|
|
351
|
+
outputBuffer: string[];
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Creates a mock server console.
|
|
355
|
+
* @param overrides Optional overrides for the mock console.
|
|
356
|
+
*/
|
|
357
|
+
declare function createMockServerConsole(overrides?: Partial<MockServerConsole>): MockServerConsole;
|
|
358
|
+
/**
|
|
359
|
+
* Interface for a mocked RCON client.
|
|
360
|
+
* Reference: quake2/server/sv_user.c (SV_ExecuteUserCommand for RCON handling)
|
|
361
|
+
*/
|
|
362
|
+
interface MockRConClient {
|
|
363
|
+
connect(address: string, port: number, password?: string): Promise<boolean>;
|
|
364
|
+
sendCommand(cmd: string): Promise<string>;
|
|
365
|
+
disconnect(): void;
|
|
366
|
+
connected: boolean;
|
|
367
|
+
lastCommand: string;
|
|
368
|
+
lastResponse: string;
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Creates a mock RCON client.
|
|
372
|
+
* @param password Optional password for the client to use.
|
|
373
|
+
*/
|
|
374
|
+
declare function createMockRConClient(password?: string): MockRConClient;
|
|
375
|
+
/**
|
|
376
|
+
* Simulates a command execution on the server.
|
|
377
|
+
* @param server The mock server instance (assumed to have some command handling capability).
|
|
378
|
+
* @param command The command string to execute.
|
|
379
|
+
* @returns The output of the command.
|
|
380
|
+
*/
|
|
381
|
+
declare function simulateServerCommand(server: any, command: string): string;
|
|
382
|
+
|
|
342
383
|
type MockServerContext = Server & {
|
|
343
384
|
clients: (Client | null)[];
|
|
344
385
|
entities?: Entity[];
|
|
@@ -663,4 +704,4 @@ interface VisualScenario {
|
|
|
663
704
|
*/
|
|
664
705
|
declare function createVisualTestScenario(page: Page, sceneName: string): VisualScenario;
|
|
665
706
|
|
|
666
|
-
export { type AudioEvent, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type MockEngine, type MockGame, MockPointerLock, type MockRAF, type MockServer, type MockServerContext, MockTransport, type MockUDPSocket, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkConfig, type NetworkSimulator, type NodeSetupOptions, type PlaywrightOptions, type PlaywrightTestClient, type Snapshot, type StorageScenario, type TestContext, type UserInfo, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshots, createBinaryStreamMock, createBinaryWriterMock, createControlledTimer, createCustomNetworkCondition, createDeltaSnapshot, createEntity, createEntityStateFactory, createGameStateSnapshotFactory, createMockAudioContext, createMockCanvas, createMockCanvasContext2D, createMockConnection, createMockEngine, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameState, createMockHandshake, createMockImage, createMockImageData, createMockIndexedDB, createMockLocalStorage, createMockNetworkAddress, createMockPerformance, createMockRAF, createMockServer, createMockServerClient, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockWebGL2Context, createMultiplayerTestScenario, createNetChanMock, createPlayerStateFactory, createPlaywrightTestClient, createServerSnapshot, createSpawnContext, createStorageTestScenario, createTestContext, createVisualTestScenario, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateFrames, simulateFramesWithMock, simulateHandshake, simulateNetworkCondition, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerTick, simulateSnapshotDelivery, teardownBrowserEnvironment, teardownMockAudioContext, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
|
|
707
|
+
export { type AudioEvent, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type MockEngine, type MockGame, MockPointerLock, type MockRAF, type MockRConClient, type MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkConfig, type NetworkSimulator, type NodeSetupOptions, type PlaywrightOptions, type PlaywrightTestClient, type Snapshot, type StorageScenario, type TestContext, type UserInfo, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshots, createBinaryStreamMock, createBinaryWriterMock, createControlledTimer, createCustomNetworkCondition, createDeltaSnapshot, createEntity, createEntityStateFactory, createGameStateSnapshotFactory, createMockAudioContext, createMockCanvas, createMockCanvasContext2D, createMockConnection, createMockEngine, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameState, createMockHandshake, createMockImage, createMockImageData, createMockIndexedDB, createMockLocalStorage, createMockNetworkAddress, createMockPerformance, createMockRAF, createMockRConClient, createMockServer, createMockServerClient, createMockServerConsole, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockWebGL2Context, createMultiplayerTestScenario, createNetChanMock, createPlayerStateFactory, createPlaywrightTestClient, createServerSnapshot, createSpawnContext, createStorageTestScenario, createTestContext, createVisualTestScenario, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateFrames, simulateFramesWithMock, simulateHandshake, simulateNetworkCondition, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerTick, simulateSnapshotDelivery, teardownBrowserEnvironment, teardownMockAudioContext, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
|
|
@@ -339,6 +339,47 @@ declare function createMockHandshake(stage?: HandshakeStage): Handshake;
|
|
|
339
339
|
*/
|
|
340
340
|
declare function simulateHandshake(client: Client, server: any): Promise<boolean>;
|
|
341
341
|
|
|
342
|
+
/**
|
|
343
|
+
* Interface for a mocked server console that can execute commands.
|
|
344
|
+
* Reference: quake2/server/sv_main.c (SV_ExecuteUserCommand)
|
|
345
|
+
*/
|
|
346
|
+
interface MockServerConsole {
|
|
347
|
+
exec(cmd: string): string;
|
|
348
|
+
print(text: string): void;
|
|
349
|
+
broadcast(text: string): void;
|
|
350
|
+
commandBuffer: string[];
|
|
351
|
+
outputBuffer: string[];
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Creates a mock server console.
|
|
355
|
+
* @param overrides Optional overrides for the mock console.
|
|
356
|
+
*/
|
|
357
|
+
declare function createMockServerConsole(overrides?: Partial<MockServerConsole>): MockServerConsole;
|
|
358
|
+
/**
|
|
359
|
+
* Interface for a mocked RCON client.
|
|
360
|
+
* Reference: quake2/server/sv_user.c (SV_ExecuteUserCommand for RCON handling)
|
|
361
|
+
*/
|
|
362
|
+
interface MockRConClient {
|
|
363
|
+
connect(address: string, port: number, password?: string): Promise<boolean>;
|
|
364
|
+
sendCommand(cmd: string): Promise<string>;
|
|
365
|
+
disconnect(): void;
|
|
366
|
+
connected: boolean;
|
|
367
|
+
lastCommand: string;
|
|
368
|
+
lastResponse: string;
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Creates a mock RCON client.
|
|
372
|
+
* @param password Optional password for the client to use.
|
|
373
|
+
*/
|
|
374
|
+
declare function createMockRConClient(password?: string): MockRConClient;
|
|
375
|
+
/**
|
|
376
|
+
* Simulates a command execution on the server.
|
|
377
|
+
* @param server The mock server instance (assumed to have some command handling capability).
|
|
378
|
+
* @param command The command string to execute.
|
|
379
|
+
* @returns The output of the command.
|
|
380
|
+
*/
|
|
381
|
+
declare function simulateServerCommand(server: any, command: string): string;
|
|
382
|
+
|
|
342
383
|
type MockServerContext = Server & {
|
|
343
384
|
clients: (Client | null)[];
|
|
344
385
|
entities?: Entity[];
|
|
@@ -663,4 +704,4 @@ interface VisualScenario {
|
|
|
663
704
|
*/
|
|
664
705
|
declare function createVisualTestScenario(page: Page, sceneName: string): VisualScenario;
|
|
665
706
|
|
|
666
|
-
export { type AudioEvent, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type MockEngine, type MockGame, MockPointerLock, type MockRAF, type MockServer, type MockServerContext, MockTransport, type MockUDPSocket, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkConfig, type NetworkSimulator, type NodeSetupOptions, type PlaywrightOptions, type PlaywrightTestClient, type Snapshot, type StorageScenario, type TestContext, type UserInfo, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshots, createBinaryStreamMock, createBinaryWriterMock, createControlledTimer, createCustomNetworkCondition, createDeltaSnapshot, createEntity, createEntityStateFactory, createGameStateSnapshotFactory, createMockAudioContext, createMockCanvas, createMockCanvasContext2D, createMockConnection, createMockEngine, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameState, createMockHandshake, createMockImage, createMockImageData, createMockIndexedDB, createMockLocalStorage, createMockNetworkAddress, createMockPerformance, createMockRAF, createMockServer, createMockServerClient, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockWebGL2Context, createMultiplayerTestScenario, createNetChanMock, createPlayerStateFactory, createPlaywrightTestClient, createServerSnapshot, createSpawnContext, createStorageTestScenario, createTestContext, createVisualTestScenario, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateFrames, simulateFramesWithMock, simulateHandshake, simulateNetworkCondition, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerTick, simulateSnapshotDelivery, teardownBrowserEnvironment, teardownMockAudioContext, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
|
|
707
|
+
export { type AudioEvent, type BinaryStreamMock, type BinaryWriterMock, type BrowserSetupOptions, type Connection, type ConsistencyReport, type ControlledTimer, type DeltaSnapshot, type DrawCall, type GameState, type GameStateCapture, type Handshake, HandshakeStage, InputInjector, type MockEngine, type MockGame, MockPointerLock, type MockRAF, type MockRConClient, type MockServer, type MockServerConsole, type MockServerContext, MockTransport, type MockUDPSocket, type MultiplayerScenario, type NetworkAddress, type NetworkCondition, type NetworkConfig, type NetworkSimulator, type NodeSetupOptions, type PlaywrightOptions, type PlaywrightTestClient, type Snapshot, type StorageScenario, type TestContext, type UserInfo, type VisualDiff, type VisualScenario, captureAudioEvents, captureCanvasDrawCalls, captureGameScreenshot, captureGameState, compareScreenshots, createBinaryStreamMock, createBinaryWriterMock, createControlledTimer, createCustomNetworkCondition, createDeltaSnapshot, createEntity, createEntityStateFactory, createGameStateSnapshotFactory, createMockAudioContext, createMockCanvas, createMockCanvasContext2D, createMockConnection, createMockEngine, createMockGPUAdapter, createMockGPUCanvasContext, createMockGPUDevice, createMockGame, createMockGameState, createMockHandshake, createMockImage, createMockImageData, createMockIndexedDB, createMockLocalStorage, createMockNetworkAddress, createMockPerformance, createMockRAF, createMockRConClient, createMockServer, createMockServerClient, createMockServerConsole, createMockServerState, createMockServerStatic, createMockSessionStorage, createMockTransport, createMockUDPSocket, createMockUserInfo, createMockWebGL2Context, createMultiplayerTestScenario, createNetChanMock, createPlayerStateFactory, createPlaywrightTestClient, createServerSnapshot, createSpawnContext, createStorageTestScenario, createTestContext, createVisualTestScenario, makeAxisBrush, makeBrushFromMinsMaxs, makeBspModel, makeLeaf, makeLeafModel, makeNode, makePlane, serializeUserInfo, setupBrowserEnvironment, setupMockAudioContext, setupNodeEnvironment, setupWebGPUMocks, simulateFrames, simulateFramesWithMock, simulateHandshake, simulateNetworkCondition, simulatePlayerInput, simulatePlayerJoin, simulatePlayerLeave, simulateServerCommand, simulateServerTick, simulateSnapshotDelivery, teardownBrowserEnvironment, teardownMockAudioContext, throttleBandwidth, verifySnapshotConsistency, waitForGameReady };
|
|
@@ -659,6 +659,52 @@ async function simulateHandshake(client, server) {
|
|
|
659
659
|
return true;
|
|
660
660
|
}
|
|
661
661
|
|
|
662
|
+
// src/server/mocks/commands.ts
|
|
663
|
+
import { vi as vi5 } from "vitest";
|
|
664
|
+
function createMockServerConsole(overrides) {
|
|
665
|
+
const outputBuffer = [];
|
|
666
|
+
const commandBuffer = [];
|
|
667
|
+
return {
|
|
668
|
+
exec: vi5.fn((cmd) => {
|
|
669
|
+
commandBuffer.push(cmd);
|
|
670
|
+
return `Executed: ${cmd}`;
|
|
671
|
+
}),
|
|
672
|
+
print: vi5.fn((text) => {
|
|
673
|
+
outputBuffer.push(text);
|
|
674
|
+
}),
|
|
675
|
+
broadcast: vi5.fn((text) => {
|
|
676
|
+
outputBuffer.push(`Broadcast: ${text}`);
|
|
677
|
+
}),
|
|
678
|
+
commandBuffer,
|
|
679
|
+
outputBuffer,
|
|
680
|
+
...overrides
|
|
681
|
+
};
|
|
682
|
+
}
|
|
683
|
+
function createMockRConClient(password = "") {
|
|
684
|
+
return {
|
|
685
|
+
connected: false,
|
|
686
|
+
lastCommand: "",
|
|
687
|
+
lastResponse: "",
|
|
688
|
+
connect: vi5.fn(async (address, port, pwd) => {
|
|
689
|
+
return pwd === password;
|
|
690
|
+
}),
|
|
691
|
+
sendCommand: vi5.fn(async (cmd) => {
|
|
692
|
+
return `RCON Response for: ${cmd}`;
|
|
693
|
+
}),
|
|
694
|
+
disconnect: vi5.fn()
|
|
695
|
+
};
|
|
696
|
+
}
|
|
697
|
+
function simulateServerCommand(server, command) {
|
|
698
|
+
if (server.executeBuffer) {
|
|
699
|
+
server.executeBuffer(command);
|
|
700
|
+
return "Executed";
|
|
701
|
+
}
|
|
702
|
+
if (server.exec) {
|
|
703
|
+
return server.exec(command);
|
|
704
|
+
}
|
|
705
|
+
return "Unknown command handler";
|
|
706
|
+
}
|
|
707
|
+
|
|
662
708
|
// src/server/helpers/multiplayer.ts
|
|
663
709
|
import { ClientState as ClientState3 } from "@quake2ts/server";
|
|
664
710
|
function createMultiplayerTestScenario(numPlayers = 2) {
|
|
@@ -1288,10 +1334,10 @@ function createMockImage(width, height, src) {
|
|
|
1288
1334
|
}
|
|
1289
1335
|
|
|
1290
1336
|
// src/engine/mocks/webgpu.ts
|
|
1291
|
-
import { vi as
|
|
1337
|
+
import { vi as vi6 } from "vitest";
|
|
1292
1338
|
function createMockGPUAdapter() {
|
|
1293
1339
|
return {
|
|
1294
|
-
requestDevice:
|
|
1340
|
+
requestDevice: vi6.fn().mockResolvedValue(createMockGPUDevice()),
|
|
1295
1341
|
features: /* @__PURE__ */ new Set(),
|
|
1296
1342
|
limits: {}
|
|
1297
1343
|
};
|
|
@@ -1301,40 +1347,40 @@ function createMockGPUDevice() {
|
|
|
1301
1347
|
features: /* @__PURE__ */ new Set(),
|
|
1302
1348
|
limits: {},
|
|
1303
1349
|
queue: {
|
|
1304
|
-
submit:
|
|
1305
|
-
writeBuffer:
|
|
1306
|
-
writeTexture:
|
|
1307
|
-
copyExternalImageToTexture:
|
|
1308
|
-
},
|
|
1309
|
-
createCommandEncoder:
|
|
1310
|
-
beginRenderPass:
|
|
1311
|
-
setPipeline:
|
|
1312
|
-
draw:
|
|
1313
|
-
end:
|
|
1350
|
+
submit: vi6.fn(),
|
|
1351
|
+
writeBuffer: vi6.fn(),
|
|
1352
|
+
writeTexture: vi6.fn(),
|
|
1353
|
+
copyExternalImageToTexture: vi6.fn()
|
|
1354
|
+
},
|
|
1355
|
+
createCommandEncoder: vi6.fn().mockReturnValue({
|
|
1356
|
+
beginRenderPass: vi6.fn().mockReturnValue({
|
|
1357
|
+
setPipeline: vi6.fn(),
|
|
1358
|
+
draw: vi6.fn(),
|
|
1359
|
+
end: vi6.fn()
|
|
1314
1360
|
}),
|
|
1315
|
-
finish:
|
|
1361
|
+
finish: vi6.fn()
|
|
1316
1362
|
}),
|
|
1317
|
-
createRenderPipeline:
|
|
1318
|
-
createShaderModule:
|
|
1319
|
-
createBindGroup:
|
|
1320
|
-
createBindGroupLayout:
|
|
1321
|
-
createBuffer:
|
|
1322
|
-
createTexture:
|
|
1323
|
-
createSampler:
|
|
1363
|
+
createRenderPipeline: vi6.fn(),
|
|
1364
|
+
createShaderModule: vi6.fn(),
|
|
1365
|
+
createBindGroup: vi6.fn(),
|
|
1366
|
+
createBindGroupLayout: vi6.fn(),
|
|
1367
|
+
createBuffer: vi6.fn(),
|
|
1368
|
+
createTexture: vi6.fn(),
|
|
1369
|
+
createSampler: vi6.fn()
|
|
1324
1370
|
};
|
|
1325
1371
|
}
|
|
1326
1372
|
function createMockGPUCanvasContext() {
|
|
1327
1373
|
return {
|
|
1328
|
-
configure:
|
|
1329
|
-
unconfigure:
|
|
1330
|
-
getCurrentTexture:
|
|
1374
|
+
configure: vi6.fn(),
|
|
1375
|
+
unconfigure: vi6.fn(),
|
|
1376
|
+
getCurrentTexture: vi6.fn()
|
|
1331
1377
|
};
|
|
1332
1378
|
}
|
|
1333
1379
|
function setupWebGPUMocks() {
|
|
1334
1380
|
const mockAdapter = createMockGPUAdapter();
|
|
1335
1381
|
const mockGpu = {
|
|
1336
|
-
requestAdapter:
|
|
1337
|
-
getPreferredCanvasFormat:
|
|
1382
|
+
requestAdapter: vi6.fn().mockResolvedValue(mockAdapter),
|
|
1383
|
+
getPreferredCanvasFormat: vi6.fn().mockReturnValue("bgra8unorm")
|
|
1338
1384
|
};
|
|
1339
1385
|
Object.defineProperty(global.navigator, "gpu", {
|
|
1340
1386
|
value: mockGpu,
|
|
@@ -1974,8 +2020,10 @@ export {
|
|
|
1974
2020
|
createMockNetworkAddress,
|
|
1975
2021
|
createMockPerformance,
|
|
1976
2022
|
createMockRAF,
|
|
2023
|
+
createMockRConClient,
|
|
1977
2024
|
createMockServer,
|
|
1978
2025
|
createMockServerClient,
|
|
2026
|
+
createMockServerConsole,
|
|
1979
2027
|
createMockServerState,
|
|
1980
2028
|
createMockServerStatic,
|
|
1981
2029
|
createMockSessionStorage,
|
|
@@ -2013,6 +2061,7 @@ export {
|
|
|
2013
2061
|
simulatePlayerInput,
|
|
2014
2062
|
simulatePlayerJoin,
|
|
2015
2063
|
simulatePlayerLeave,
|
|
2064
|
+
simulateServerCommand,
|
|
2016
2065
|
simulateServerTick,
|
|
2017
2066
|
simulateSnapshotDelivery,
|
|
2018
2067
|
stairTrace,
|