Create easier to read tests for parser and validator

This commit is contained in:
erik 2023-11-22 16:40:28 +01:00 committed by Michael Jerger
parent 62eae6564f
commit ad8adc880f

View file

@ -7,48 +7,54 @@ import (
"testing" "testing"
) )
func Test_ActorParser(t *testing.T) { func TestActorParserEmpty(t *testing.T) {
type testPair struct { item := ""
item string want := ActorID{}
want ActorID
}
tests := map[string]testPair{ got, _ := ParseActorID(item)
"empty": {
item: "",
want: ActorID{},
},
"withValidActorID": {
item: "https://repo.prod.meissa.de/api/v1/activitypub/user-id/1",
want: ActorID{
schema: "https",
userId: "1",
path: "/api/v1/activitypub/user-id/1",
host: "repo.prod.meissa.de",
port: "",
},
},
"withInvalidActorID": {
item: "https://repo.prod.meissa.de/api/activitypub/user-id/1",
want: ActorID{
schema: "https",
userId: "1",
path: "/api/v1/activitypub/user-id/1",
host: "repo.prod.meissa.de",
port: "",
},
},
}
for name, _ := range tests { if got != want {
t.Run(name, func(t *testing.T) { t.Errorf("ParseActorID returned non empty actor id for empty input.")
_, err := ParseActorID(tests[name].item) }
}
if err != nil {
t.Errorf("parseActor() error = \"%v\"", err) func TestActorParserValid(t *testing.T) {
return item := "https://repo.prod.meissa.de/api/v1/activitypub/user-id/1"
} want := ActorID{
schema: "https",
}) userId: "1",
path: "/api/v1/activitypub/user-id/1",
host: "repo.prod.meissa.de",
port: "",
}
got, _ := ParseActorID(item)
if got != want {
t.Errorf("Test Fail: ParseActorID did not return want: %v.", want)
}
}
func TestValidateValid(t *testing.T) {
item := ActorID{
schema: "https",
userId: "1",
path: "/api/v1/activitypub/user-id/1",
host: "repo.prod.meissa.de",
port: "",
}
if err := item.Validate(); err != nil {
t.Errorf("Test Fail: Validating actor returned non nil with valid input.")
}
}
func TestValidateInvalid(t *testing.T) {
item := "123456"
actor, _ := ParseActorID(item)
if err := actor.Validate(); err == nil {
t.Errorf("Test Fail: Validating actor returned nil with false input.")
} }
} }