Expose import defaults and selection evidence
This commit is contained in:
@@ -71,3 +71,34 @@ func TestSourceVersionCheckConversionsAndCopies(t *testing.T) {
|
||||
t.Fatalf("source version check changed through a detached copy: %#v", converted.VersionCheck)
|
||||
}
|
||||
}
|
||||
|
||||
func TestImportSelectionConversionsAndCopies(t *testing.T) {
|
||||
declaration, err := ParsePath("/configkit/imports/2")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
source := SourceInfo{ID: "source-4", ImportSelections: []ImportSelection{{
|
||||
Path: declaration, Location: Location{SourceID: "source-4", Line: 7, Column: 5},
|
||||
Selector: ImportSelectorGlob, Outcome: ImportSelectionNone,
|
||||
}}}
|
||||
internal := toEngineSourceInfo(source)
|
||||
transport := engine.SourceInfoImportSelectionsForFacade(internal)
|
||||
if len(transport) != 1 || transport[0].Path.String() != declaration.String() || transport[0].Location.SourceID != source.ID || transport[0].Selector != "glob" || transport[0].Outcome != "none" {
|
||||
t.Fatalf("engine selection evidence = %#v", transport)
|
||||
}
|
||||
source.ImportSelections[0].Path = Keys("changed")
|
||||
converted := fromEngineSourceInfo(internal)
|
||||
if len(converted.ImportSelections) != 1 || converted.ImportSelections[0].Path.String() != declaration.String() || converted.ImportSelections[0].Location.Line != 7 || converted.ImportSelections[0].Selector != ImportSelectorGlob || converted.ImportSelections[0].Outcome != ImportSelectionNone {
|
||||
t.Fatalf("converted selection evidence = %#v", converted.ImportSelections)
|
||||
}
|
||||
copy := cloneSourceInfo(converted)
|
||||
copy.ImportSelections[0].Path = Keys("copy")
|
||||
copy.ImportSelections[0].Selector = ImportSelectorPath
|
||||
if converted.ImportSelections[0].Path.String() != declaration.String() || converted.ImportSelections[0].Selector != ImportSelectorGlob {
|
||||
t.Fatalf("source selection evidence changed through copy: %#v", converted.ImportSelections)
|
||||
}
|
||||
empty := cloneSourceInfo(SourceInfo{ImportSelections: make([]ImportSelection, 0)})
|
||||
if empty.ImportSelections == nil {
|
||||
t.Fatal("cloning collapsed a non-nil empty selection slice")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user