Close cross-cutting sequence regression gaps
This commit is contained in:
@@ -142,6 +142,7 @@ func TestLoadingClosesNativeFilesAcrossPipelineOutcomes(t *testing.T) {
|
||||
name string
|
||||
main string
|
||||
child string
|
||||
helper string
|
||||
failRead string
|
||||
options Options[config]
|
||||
wantErr bool
|
||||
@@ -150,6 +151,16 @@ func TestLoadingClosesNativeFilesAcrossPipelineOutcomes(t *testing.T) {
|
||||
{name: "acquisition", main: "value: retained\n", failRead: "main.yml", wantErr: true},
|
||||
{name: "parse", main: "value: [broken\n", wantErr: true},
|
||||
{name: "composition", main: "configkit: {imports: [{path: child.yml}]}\nvalue: first\n", child: "value: second\n", options: Options[config]{Imports: true}, wantErr: true},
|
||||
{
|
||||
name: "nested item composition",
|
||||
main: "configkit: {imports: [{path: child.yml, destination: [children], placement: sequence-item}]}\nid: parent\n",
|
||||
child: "configkit: {imports: [{path: helper.yml}]}\nid: child\nvalue: child\n",
|
||||
helper: "value: helper\n",
|
||||
options: Options[config]{
|
||||
Imports: true, destination: Keys("groups"), placementMode: placementModeSequenceItem,
|
||||
},
|
||||
wantErr: true,
|
||||
},
|
||||
{name: "version", main: "version: wrong\n", options: Options[config]{Definition: Definition[config]{Version: &VersionRule{Path: Keys("version"), Check: func(Version, *Validation) error { return fs.ErrInvalid }}}}, wantErr: true},
|
||||
{name: "validation", main: "value: retained\n", options: Options[config]{Definition: Definition[config]{Validate: func(_ *config, validation *Validation) { validation.Error(Keys("value"), "rejected") }}}, wantErr: true},
|
||||
} {
|
||||
@@ -158,6 +169,9 @@ func TestLoadingClosesNativeFilesAcrossPipelineOutcomes(t *testing.T) {
|
||||
if test.child != "" {
|
||||
files["child.yml"] = &fstest.MapFile{Data: []byte(test.child)}
|
||||
}
|
||||
if test.helper != "" {
|
||||
files["helper.yml"] = &fstest.MapFile{Data: []byte(test.helper)}
|
||||
}
|
||||
filesystem := &observedFilesystem{files: files, failRead: test.failRead}
|
||||
_, err := testLoad(filesystemFile(newNativeNamespace("bundle", filesystem), "main.yml"), test.options)
|
||||
if (err != nil) != test.wantErr {
|
||||
|
||||
Reference in New Issue
Block a user