40 lines
1.4 KiB
TypeScript
40 lines
1.4 KiB
TypeScript
import type { GameEvent, TelemetryPlayerStats } from '../../src/lib/telemetry.js';
|
|
|
|
export const TEST_TELEMETRY_TOKEN = 'ec_test_telemetry_0123456789abcdef0123456789abcdef';
|
|
export function telemetryAuthHeaders(): Record<string, string> {
|
|
process.env.EC_TELEMETRY_TOKEN = TEST_TELEMETRY_TOKEN;
|
|
return { Authorization: `Bearer ${TEST_TELEMETRY_TOKEN}` };
|
|
}
|
|
|
|
export const roster = (count = 4): TelemetryPlayerStats[] =>
|
|
Array.from({ length: count }, (_, i) => ({
|
|
name: `Player ${i + 1}`,
|
|
guid: `1234567890123456${i}`,
|
|
kills: 100 + i,
|
|
headshots: 50,
|
|
downs: 1,
|
|
revives: 2,
|
|
score: 5000
|
|
}));
|
|
export function gameEvent(
|
|
event: GameEvent['event'],
|
|
round = 25,
|
|
players = 4,
|
|
server = 't5_zombie_theater_1',
|
|
map = 'zombie_theater'
|
|
): GameEvent {
|
|
return event === 'game_start'
|
|
? { event, server, map, players: roster(players).map(({ name, guid }) => ({ name, guid })) }
|
|
: { event, server, map, round, players: roster(players) };
|
|
}
|
|
export async function postTelemetry(body: unknown, contentType = 'application/json') {
|
|
const { POST } = await import('../../src/routes/api/telemetry/+server.js');
|
|
return POST({
|
|
request: new Request('http://localhost/api/telemetry', {
|
|
method: 'POST',
|
|
headers: { 'Content-Type': contentType, ...telemetryAuthHeaders() },
|
|
body: JSON.stringify(body)
|
|
})
|
|
});
|
|
}
|