61 lines
1.4 KiB
Go
61 lines
1.4 KiB
Go
package ingest_test
|
|
|
|
import (
|
|
_ "embed"
|
|
"testing"
|
|
|
|
"github.com/go-json-experiment/json"
|
|
"github.com/google/go-cmp/cmp"
|
|
|
|
"git.sunturtle.xyz/zephyr/kaiyan/ingest"
|
|
"git.sunturtle.xyz/zephyr/kaiyan/twitch"
|
|
)
|
|
|
|
func TestTwitchDecode(t *testing.T) {
|
|
cases := []struct {
|
|
name string
|
|
json string
|
|
want ingest.Twitch
|
|
}{
|
|
{
|
|
name: "message",
|
|
json: twitchMessage,
|
|
want: ingest.Twitch{
|
|
Broadcaster: "1971641",
|
|
Chatter: "4145994",
|
|
ID: "cc106a89-1814-919d-454c-f4f2f970aae7",
|
|
Message: ingest.TwitchContent{Text: "Hi chat"},
|
|
},
|
|
},
|
|
{
|
|
name: "shared",
|
|
json: twitchMessageShared,
|
|
want: ingest.Twitch{
|
|
Broadcaster: "1971641",
|
|
Chatter: "4145994",
|
|
ID: "cc106a89-1814-919d-454c-f4f2f970aae7",
|
|
Message: ingest.TwitchContent{Text: "Hi chat"},
|
|
SourceBroadcaster: "112233",
|
|
},
|
|
},
|
|
}
|
|
for _, c := range cases {
|
|
t.Run(c.name, func(t *testing.T) {
|
|
var got twitch.EventSub[ingest.Twitch]
|
|
err := json.Unmarshal([]byte(c.json), &got)
|
|
if err != nil {
|
|
t.Errorf("couldn't decode message: %v", err)
|
|
}
|
|
if diff := cmp.Diff(c.want, got.Event); diff != "" {
|
|
t.Errorf("wrong result (-want/+got):\n%s", diff)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
//go:embed testdata/twitch-message.json
|
|
var twitchMessage string
|
|
|
|
//go:embed testdata/twitch-message-shared.json
|
|
var twitchMessageShared string
|