go-scopes/tests/scopes_test.go

55 lines
1.2 KiB
Go

package scopes_test
import (
"os"
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) {
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.TearDownApp()
t.AssertEqual(t.LogCount(true), 7)
}
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, ".")
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.AssertEqual(act.Message().Action(), "demo")
return true
}
func init() {
etc.AH_Receiver = Receiver
}