31 lines
809 B
Go
31 lines
809 B
Go
package store
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/tinode/chat/server/store/types"
|
|
)
|
|
|
|
func TestFileLinkUserIDAllowsOpaqueTopicReferences(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
topic string
|
|
isUser bool
|
|
wantUID types.Uid
|
|
}{
|
|
{name: "cultivate reference", topic: "cvpbzxw1aio4ni8x0"},
|
|
{name: "short opaque reference", topic: "x"},
|
|
{name: "empty reference", topic: ""},
|
|
{name: "user reference", topic: types.Uid(42).UserId(), isUser: true, wantUID: types.Uid(42)},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
t.Run(test.name, func(t *testing.T) {
|
|
gotUID, gotIsUser := fileLinkUserID(test.topic)
|
|
if gotIsUser != test.isUser || gotUID != test.wantUID {
|
|
t.Fatalf("fileLinkUserID(%q) = (%v, %v), want (%v, %v)", test.topic, gotUID, gotIsUser, test.wantUID, test.isUser)
|
|
}
|
|
})
|
|
}
|
|
}
|