Assemble imported sequence-item scopes
This commit is contained in:
@@ -42,6 +42,34 @@ items: {main: main}
|
||||
}
|
||||
}
|
||||
|
||||
func TestNativeFilesystemItemImportUsesSharedScopedAssembly(t *testing.T) {
|
||||
t.Parallel()
|
||||
type item struct {
|
||||
ID string `yaml:"id"`
|
||||
Name string `yaml:"name"`
|
||||
}
|
||||
type config struct {
|
||||
Items []item `yaml:"items"`
|
||||
}
|
||||
filesystem := fstest.MapFS{
|
||||
"main.yml": &fstest.MapFile{Data: []byte("configkit:\n imports:\n - path: records/item.yml\n destination: [items]\n placement: sequence-item\n")},
|
||||
"records/item.yml": &fstest.MapFile{Data: []byte("configkit:\n imports:\n - path: helper.yml\nid: native\n")},
|
||||
"records/helper.yml": &fstest.MapFile{Data: []byte("name: helper\n")},
|
||||
}
|
||||
namespace := newNativeNamespace("bundle", filesystem)
|
||||
result, err := testLoad[config](filesystemFile(namespace, "main.yml"), Options[config]{Imports: true})
|
||||
if err != nil {
|
||||
t.Fatalf("native item import: %v", err)
|
||||
}
|
||||
if len(result.Config.Items) != 1 || result.Config.Items[0].ID != "native" || result.Config.Items[0].Name != "helper" {
|
||||
t.Fatalf("native item = %#v", result.Config.Items)
|
||||
}
|
||||
sources := result.Sources()
|
||||
if len(sources) != 3 || sources[1].Destination.String() != "/items" || sources[2].Destination.String() != "/items/0" || sources[1].Path != "records/item.yml" || sources[2].Path != "records/helper.yml" {
|
||||
t.Fatalf("native item sources = %#v", sources)
|
||||
}
|
||||
}
|
||||
|
||||
func TestNativeFilesystemNamespaceAndPathFailures(t *testing.T) {
|
||||
first := fstest.MapFS{"main.yml": &fstest.MapFile{Data: []byte("items: {name: first}\n")}}
|
||||
second := fstest.MapFS{"main.yml": &fstest.MapFile{Data: []byte("items: {name: second}\n")}}
|
||||
|
||||
Reference in New Issue
Block a user