Support player ping in game telemetry
This commit is contained in:
@@ -494,7 +494,9 @@ describe('database fleet and container readiness', () => {
|
||||
const { subscribe } = await import('../../src/lib/server/pipeline/bus.js');
|
||||
db.prepare("UPDATE servers SET last_players = 4, last_seen_at = ? WHERE name = 'managed'").run(new Date().toISOString());
|
||||
inspect.mockResolvedValue({ ok: true, state: 'running' });
|
||||
await postTelemetry(gameEvent('heartbeat', 15, 3, 'managed'));
|
||||
const telemetry = gameEvent('heartbeat', 15, 3, 'managed');
|
||||
telemetry.players[0].ping = 42;
|
||||
await postTelemetry(telemetry);
|
||||
const events: unknown[] = [];
|
||||
const unsubscribe = subscribe(event => events.push(event));
|
||||
try { await fanoutStatus(); } finally { unsubscribe(); }
|
||||
@@ -503,7 +505,8 @@ describe('database fleet and container readiness', () => {
|
||||
expect(server).toMatchObject({ health: 'online', last_players: 3, status_source: 'telemetry', last_error: null,
|
||||
rcon_status: { last_players: 4, last_error: 'timeout:old process' } });
|
||||
expect(server.roster).toHaveLength(3);
|
||||
expect(server.roster[0]).toMatchObject({ ping: null, score: 5000 });
|
||||
expect(server.roster[0]).toMatchObject({ ping: 42, score: 5000 });
|
||||
expect(server.roster[1].ping).toBeNull();
|
||||
expect(events).toContainEqual(expect.objectContaining({ type: 'server-status', entries: [expect.objectContaining({
|
||||
health: 'online', players: 3, roster: server.roster, lastSeenAt: server.last_seen_at
|
||||
})] }));
|
||||
|
||||
Reference in New Issue
Block a user