diff --git a/model/reaction_test.go b/model/reaction_test.go index a357504775..53f40494d7 100644 --- a/model/reaction_test.go +++ b/model/reaction_test.go @@ -6,79 +6,159 @@ package model import ( "strings" "testing" + + "github.com/stretchr/testify/require" ) func TestReactionIsValid(t *testing.T) { - reaction := Reaction{ - UserId: NewId(), - PostId: NewId(), - EmojiName: "emoji", - CreateAt: GetMillis(), + tests := []struct { + // reaction + reaction Reaction + // error message to print + errMsg string + // should there be an error + shouldErr bool + }{ + { + reaction: Reaction{ + UserId: NewId(), + PostId: NewId(), + EmojiName: "emoji", + CreateAt: GetMillis(), + }, + errMsg: "", + shouldErr: false, + }, + { + reaction: Reaction{ + UserId: "", + PostId: NewId(), + EmojiName: "emoji", + CreateAt: GetMillis(), + }, + errMsg: "user id should be invalid", + shouldErr: true, + }, + { + reaction: Reaction{ + UserId: "1234garbage", + PostId: NewId(), + EmojiName: "emoji", + CreateAt: GetMillis(), + }, + errMsg: "user id should be invalid", + shouldErr: true, + }, + { + reaction: Reaction{ + UserId: NewId(), + PostId: "", + EmojiName: "emoji", + CreateAt: GetMillis(), + }, + errMsg: "post id should be invalid", + shouldErr: true, + }, + { + reaction: Reaction{ + UserId: NewId(), + PostId: "1234garbage", + EmojiName: "emoji", + CreateAt: GetMillis(), + }, + errMsg: "post id should be invalid", + shouldErr: true, + }, + { + reaction: Reaction{ + UserId: NewId(), + PostId: NewId(), + EmojiName: strings.Repeat("a", 64), + CreateAt: GetMillis(), + }, + errMsg: "", + shouldErr: false, + }, + { + reaction: Reaction{ + UserId: NewId(), + PostId: NewId(), + EmojiName: "emoji-", + CreateAt: GetMillis(), + }, + errMsg: "", + shouldErr: false, + }, + { + reaction: Reaction{ + UserId: NewId(), + PostId: NewId(), + EmojiName: "emoji_", + CreateAt: GetMillis(), + }, + errMsg: "", + shouldErr: false, + }, + { + reaction: Reaction{ + UserId: NewId(), + PostId: NewId(), + EmojiName: "+1", + CreateAt: GetMillis(), + }, + errMsg: "", + shouldErr: false, + }, + { + reaction: Reaction{ + UserId: NewId(), + PostId: NewId(), + EmojiName: "emoji:", + CreateAt: GetMillis(), + }, + errMsg: "", + shouldErr: true, + }, + { + reaction: Reaction{ + UserId: NewId(), + PostId: NewId(), + EmojiName: "", + CreateAt: GetMillis(), + }, + errMsg: "emoji name should be invalid", + shouldErr: true, + }, + { + reaction: Reaction{ + UserId: NewId(), + PostId: NewId(), + EmojiName: strings.Repeat("a", 65), + CreateAt: GetMillis(), + }, + errMsg: "emoji name should be invalid", + shouldErr: true, + }, + { + reaction: Reaction{ + UserId: NewId(), + PostId: NewId(), + EmojiName: "emoji", + CreateAt: 0, + }, + errMsg: "create at should be invalid", + shouldErr: true, + }, } - if err := reaction.IsValid(); err != nil { - t.Fatal(err) - } - - reaction.UserId = "" - if err := reaction.IsValid(); err == nil { - t.Fatal("user id should be invalid") - } - - reaction.UserId = "1234garbage" - if err := reaction.IsValid(); err == nil { - t.Fatal("user id should be invalid") - } - - reaction.UserId = NewId() - reaction.PostId = "" - if err := reaction.IsValid(); err == nil { - t.Fatal("post id should be invalid") - } - - reaction.PostId = "1234garbage" - if err := reaction.IsValid(); err == nil { - t.Fatal("post id should be invalid") - } - - reaction.PostId = NewId() - reaction.EmojiName = strings.Repeat("a", 64) - if err := reaction.IsValid(); err != nil { - t.Fatal(err) - } - - reaction.EmojiName = "emoji-" - if err := reaction.IsValid(); err != nil { - t.Fatal(err) - } - - reaction.EmojiName = "emoji_" - if err := reaction.IsValid(); err != nil { - t.Fatal(err) - } - - reaction.EmojiName = "+1" - if err := reaction.IsValid(); err != nil { - t.Fatal(err) - } - - reaction.EmojiName = "emoji:" - if err := reaction.IsValid(); err == nil { - t.Fatal(err) - } - - reaction.EmojiName = "" - if err := reaction.IsValid(); err == nil { - t.Fatal("emoji name should be invalid") - } - - reaction.EmojiName = strings.Repeat("a", 65) - if err := reaction.IsValid(); err == nil { - t.Fatal("emoji name should be invalid") - } - - reaction.CreateAt = 0 - if err := reaction.IsValid(); err == nil { - t.Fatal("create at should be invalid") + for _, test := range tests { + err := test.reaction.IsValid() + if test.shouldErr { + // there should be an error here + require.NotNil(t, err, test.errMsg) + } else { + // err should be nil here + require.Nil(t, err, test.errMsg) + } } }