package testsuite import ( "context" "io/fs" "testing" "forge.cadoles.com/arcad/edge/pkg/app" "forge.cadoles.com/arcad/edge/pkg/module" "forge.cadoles.com/arcad/edge/pkg/module/share" "github.com/pkg/errors" "gitlab.com/wpetit/goweb/logger" ) func TestModule(t *testing.T, newRepo NewTestRepoFunc) { logger.SetLevel(logger.LevelDebug) repo, err := newRepo("module") if err != nil { t.Fatalf("%+v", errors.WithStack(err)) } server := app.NewServer( module.ContextModuleFactory(), module.ConsoleModuleFactory(), share.ModuleFactory("test.app.edge", repo), ) data, err := fs.ReadFile(testData, "testdata/share.js") if err != nil { t.Fatalf("%+v", errors.WithStack(err)) } if err := server.Load("testdata/share.js", string(data)); err != nil { t.Fatalf("%+v", errors.WithStack(err)) } if err := server.Start(); err != nil { t.Fatalf("%+v", errors.WithStack(err)) } if _, err := server.ExecFuncByName(context.Background(), "testModule"); err != nil { t.Fatalf("%+v", errors.WithStack(err)) } server.Stop() }