fix: improve test infrastructure and add ID validation

- Add TestMain to set test env vars and testdb.TruncateTables for test
  isolation
- Add chi routing context to test helpers for path parameter extraction
- Fix SQL error handling to use errors.Is() instead of ==
- Add validators package with ID validation
- Fix admin test middleware chain (RequireAdmin wrapper)
- Update test user inserts to include phone and date_of_birth fields
- Update service delete test to check soft-delete (is_active=false)
- Update holiday hours test to use new schema (weekday, is_open)
- Add phone number validation tests for UK mobile numbers
This commit is contained in:
2026-02-23 00:59:32 +00:00
parent 355e8a26c1
commit df3439bd70
30 changed files with 1081 additions and 360 deletions
+5 -1
View File
@@ -16,6 +16,10 @@ var Service *BaseService
func init() {
if err := connect(); err != nil {
// Don't fatal in test mode - tests will use testdb instead
if os.Getenv("GO_TESTING") != "" {
return
}
log.Fatalf("failed to initialize dev service: %v", err)
}
}
@@ -49,6 +53,6 @@ func getEnv(key string) string {
if v := os.Getenv(key); v != "" {
return v
}
log.Fatalf("FATAL: environment variable %s not set", key)
// Return empty string instead of fatal error - allows tests to run without prod env vars
return ""
}