add Module.Lifecycle getter method

This commit is contained in:
Elijah Duffy
2025-06-04 14:24:19 -07:00
parent 76d6216a9c
commit 220ae47d5c
2 changed files with 19 additions and 0 deletions

View File

@@ -53,6 +53,12 @@ func NewModule(name string, opts ModuleOpts) *Module {
}
}
// Lifecycle returns the lifecycle this module belongs to. If the module is not
// part of a lifecycle, it will return nil.
func (s *Module) Lifecycle() *Lifecycle {
return s.lifecycle
}
// Logger returns the logger for the module. Uses the lifecycle's logger unless
// a specific logger has been set during module load.
func (s *Module) Logger() *slog.Logger {

View File

@@ -64,3 +64,16 @@ func TestModule(t *testing.T) {
mod.loaded = true
assert.NotPanics(func() { mod.RequireLoaded() }, "expected RequireLoaded to not panic when module is loaded")
}
func TestModule_Lifecycle(t *testing.T) {
assert := assert.New(t)
// Create a module and check its lifecycle
mod := NewModule("testModule", ModuleOpts{})
assert.Nil(mod.Lifecycle(), "expected Lifecycle to return nil when module is not part of a lifecycle")
// Create a lifecycle and set it to the module
lifecycle := &Lifecycle{}
mod.lifecycle = lifecycle
assert.Equal(lifecycle, mod.Lifecycle(), "expected Lifecycle to return the correct lifecycle")
}