feat: goddess sync, sanitize, and apotheosis init (chunk 3)

- initialState: add initialGoddessState() with all goddess sub-objects
- apotheosis: init GoddessState on first apotheosis, preserve on subsequent
- game: add goddessSpread block in validateAndSanitize (server-only fields capped, forward-only boss/quest/achievement enforcement)
- debug: add injectMissingGoddessExplorationAreas helper and inject all 8 goddess content arrays in syncNewContent
- vitest.config.ts: remove 8 goddess data files from coverage exclude (now imported via initialState)
- tests: full coverage for all new code (482 tests, 100% coverage)
This commit is contained in:
2026-04-13 14:23:02 -07:00
committed by Naomi Carrigan
parent c5d1f53eef
commit 7da1f3942d
9 changed files with 666 additions and 32 deletions
+1 -9
View File
@@ -11,19 +11,11 @@ export default defineConfig({
"src/index.ts",
"src/data/materials.ts",
// Goddess expansion data files — excluded until goddess routes import them in a later chunk
"src/data/goddessAchievements.ts",
"src/data/goddessBosses.ts",
"src/data/goddessConsecrationUpgrades.ts",
"src/data/goddessCrafting.ts",
"src/data/goddessDisciples.ts",
"src/data/goddessEnlightenmentUpgrades.ts",
"src/data/goddessEquipment.ts",
"src/data/goddessExplorations.ts",
"src/data/goddessMaterials.ts",
"src/data/goddessQuests.ts",
"src/data/goddessUpgrades.ts",
"src/data/goddessEquipmentSets.ts",
"src/data/goddessZones.ts",
"src/data/goddessMaterials.ts",
],
thresholds: {
statements: 100,