Protect RCON diagnostics and redact player addresses (Refs #61)
This commit is contained in:
@@ -6,7 +6,7 @@ import { newFixture, type Fixture } from '../helpers/fixture.js';
|
||||
|
||||
const remote = vi.hoisted(() => ({ state: 'running', players: 0, map: 'zombie_theater' }));
|
||||
vi.mock('../../src/lib/server/integrations/rcon.js', () => ({
|
||||
rconStatusResult: vi.fn(async () => ({ ok: true, endpoint: { host: 'agent', port: 28960 }, rawReply: '', status: { players: remote.players, map: remote.map, gametype: 'zom', roster: [] } })),
|
||||
rconStatusResult: vi.fn(async () => ({ ok: true, endpoint: { host: 'agent', port: 28960 }, status: { players: remote.players, map: remote.map, gametype: 'zom', roster: [] } })),
|
||||
rconGetPlayerCount: vi.fn(async () => remote.players), rconPlutoniumVersion: vi.fn(async () => ({ revision: 5354, error: null }))
|
||||
}));
|
||||
vi.mock('../../src/lib/server/integrations/plutonium.js', () => ({ checkRelease: vi.fn(async () => {}), freshRelease: () => 5354, probeVersion: vi.fn(async () => 5354) }));
|
||||
@@ -261,7 +261,7 @@ describe('provisioning health handoff', () => {
|
||||
const observedAt = new Date().toISOString();
|
||||
const roster = [{ num: 0, name: 'Player', guid: '12345678901234567', score: 500, ping: 20 }];
|
||||
const { rconStatusResult } = await import('../../src/lib/server/integrations/rcon.js');
|
||||
vi.mocked(rconStatusResult).mockResolvedValueOnce({ ok: true, endpoint: { host: 'agent', port: 28960 }, rawReply: 'verified status',
|
||||
vi.mocked(rconStatusResult).mockResolvedValueOnce({ ok: true, endpoint: { host: 'agent', port: 28960 },
|
||||
status: { players: 1, map: remote.map, gametype: 'zom', roster } });
|
||||
const { subscribe } = await import('../../src/lib/server/pipeline/bus.js');
|
||||
const { getDeployment } = await import('../../src/lib/server/provisioning/history.js');
|
||||
@@ -276,7 +276,7 @@ describe('provisioning health handoff', () => {
|
||||
expect((await detail(id)).state).toBe('done');
|
||||
expect(visible).toEqual(['online']);
|
||||
expect(getServer(job.name)).toMatchObject({ last_checked_at: observedAt, last_seen_at: observedAt,
|
||||
last_players: 1, last_roster: JSON.stringify(roster), last_reply_snippet: 'verified status',
|
||||
last_players: 1, last_roster: JSON.stringify(roster), last_reply_snippet: null,
|
||||
last_error: null, rcon_failures: 0, active_since: observedAt, inactive_since: null });
|
||||
for (const status of await observations(job.name)) expect(status).toMatchObject({ health: 'online', last_players: 1, roster });
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user