diff --git a/template/module.go b/template/module.go index 8c90de2..b921d16 100644 --- a/template/module.go +++ b/template/module.go @@ -18,16 +18,13 @@ var ( ) func init() { + // register base module, for database initialization + modules.Register("base", nil, nil, nil) + // register module module = modules.Register("template", prep, start, stop) // add dependencies... - - // register events that other modules can subscribe to - module.RegisterEvent(eventStateUpdate) -} - -func prep() error { - // register module as subsystem - err := subsystems.Register( + subsystems.Register( + "template-subsystem", // ID "Template Subsystem", // name "This subsystem is a template for quick setup", // description module, @@ -40,12 +37,14 @@ func prep() error { DefaultValue: false, }, ) - if err != nil { - return err - } + // register events that other modules can subscribe to + module.RegisterEvent(eventStateUpdate) +} + +func prep() error { // register options - err = config.Register(&config.Option{ + err := config.Register(&config.Option{ Name: "language", Key: "config:template/language", Description: "Sets the language for the template [TEMPLATE]", @@ -99,6 +98,7 @@ func serviceWorker(ctx context.Context) error { return err } case <-ctx.Done(): + return nil } } } diff --git a/template/module_test.go b/template/module_test.go index e34522a..987ef74 100644 --- a/template/module_test.go +++ b/template/module_test.go @@ -11,30 +11,39 @@ import ( ) func TestMain(m *testing.M) { + // enable module for testing + module.Enable() + // tmp dir for data root (db & config) tmpDir, err := ioutil.TempDir("", "portbase-testing-") - // initialize data dir - if err == nil { - err = dataroot.Initialize(tmpDir, 0755) - } - // start modules - if err == nil { - err = modules.Start() - } - // handle setup error if err != nil { - fmt.Fprintf(os.Stderr, "failed to setup test: %s", err) + fmt.Fprintf(os.Stderr, "failed to create tmp dir: %s\n", err) + os.Exit(1) + } + // initialize data dir + err = dataroot.Initialize(tmpDir, 0755) + if err != nil { + fmt.Fprintf(os.Stderr, "failed to initialize data root: %s\n", err) os.Exit(1) } - // run tests - exitCode := m.Run() + // start modules + var exitCode int + err = modules.Start() + if err != nil { + // starting failed + fmt.Fprintf(os.Stderr, "failed to setup test: %s\n", err) + exitCode = 1 + } else { + // run tests + exitCode = m.Run() + } // shutdown _ = modules.Shutdown() if modules.GetExitStatusCode() != 0 { exitCode = modules.GetExitStatusCode() - fmt.Fprintf(os.Stderr, "failed to cleanly shutdown test: %s", err) + fmt.Fprintf(os.Stderr, "failed to cleanly shutdown test: %s\n", err) } // clean up and exit os.RemoveAll(tmpDir)