Allow absent inputs to use import contexts
This commit is contained in:
@@ -268,6 +268,48 @@ func TestFilesystemContextIsValidatedWithoutImportsOrActiveOverlay(t *testing.T)
|
||||
}
|
||||
}
|
||||
|
||||
func TestNoSourceImportsAndFilesystemContext(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
directory := t.TempDir()
|
||||
for _, imports := range []bool{false, true} {
|
||||
name := "imports disabled"
|
||||
if imports {
|
||||
name = "imports enabled"
|
||||
}
|
||||
t.Run(name, func(t *testing.T) {
|
||||
result, err := testLoad[importTestConfig](NoSource(), Options[importTestConfig]{
|
||||
Imports: imports, Filesystem: &FilesystemContext{Root: directory},
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if sources := result.Sources(); len(sources) != 0 {
|
||||
t.Fatalf("NoSource sources = %#v", sources)
|
||||
}
|
||||
if _, ok := result.Metadata().Lookup(Keys("items", "root")); ok {
|
||||
t.Fatal("NoSource contributed explicit input")
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
outside := t.TempDir()
|
||||
for _, test := range []struct {
|
||||
name string
|
||||
context FilesystemContext
|
||||
code Code
|
||||
}{
|
||||
{name: "missing root", context: FilesystemContext{BaseDir: directory}, code: CodeOptionsInvalid},
|
||||
{name: "relative root", context: FilesystemContext{Root: "."}, code: CodeOptionsInvalid},
|
||||
{name: "missing root directory", context: FilesystemContext{Root: filepath.Join(directory, "missing")}, code: CodeImportInvalid},
|
||||
{name: "base outside root", context: FilesystemContext{BaseDir: outside, Root: directory}, code: CodeImportOutsideRoot},
|
||||
} {
|
||||
t.Run(test.name, func(t *testing.T) {
|
||||
requireLoadCode(t, NoSource(), Options[importTestConfig]{Filesystem: &test.context}, test.code)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func writeGlobRoot(t *testing.T, directory, pattern string, required bool) string {
|
||||
t.Helper()
|
||||
requiredLine := ""
|
||||
|
||||
Reference in New Issue
Block a user