|
|
|
package keybase
|
|
|
|
|
|
|
|
import (
|
|
|
|
"os/exec"
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"samhofi.us/x/keybase/v2/types/chat1"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestListConvsOnName(t *testing.T) {
|
|
|
|
execCommand = createFakeExecCommand("listconvsonname")
|
|
|
|
defer func() { execCommand = exec.Command }()
|
|
|
|
|
|
|
|
channel := chat1.ChatChannel{
|
|
|
|
Name: "mkbot",
|
|
|
|
MembersType: TEAM,
|
|
|
|
}
|
|
|
|
k := New()
|
|
|
|
res, err := k.ListConvsOnName(channel)
|
|
|
|
if err != nil {
|
|
|
|
t.Errorf("Expected nil error, got %#v", err)
|
|
|
|
}
|
|
|
|
|
|
|
|
channelcount := 10
|
|
|
|
if len(*res) != channelcount {
|
|
|
|
t.Errorf("Expected %d channels, got %d channels", channelcount, len(*res))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestSendMessageByChannel(t *testing.T) {
|
|
|
|
execCommand = createFakeExecCommand("send")
|
|
|
|
defer func() { execCommand = exec.Command }()
|
|
|
|
|
|
|
|
channel := chat1.ChatChannel{
|
|
|
|
Name: "user1,user2",
|
|
|
|
MembersType: USER,
|
|
|
|
}
|
|
|
|
k := New()
|
|
|
|
res, err := k.SendMessageByChannel(channel, "Hello!")
|
|
|
|
if err != nil {
|
|
|
|
t.Errorf("Expected nil error, got %#v", err)
|
|
|
|
}
|
|
|
|
|
|
|
|
if expected := "message sent"; res.Message != expected {
|
|
|
|
t.Errorf(`res.Message: expected "%s", got "%v"`, expected, res.Message)
|
|
|
|
}
|
|
|
|
|
|
|
|
if expected := uint(894); uint(*res.MessageID) != expected {
|
|
|
|
t.Errorf(`res.MessageID: expected %d, got %d`, expected, uint(*res.MessageID))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestSendMessageByConvID(t *testing.T) {
|
|
|
|
execCommand = createFakeExecCommand("send")
|
|
|
|
defer func() { execCommand = exec.Command }()
|
|
|
|
|
|
|
|
k := New()
|
|
|
|
res, err := k.SendMessageByConvID(chat1.ConvIDStr("000049d2395435dff0c865c18832d9645eb69fd74a2814ef55310b294092ba6d"), "Hello!")
|
|
|
|
if err != nil {
|
|
|
|
t.Errorf("Expected nil error, got %#v", err)
|
|
|
|
}
|
|
|
|
|
|
|
|
if expected := "message sent"; res.Message != expected {
|
|
|
|
t.Errorf(`res.Message: expected "%s", got "%v"`, expected, res.Message)
|
|
|
|
}
|
|
|
|
|
|
|
|
if expected := uint(894); uint(*res.MessageID) != expected {
|
|
|
|
t.Errorf(`res.MessageID: expected %d, got %d`, expected, uint(*res.MessageID))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestCreateFilterString(t *testing.T) {
|
|
|
|
tables := []struct {
|
|
|
|
channel chat1.ChatChannel
|
|
|
|
expected string
|
|
|
|
}{
|
|
|
|
{
|
|
|
|
chat1.ChatChannel{},
|
|
|
|
``,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
chat1.ChatChannel{Name: "faketeam", MembersType: TEAM},
|
|
|
|
`{"name":"faketeam","members_type":"team"}`,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
chat1.ChatChannel{Name: "user1,user2", MembersType: USER},
|
|
|
|
`{"name":"user1,user2","members_type":"impteamnative"}`,
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, table := range tables {
|
|
|
|
if result := createFilterString(table.channel); result != table.expected {
|
|
|
|
t.Errorf(`Expected "%s", got "%s"`, table.expected, result)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestCreateFiltersString(t *testing.T) {
|
|
|
|
tables := []struct {
|
|
|
|
channel []chat1.ChatChannel
|
|
|
|
expected string
|
|
|
|
}{
|
|
|
|
{
|
|
|
|
[]chat1.ChatChannel{},
|
|
|
|
``,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
[]chat1.ChatChannel{
|
|
|
|
chat1.ChatChannel{Name: "faketeam1", MembersType: TEAM},
|
|
|
|
chat1.ChatChannel{Name: "faketeam2", MembersType: TEAM},
|
|
|
|
},
|
|
|
|
`[{"name":"faketeam1","members_type":"team"},{"name":"faketeam2","members_type":"team"}]`,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
[]chat1.ChatChannel{
|
|
|
|
chat1.ChatChannel{Name: "user1,user2", MembersType: USER},
|
|
|
|
chat1.ChatChannel{Name: "user3,user4", MembersType: USER},
|
|
|
|
},
|
|
|
|
`[{"name":"user1,user2","members_type":"impteamnative"},{"name":"user3,user4","members_type":"impteamnative"}]`,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
[]chat1.ChatChannel{
|
|
|
|
chat1.ChatChannel{Name: "user1,user2", MembersType: USER},
|
|
|
|
chat1.ChatChannel{Name: "faketeam1", MembersType: TEAM},
|
|
|
|
},
|
|
|
|
`[{"name":"user1,user2","members_type":"impteamnative"},{"name":"faketeam1","members_type":"team"}]`,
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, table := range tables {
|
|
|
|
if result := createFiltersString(table.channel); result != table.expected {
|
|
|
|
t.Errorf(`Expected "%s", got "%s"`, table.expected, result)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|