github.com/cryptomisa/mattermost-server@v5.11.1+incompatible/model/reaction_test.go (about)

     1  // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
     2  // See License.txt for license information.
     3  
     4  package model
     5  
     6  import (
     7  	"strings"
     8  	"testing"
     9  )
    10  
    11  func TestReactionIsValid(t *testing.T) {
    12  	reaction := Reaction{
    13  		UserId:    NewId(),
    14  		PostId:    NewId(),
    15  		EmojiName: "emoji",
    16  		CreateAt:  GetMillis(),
    17  	}
    18  
    19  	if err := reaction.IsValid(); err != nil {
    20  		t.Fatal(err)
    21  	}
    22  
    23  	reaction.UserId = ""
    24  	if err := reaction.IsValid(); err == nil {
    25  		t.Fatal("user id should be invalid")
    26  	}
    27  
    28  	reaction.UserId = "1234garbage"
    29  	if err := reaction.IsValid(); err == nil {
    30  		t.Fatal("user id should be invalid")
    31  	}
    32  
    33  	reaction.UserId = NewId()
    34  	reaction.PostId = ""
    35  	if err := reaction.IsValid(); err == nil {
    36  		t.Fatal("post id should be invalid")
    37  	}
    38  
    39  	reaction.PostId = "1234garbage"
    40  	if err := reaction.IsValid(); err == nil {
    41  		t.Fatal("post id should be invalid")
    42  	}
    43  
    44  	reaction.PostId = NewId()
    45  	reaction.EmojiName = strings.Repeat("a", 64)
    46  	if err := reaction.IsValid(); err != nil {
    47  		t.Fatal(err)
    48  	}
    49  
    50  	reaction.EmojiName = "emoji-"
    51  	if err := reaction.IsValid(); err != nil {
    52  		t.Fatal(err)
    53  	}
    54  
    55  	reaction.EmojiName = "emoji_"
    56  	if err := reaction.IsValid(); err != nil {
    57  		t.Fatal(err)
    58  	}
    59  
    60  	reaction.EmojiName = "+1"
    61  	if err := reaction.IsValid(); err != nil {
    62  		t.Fatal(err)
    63  	}
    64  
    65  	reaction.EmojiName = "emoji:"
    66  	if err := reaction.IsValid(); err == nil {
    67  		t.Fatal(err)
    68  	}
    69  
    70  	reaction.EmojiName = ""
    71  	if err := reaction.IsValid(); err == nil {
    72  		t.Fatal("emoji name should be invalid")
    73  	}
    74  
    75  	reaction.EmojiName = strings.Repeat("a", 65)
    76  	if err := reaction.IsValid(); err == nil {
    77  		t.Fatal("emoji name should be invalid")
    78  	}
    79  
    80  	reaction.CreateAt = 0
    81  	if err := reaction.IsValid(); err == nil {
    82  		t.Fatal("create at should be invalid")
    83  	}
    84  }