34 lines
980 B
Go
34 lines
980 B
Go
package apperrorsx
|
|
|
|
import "testing"
|
|
|
|
func TestRegistry_UniqueCodeAndErrorCode(t *testing.T) {
|
|
seenCode := map[string]struct{}{}
|
|
seenErrorCode := map[string]struct{}{}
|
|
seenModuleCase := map[string]struct{}{}
|
|
for _, d := range Registry {
|
|
if d.Code == "" {
|
|
t.Fatalf("empty code in registry: %#v", d)
|
|
}
|
|
if d.ErrorCode == "" {
|
|
t.Fatalf("empty error_code in registry: %#v", d)
|
|
}
|
|
if _, ok := seenCode[d.Code]; ok {
|
|
t.Fatalf("duplicate code: %s", d.Code)
|
|
}
|
|
if _, ok := seenErrorCode[d.ErrorCode]; ok {
|
|
t.Fatalf("duplicate error_code: %s", d.ErrorCode)
|
|
}
|
|
if len(d.ErrorCode) != 7 {
|
|
t.Fatalf("invalid error_code length for %s: %s", d.Code, d.ErrorCode)
|
|
}
|
|
moduleCase := d.ErrorCode[3:]
|
|
if _, ok := seenModuleCase[moduleCase]; ok {
|
|
t.Fatalf("duplicate module+case detected: %s (error_code=%s)", moduleCase, d.ErrorCode)
|
|
}
|
|
seenCode[d.Code] = struct{}{}
|
|
seenErrorCode[d.ErrorCode] = struct{}{}
|
|
seenModuleCase[moduleCase] = struct{}{}
|
|
}
|
|
}
|