go-scopes/tests/scopes_test.go

55 lines
1.2 KiB
Go

package scopes_test
import (
"fmt"
tbase "testing"
"git.sr.ht/~cco/go-scopes/app"
"git.sr.ht/~cco/go-scopes/lib"
"git.sr.ht/~cco/go-scopes/lib/message"
"git.sr.ht/~cco/go-scopes/testing"
"git.sr.ht/~cco/go-scopes/tests/etc"
)
func TestConfig(tb *tbase.T) {
t := testing.SetUpApp(tb, etc.Config())
t.Run("app", AppTest)
t.Run("config", ConfigTest)
t.Run("send", SendTest)
t.TearDownApp()
}
func AppTest(t *testing.T) {
ctx := t.Ctx
t.AssertEqual(len(ctx.Services()), 3)
}
func ConfigTest(t *testing.T) {
cfg := etc.Config()
t.AssertEqual(cfg.Name(), "testing")
appCfg := cfg.(*app.Cfg)
t.AssertEqual(appCfg.Home, "tests")
confCtx := t.Ctx.Services()["config"]
t.AssertEqual(confCtx.Config().Name(), "config")
}
func SendTest(t *testing.T) {
ctx := t.Ctx
rcvr := message.SimpleAddress("testing")
msg := message.StrMessage("demo")
lib.Send(ctx, rcvr, msg)
}
// action handlers
func Receiver(act lib.Action) bool {
// t := testing.GetT(act.Context())
t := act.Context().Parent().State().(*testing.T)
fmt.Println("test.Receiver:", act.Message().Action())
t.AssertEqual(act.Message().Action(), "demo")
return true
}
func init() {
etc.AH_Receiver = Receiver
}