Skip to content

fix(test): unblock pre-push by removing booking-series time-bomb#336

Merged
cola500 merged 2 commits into
stagingfrom
feature/fix-booking-series-time-bomb-test
May 14, 2026
Merged

fix(test): unblock pre-push by removing booking-series time-bomb#336
cola500 merged 2 commits into
stagingfrom
feature/fix-booking-series-time-bomb-test

Conversation

@cola500
Copy link
Copy Markdown
Owner

@cola500 cola500 commented May 14, 2026

Summary

Fixar 8 pre-existing fails i booking-series/route.test.ts som blockerat pre-push-hooken sedan 2026-05-02 (dagen efter time-bomb-datumet 2026-05-01).

Root cause (5 Whys): Test-fixture hade hårdkodat firstBookingDate: "2026-05-01" (commit f9b47c43d, 2026-02-17). När dagens datum passerade 2026-05-01 började route:s schema-validering returnera 400 istället för 201:

firstBookingDate: dateSchema.refine(
  (val) => new Date(val) >= today,
  "Startdatum kan inte vara i det förflutna."
)

Production-koden är korrekt — schemat ska avvisa förflutna datum. Det var testet som bröt principen "tester ska inte time-bomba".

Commits

  1. ffdbccef fix(test): use dynamic future date in booking-series tests — 1-rads test-fix
  2. 34a9bc2d docs(backlog): add hardcoded future date audit follow-up — markerar gamla raden fixad, lägger time-bomb-audit som follow-up

Test-resultat

Suit Före Efter
booking-series/route.test.ts 9 pass / 8 fail 17 pass / 0 fail
Hela testsuiten 4435 pass / 8 fail 4443 pass / 0 fail
Pre-push-hook Blockerade (krävde --no-verify) Grön utan flagga

Effort

Backlog uppskattade detta som "2-4h" (S67-0, 2026-05-08). Faktisk fix: 10 min (1-rads ändring). 24x överskattning eftersom rotorsaken inte analyserats — symptomet "8 tester failar" doldes bakom --no-verify-vana.

Follow-up (i samma PR i backlog.md)

  • Audit hårdkodade framtida datum i tester (time-bomb-audit) — söka src/**/*.test.ts + e2e/** efter mer hårdkodade datum-strängar, ev. ESLint-regel som varnar.

Test plan

  • npx vitest run src/app/api/booking-series/route.test.ts → 17/17
  • npx vitest run (hela suiten) → 4443/4443
  • git push utan --no-verify passerar pre-push-hooken
  • Vercel preview-build passerar
  • Efter merge: pre-push-hooken fungerar för alla framtida feature-branches utan flagga

🤖 Generated with Claude Code

cola500 and others added 2 commits May 14, 2026 07:13
8 av 17 tester i src/app/api/booking-series/route.test.ts failade på
både main och staging — klassiskt time-bomb-test. validBody hade
hårdkodat firstBookingDate: "2026-05-01" sedan 2026-02-17 (commit
f9b47c4). När dagens datum passerade 2026-05-01 började route:s
schema-validering returnera 400 istället för 201:

    firstBookingDate: dateSchema.refine(
      (val) => new Date(val) >= today,
      "Startdatum kan inte vara i det förflutna."
    )

Production-koden är korrekt — schemat ska avvisa förflutna datum. Det
var testet som bröt mot principen "tester ska inte time-bomba".

Fix: byt till dynamiskt datum (Date.now() + 30 dagar) så testet alltid
skickar ett framtida datum.

Resultat: 17/17 GREEN i booking-series-suiten. Hela testsuiten 4443/4443
GREEN. Pre-push-hooken kan nu användas utan --no-verify för alla
framtida pushes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Markerar Pre-existing booking-series-fail som FIXAD 2026-05-14
  + dokumenterar root cause (time-bomb-test) inline för historik
- Lägger till ny backlog-rad: audit alla hårdkodade framtida datum
  i tester (src/**/*.test.ts + e2e/**) för att hitta fler latenta
  time-bombs innan de exploderar
- Föreslår ev. ESLint-regel eller pre-commit-check som varnar för
  hårdkodade datum-strängar i .test.ts-filer

Effort på den befintliga raden var 2-4h — faktisk fix var 10 min
(1-rads ändring). Backlog-skattning hade aldrig analyserat rotorsak.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented May 14, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
equinet-staging-app Ignored Ignored May 14, 2026 5:16am

@cola500 cola500 merged commit b04216f into staging May 14, 2026
4 checks passed
@cola500 cola500 deleted the feature/fix-booking-series-time-bomb-test branch May 14, 2026 05:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant