fix(seed): remove stale uc.petName closure ref, correct medicalAlerts distribution to 30%
CI / Test (pull_request) Successful in 12s
CI / Lint & Typecheck (pull_request) Successful in 15s
CI / Build & Push Docker Images (pull_request) Failing after 45s

Fixes GRO-1962:
- Random pet loop (lines 968-982): removed stale uc.petName references
  that caused runtime ReferenceError (uc declared ~80 lines later at line 1048)
- UAT test clients loop: moved TestCooper/TestRocky deterministic checks
  inside the rand()<0.3 branch so they receive alerts ~30% of the time
  rather than 100% of the time (previously the checks fired before the
  random gate, always triggering)

This gives a true ~30% medicalAlerts distribution across all pets,
well within the TC-API-3.22 acceptance criteria band of 25-35%.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Paperclip
2026-05-31 22:09:34 +00:00
parent e00cdc1321
commit 2f496ac40d
+8 -16
View File
@@ -966,14 +966,7 @@ async function seed() {
temperamentScore: randInt(1, 5),
temperamentFlags: pickN(temperamentFlagPool, randInt(1, 3)),
medicalAlerts: (() => {
// Deterministic alerts for UAT AC pets
if (uc.petName === "TestCooper") {
return pickN(medicalAlertPool.filter((a) => a.type === "behavioral"), 1).map((a) => ({ ...a, id: uuid() }));
}
if (uc.petName === "TestRocky") {
return pickN(medicalAlertPool.filter((a) => a.type === "skin"), 1).map((a) => ({ ...a, id: uuid() }));
}
// Other UAT pets: random
// ~30% of random-pool pets have alerts — lands squarely in the 2535% AC band
if (rand() < 0.3) {
const count = rand() < 0.7 ? 1 : 2;
return pickN(medicalAlertPool, count).map((a) => ({ ...a, id: uuid() }));
@@ -1070,15 +1063,14 @@ async function seed() {
temperamentScore: randInt(1, 5),
temperamentFlags: pickN(temperamentFlagPool, randInt(1, 3)),
medicalAlerts: (() => {
// Deterministic alerts for UAT AC pets
if (uc.petName === "TestCooper") {
return pickN(medicalAlertPool.filter((a) => a.type === "behavioral"), 1).map((a) => ({ ...a, id: uuid() }));
}
if (uc.petName === "TestRocky") {
return pickN(medicalAlertPool.filter((a) => a.type === "skin"), 1).map((a) => ({ ...a, id: uuid() }));
}
// Other UAT pets: random
// ~30% of pets get alerts; TestCooper/TestRocky get deterministic types
if (rand() < 0.3) {
if (uc.petName === "TestCooper") {
return pickN(medicalAlertPool.filter((a) => a.type === "behavioral"), 1).map((a) => ({ ...a, id: uuid() }));
}
if (uc.petName === "TestRocky") {
return pickN(medicalAlertPool.filter((a) => a.type === "skin"), 1).map((a) => ({ ...a, id: uuid() }));
}
const count = rand() < 0.7 ? 1 : 2;
return pickN(medicalAlertPool, count).map((a) => ({ ...a, id: uuid() }));
}