mirror of
https://github.com/tiennm99/vngeoguessr.git
synced 2026-10-11 03:13:56 +00:00
Scoring, the Upstash key adapter, sessions and the leaderboards had no coverage, and they carry the anti-cheat model: server-held coordinates, session TTLs, rank arithmetic. One suite runs against two backing stores. By default @upstash/redis is mocked with an in-memory fake, so `npm test` needs no service and finishes well under a second. With TEST_REDIS=real the mock steps aside and the same files run against a real Redis behind SRH, the proxy Upstash recommends for local work, since the SDK speaks HTTP REST rather than RESP and a plain Redis container cannot serve it alone. Running both is what keeps the fake honest: a semantic it gets wrong shows up as a green unit run and a red integration run. Two tests skip against real Redis, one asserting a response shape only an older SDK produces and one fast-forwarding half an hour to watch a session expire. The suite was checked by mutation rather than by passing alone. Breaking a score band, the key prefix and the session TTL each failed a test; reversing the global trim window did not, because only the city leaderboard was asserted, so that test now covers both scopes. The compose stack doubles as a local Redis for `npm run dev`, which had no credentials to reach one before. package.json also loses the eight unused runtime dependencies removed in the cleanup that follows; they cannot be split from the same file.
18 lines
586 B
JavaScript
18 lines
586 B
JavaScript
import { defineConfig } from 'vitest/config';
|
|
|
|
export default defineConfig({
|
|
test: {
|
|
environment: 'node',
|
|
include: ['tests/**/*.test.js'],
|
|
// lib/upstash.js refuses to build a client without these. The tests mock the
|
|
// SDK itself, so the values are never dialled -- they only have to exist.
|
|
env: {
|
|
UPSTASH_REDIS_REST_URL: 'http://fake-upstash.test',
|
|
UPSTASH_REDIS_REST_TOKEN: 'fake-token',
|
|
// Pinned so the assertions on physical keys hold regardless of what the
|
|
// developer's .env sets.
|
|
KEY_PREFIX: 'vngeoguessr:',
|
|
},
|
|
},
|
|
});
|