mirror of
https://github.com/tiennm99/vngeoguessr.git
synced 2026-10-20 02:18:30 +00:00
- panoramas + pano_provinces tables replace 28MB bundled JSON; pano-index.js now draws via cached COUNT + ORDER BY id OFFSET with rejection sampling, composite (province,id)/(district,id) indexes support the skip - scripts/seed-pano-db.mjs validates pipeline artifacts (the old real-data vitest invariants, extracted to scripts/lib/pano-artifacts.mjs), stages into panoramas_next, verifies, renames into place in one transaction, keeps panoramas_old as backup; --province reseeds in place; --check validates only - pipeline writes gitignored data-build/panos/; pano barrel removed - tests run against PGlite mocked in at the @neondatabase/serverless boundary, mirroring the fake-upstash pattern; fixtures replace real data - infrastructure errors rethrow instead of reading as missing coverage; session ids via crypto.randomUUID (uuid package dropped)
21 lines
799 B
JavaScript
21 lines
799 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',
|
|
// lib/pano-db.js refuses to build a handle without this. The tests mock
|
|
// the Neon SDK itself (PGlite behind it), so the value is never dialled.
|
|
DATABASE_URL: 'postgres://fake-neon.test/fake',
|
|
// Pinned so the assertions on physical keys hold regardless of what the
|
|
// developer's .env sets.
|
|
KEY_PREFIX: 'vngeoguessr:',
|
|
},
|
|
},
|
|
});
|