package csmanualentry import ( "errors" "strings" "testing" ) func TestNormalizeEntryNo(t *testing.T) { tests := []struct { name string input string want string wantErr error }{ {name: "trim", input: " 202610120013 ", want: "202610120013"}, {name: "plain", input: "202610120013", want: "202610120013"}, {name: "empty", input: " ", wantErr: ErrEntryNoInvalid}, {name: "inner space", input: "2026 1001", wantErr: ErrEntryNoInvalid}, {name: "too long", input: strings.Repeat("1", 65), wantErr: ErrEntryNoInvalid}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { got, err := normalizeEntryNo(tt.input) if !errors.Is(err, tt.wantErr) { t.Fatalf("normalizeEntryNo(%q) error = %v, want %v", tt.input, err, tt.wantErr) } if tt.wantErr == nil && got != tt.want { t.Fatalf("normalizeEntryNo(%q) = %q, want %q", tt.input, got, tt.want) } }) } } func TestIsDuplicateEntry(t *testing.T) { if isDuplicateEntry(nil) { t.Fatal("nil should not be duplicate") } if !isDuplicateEntry(errors.New("Error 1062 (23000): Duplicate entry")) { t.Fatal("1062 error should be duplicate") } if isDuplicateEntry(errors.New("some other error")) { t.Fatal("unrelated error should not be duplicate") } }