package sourcerange import ( "strings" "testing" "gitea.maximumdirect.net/eric/notarius/internal/core/source" ) func TestValidateChecksOnlyDurableNumericRange(t *testing.T) { for _, test := range []struct { name string ref source.SourceRef want string }{ {name: "valid without source ID", ref: source.SourceRef{StartUnitID: 1, EndUnitID: 2}}, {name: "nonpositive start", ref: source.SourceRef{StartUnitID: 0, EndUnitID: 1}, want: "start_unit_id"}, {name: "nonpositive end", ref: source.SourceRef{StartUnitID: 1, EndUnitID: 0}, want: "end_unit_id"}, {name: "reversed", ref: source.SourceRef{StartUnitID: 2, EndUnitID: 1}, want: "must not exceed"}, } { t.Run(test.name, func(t *testing.T) { err := Validate(test.ref) if test.want == "" && err != nil { t.Fatalf("Validate() error = %v, want nil", err) } if test.want != "" && (err == nil || !strings.Contains(err.Error(), test.want)) { t.Fatalf("Validate() error = %v, want %q", err, test.want) } }) } }