Support player ping in game telemetry
This commit is contained in:
@@ -56,6 +56,17 @@ describe('shared server observation', () => {
|
||||
expect(fallback).toMatchObject({ status_source: 'rcon', health: 'online', last_players: 4, last_seen_at: at(40_000) });
|
||||
});
|
||||
|
||||
it('displays telemetry pings and clears missing readings on subsequent reports', () => {
|
||||
const telemetry = report(0, 4);
|
||||
telemetry.players = telemetry.players.map((player, i) => ({ ...player, ping: [0, 42, 999, null][i] }));
|
||||
const selected = selectServerObservation(server(), telemetry, now);
|
||||
expect(selected.roster?.map(player => player.ping)).toEqual([0, 42, 999, null]);
|
||||
expect(selectServerObservation(selected, report(1, 4), now + 1).roster?.map(player => player.ping)).toEqual([null, null, null, null]);
|
||||
const start = { ...gameEvent('game_start', 0, 1, 'managed'), event: 'game_start' as const, receivedAt: at(),
|
||||
players: [{ name: 'Player 1', guid: '123', ping: 25 }] };
|
||||
expect(selectServerObservation(server(), start, now).roster?.[0]).toMatchObject({ score: null, ping: 25 });
|
||||
});
|
||||
|
||||
it.each(['starting', 'restarting', 'unhealthy', 'exited'])('telemetry cannot override container state %s', state => {
|
||||
const selected = selectServerObservation(server({ health: state === 'starting' || state === 'restarting' ? 'starting' : 'offline', container_state: state }), report(), now);
|
||||
expect(selected.health).not.toBe('online');
|
||||
|
||||
Reference in New Issue
Block a user