diff --git a/server/test/message_test.go b/server/test/message_test.go index 57cafc1..bfb8653 100644 --- a/server/test/message_test.go +++ b/server/test/message_test.go @@ -160,7 +160,7 @@ func TestGetMessageFull(t *testing.T) { data := tt.InitDefaultData(t, ws) ts := time.Now().Unix() - 735 - content := tt.Lipsum0(2) + content := tt.ShortLipsum0(2) msgOut := tt.RequestPost[gin.H](t, baseUrl, "/", gin.H{ "user_key": data.User[0].SendKey, diff --git a/server/test/send_test.go b/server/test/send_test.go index 3e05bd3..0248ccb 100644 --- a/server/test/send_test.go +++ b/server/test/send_test.go @@ -1035,20 +1035,32 @@ func TestSendToNewChannel(t *testing.T) { } { - chan0 := tt.RequestAuthGet[chanlist](t, baseUrl, admintok, fmt.Sprintf("/api/user/%d/channels", uid)) - tt.AssertEqual(t, "chan-count", 1, len(chan0.Channels)) + chan0 := tt.RequestAuthGet[chanlist](t, admintok, baseUrl, fmt.Sprintf("/api/users/%d/channels", uid)) + tt.AssertEqual(t, "chan-count", 0, len(chan0.Channels)) + } + + tt.RequestPost[gin.H](t, baseUrl, "/", gin.H{ + "user_key": sendtok, + "user_id": uid, + "title": "M0", + }) + + { + clist := tt.RequestAuthGet[chanlist](t, admintok, baseUrl, fmt.Sprintf("/api/users/%d/channels", uid)) + tt.AssertEqual(t, "chan.len", 1, len(clist.Channels)) + tt.AssertEqual(t, "chan.name", "main", clist.Channels[0]["name"]) } tt.RequestPost[gin.H](t, baseUrl, "/", gin.H{ "user_key": sendtok, "user_id": uid, "title": "M1", - "content": tt.Lipsum0(4), + "content": tt.ShortLipsum0(4), "channel": "main", }) { - clist := tt.RequestAuthGet[chanlist](t, baseUrl, admintok, fmt.Sprintf("/api/user/%d/channels", uid)) + clist := tt.RequestAuthGet[chanlist](t, admintok, baseUrl, fmt.Sprintf("/api/users/%d/channels", uid)) tt.AssertEqual(t, "chan.len", 1, len(clist.Channels)) tt.AssertEqual(t, "chan.name", "main", clist.Channels[0]["name"]) } @@ -1057,12 +1069,12 @@ func TestSendToNewChannel(t *testing.T) { "user_key": sendtok, "user_id": uid, "title": "M2", - "content": tt.Lipsum0(4), + "content": tt.ShortLipsum0(4), "channel": "test", }) { - clist := tt.RequestAuthGet[chanlist](t, baseUrl, admintok, fmt.Sprintf("/api/user/%d/channels", uid)) + clist := tt.RequestAuthGet[chanlist](t, admintok, baseUrl, fmt.Sprintf("/api/users/%d/channels", uid)) tt.AssertEqual(t, "chan-count", 2, len(clist.Channels)) tt.AssertArrAny(t, "chan.has('main')", clist.Channels, func(msg gin.H) bool { return msg["name"].(string) == "main" }) tt.AssertArrAny(t, "chan.has('test')", clist.Channels, func(msg gin.H) bool { return msg["name"].(string) == "test" }) @@ -1076,7 +1088,100 @@ func TestSendToNewChannel(t *testing.T) { }) { - clist := tt.RequestAuthGet[chanlist](t, baseUrl, admintok, fmt.Sprintf("/api/user/%d/channels", uid)) + clist := tt.RequestAuthGet[chanlist](t, admintok, baseUrl, fmt.Sprintf("/api/users/%d/channels", uid)) + tt.AssertEqual(t, "chan-count", 2, len(clist.Channels)) + tt.AssertArrAny(t, "chan.has('main')", clist.Channels, func(msg gin.H) bool { return msg["name"].(string) == "main" }) + tt.AssertArrAny(t, "chan.has('test')", clist.Channels, func(msg gin.H) bool { return msg["name"].(string) == "test" }) + } +} + +func TestSendToManualChannel(t *testing.T) { + ws, stop := tt.StartSimpleWebserver(t) + defer stop() + + baseUrl := "http://127.0.0.1:" + ws.Port + + r0 := tt.RequestPost[gin.H](t, baseUrl, "/api/users", gin.H{ + "agent_model": "DUMMY_PHONE", + "agent_version": "4X", + "client_type": "ANDROID", + "fcm_token": "DUMMY_FCM", + }) + + uid := int(r0["user_id"].(float64)) + sendtok := r0["send_key"].(string) + admintok := r0["admin_key"].(string) + + type chanlist struct { + Channels []gin.H `json:"channels"` + } + + { + chan0 := tt.RequestAuthGet[chanlist](t, admintok, baseUrl, fmt.Sprintf("/api/users/%d/channels", uid)) + tt.AssertEqual(t, "chan-count", 0, len(chan0.Channels)) + } + + tt.RequestPost[gin.H](t, baseUrl, "/", gin.H{ + "user_key": sendtok, + "user_id": uid, + "title": "M0", + }) + + { + clist := tt.RequestAuthGet[chanlist](t, admintok, baseUrl, fmt.Sprintf("/api/users/%d/channels", uid)) + tt.AssertEqual(t, "chan.len", 1, len(clist.Channels)) + tt.AssertEqual(t, "chan.name", "main", clist.Channels[0]["name"]) + } + + tt.RequestPost[gin.H](t, baseUrl, "/", gin.H{ + "user_key": sendtok, + "user_id": uid, + "title": "M1", + "content": tt.ShortLipsum0(4), + "channel": "main", + }) + + { + clist := tt.RequestAuthGet[chanlist](t, admintok, baseUrl, fmt.Sprintf("/api/users/%d/channels", uid)) + tt.AssertEqual(t, "chan.len", 1, len(clist.Channels)) + tt.AssertEqual(t, "chan.name", "main", clist.Channels[0]["name"]) + } + + tt.RequestAuthPost[gin.H](t, admintok, baseUrl, fmt.Sprintf("/api/users/%d/channels", uid), gin.H{ + "name": "test", + }) + + { + clist := tt.RequestAuthGet[chanlist](t, admintok, baseUrl, fmt.Sprintf("/api/users/%d/channels", uid)) + tt.AssertEqual(t, "chan-count", 2, len(clist.Channels)) + tt.AssertArrAny(t, "chan.has('main')", clist.Channels, func(msg gin.H) bool { return msg["name"].(string) == "main" }) + tt.AssertArrAny(t, "chan.has('test')", clist.Channels, func(msg gin.H) bool { return msg["name"].(string) == "test" }) + } + + tt.RequestPost[gin.H](t, baseUrl, "/", gin.H{ + "user_key": sendtok, + "user_id": uid, + "title": "M2", + "content": tt.ShortLipsum0(4), + "channel": "test", + }) + + { + clist := tt.RequestAuthGet[chanlist](t, admintok, baseUrl, fmt.Sprintf("/api/users/%d/channels", uid)) + tt.AssertEqual(t, "chan-count", 2, len(clist.Channels)) + tt.AssertArrAny(t, "chan.has('main')", clist.Channels, func(msg gin.H) bool { return msg["name"].(string) == "main" }) + tt.AssertArrAny(t, "chan.has('test')", clist.Channels, func(msg gin.H) bool { return msg["name"].(string) == "test" }) + } + + tt.RequestPost[gin.H](t, baseUrl, "/", gin.H{ + "user_key": sendtok, + "user_id": uid, + "title": "M3", + "channel": "test", + }) + + { + clist := tt.RequestAuthGet[chanlist](t, admintok, baseUrl, fmt.Sprintf("/api/users/%d/channels", uid)) tt.AssertEqual(t, "chan-count", 2, len(clist.Channels)) tt.AssertArrAny(t, "chan.has('main')", clist.Channels, func(msg gin.H) bool { return msg["name"].(string) == "main" }) tt.AssertArrAny(t, "chan.has('test')", clist.Channels, func(msg gin.H) bool { return msg["name"].(string) == "test" }) diff --git a/server/test/util/factory.go b/server/test/util/factory.go index 09b2486..8e421cf 100644 --- a/server/test/util/factory.go +++ b/server/test/util/factory.go @@ -373,6 +373,6 @@ func Lipsum(seed int64, paracount int) string { return loremipsum.NewWithSeed(seed).Paragraphs(paracount) } -func Lipsum0(paracount int) string { - return loremipsum.NewWithSeed(0).Paragraphs(paracount) +func ShortLipsum0(wcount int) string { + return loremipsum.NewWithSeed(0).Words(wcount) }