feat: allow hooks to be declared on embedded fields
Specifically, on Go embedded fields, not on fields tagged with `embed`. Fixes #90.
This commit is contained in:
@@ -2406,3 +2406,36 @@ func TestProviderMethods(t *testing.T) {
|
||||
err = kctx.Run(t)
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
type EmbeddedCallback struct {
|
||||
Embedded bool
|
||||
}
|
||||
|
||||
func (e *EmbeddedCallback) AfterApply() error {
|
||||
e.Embedded = true
|
||||
return nil
|
||||
}
|
||||
|
||||
type EmbeddedRoot struct {
|
||||
EmbeddedCallback
|
||||
Root bool
|
||||
}
|
||||
|
||||
func (e *EmbeddedRoot) AfterApply() error {
|
||||
e.Root = true
|
||||
return nil
|
||||
}
|
||||
|
||||
func TestEmbeddedCallbacks(t *testing.T) {
|
||||
actual := &EmbeddedRoot{}
|
||||
k := mustNew(t, actual)
|
||||
_, err := k.Parse(nil)
|
||||
assert.NoError(t, err)
|
||||
expected := &EmbeddedRoot{
|
||||
EmbeddedCallback: EmbeddedCallback{
|
||||
Embedded: true,
|
||||
},
|
||||
Root: true,
|
||||
}
|
||||
assert.Equal(t, expected, actual)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user