go-scopes/tests/scopes_test.go

61 lines
1.3 KiB
Go

package scopes_test
import (
"os"
tbase "testing"
lib "git.sr.ht/~cco/go-scopes"
"git.sr.ht/~cco/go-scopes/app"
"git.sr.ht/~cco/go-scopes/common/testing"
"git.sr.ht/~cco/go-scopes/core/message"
"git.sr.ht/~cco/go-scopes/tests/etc"
)
func TestScopesApp(tb *tbase.T) {
os.Remove("log/scopes.log") // make sure we start with a fresh log file
t := testing.SetUpApp(tb, etc.Config())
t.Run("app", AppTest)
t.Run("config", ConfigTest)
t.Run("send", SendTest)
t.Run("client", ClientTest)
t.TearDownApp("")
t.AssertEqual(t.LogCheck("", true), 16)
}
func AppTest(t *testing.T) {
ctx := t.Ctx
t.AssertEqual(len(ctx.Services()), 4)
}
func ConfigTest(t *testing.T) {
cfg := etc.Config()
t.AssertEqual(cfg.Name(), "testing")
appCfg := cfg.(*app.Cfg)
t.AssertEqual(appCfg.Home, ".")
}
func SendTest(t *testing.T) {
ctx := t.Ctx
rcvr := message.SimpleAddress("testing")
msg := message.SimpleMessage("demo")
message.Send(ctx, rcvr, msg)
}
func ClientTest(t *testing.T) {
ctx := t.Ctx
rcvr := message.SimpleAddress("test-client")
msg := message.SimpleMessage("demo")
message.Send(ctx, rcvr, msg)
}
// action handlers
func Receiver(act lib.Action) bool {
t := testing.GetT(act.Context())
t.AssertEqual(act.Message().Action(), "demo")
return true
}
func init() {
etc.AH_Receiver = Receiver
}