Snapshot import defaults at load preflight
This commit is contained in:
@@ -458,7 +458,7 @@ func testAssembleLayeredInput[T any](request loadRequest[T], input assembledInpu
|
||||
accounting = &importAccounting{}
|
||||
}
|
||||
policy := acquisitionPolicy{
|
||||
importDefaults: snapshotImportDefaults(request.importDefaults),
|
||||
importDefaults: request.importDefaults,
|
||||
sequencePolicy: request.sequencePolicy,
|
||||
importLimits: defaultImportLimits(),
|
||||
}
|
||||
|
||||
@@ -104,7 +104,6 @@ func validateImportDefaults(value ImportDefaults) []Diagnostic {
|
||||
}
|
||||
|
||||
func resolveImportPolicy(spec importDeclarationSpec, defaults ImportDefaults) (resolvedImportPolicy, []Diagnostic) {
|
||||
defaults = snapshotImportDefaults(defaults)
|
||||
policy := resolvedImportPolicy{
|
||||
required: boolOr(spec.required, defaults.Required, false),
|
||||
follow: true,
|
||||
|
||||
@@ -189,10 +189,18 @@ func TestResolveImportPolicyAppliesDefaultsIndependently(t *testing.T) {
|
||||
|
||||
snapshot := snapshotImportDefaults(defaults)
|
||||
*defaults.Required = false
|
||||
*defaults.Follow = false
|
||||
*defaults.Hidden = false
|
||||
*defaults.Recursive = false
|
||||
defaults.Pattern[0] = "*.toml"
|
||||
if snapshot.Required == nil || !*snapshot.Required || snapshot.Pattern[0] != "*.yaml" {
|
||||
if snapshot.Required == nil || !*snapshot.Required || snapshot.Follow == nil || !*snapshot.Follow ||
|
||||
snapshot.Hidden == nil || !*snapshot.Hidden || snapshot.Recursive == nil || !*snapshot.Recursive || snapshot.Pattern[0] != "*.yaml" {
|
||||
t.Fatalf("snapshot shares mutable inputs: %#v", snapshot)
|
||||
}
|
||||
omittedSnapshot := snapshotImportDefaults(ImportDefaults{})
|
||||
if omittedSnapshot.Required != nil || omittedSnapshot.Follow != nil || omittedSnapshot.Hidden != nil || omittedSnapshot.Recursive != nil {
|
||||
t.Fatal("snapshot changed omitted booleans into explicit values")
|
||||
}
|
||||
empty := snapshotImportDefaults(ImportDefaults{Pattern: []string{}})
|
||||
if empty.Pattern == nil || len(empty.Pattern) != 0 {
|
||||
t.Fatalf("snapshot lost explicit empty pattern: %#v", empty)
|
||||
|
||||
@@ -41,7 +41,7 @@ func LoadLayered[T any](main Input, secrets SecretBinding, supplied ...LayeredOp
|
||||
destination: main.Destination.clone(), placementMode: main.placementMode,
|
||||
},
|
||||
definition: options.Definition, sourceVersionMode: options.SourceVersionMode,
|
||||
importDefaults: snapshotImportDefaults(options.ImportDefaults),
|
||||
importDefaults: options.ImportDefaults,
|
||||
overlay: options.Overlay,
|
||||
overlayFilesystem: options.OverlayFilesystem,
|
||||
overrides: append([]Override(nil), options.Overrides...),
|
||||
|
||||
@@ -185,7 +185,7 @@ func executeLoadRequest[T any](request loadRequest[T], secrets SecretBinding, lo
|
||||
accumulator := diagnosticAccumulator{}
|
||||
accounting := &importAccounting{}
|
||||
policy := acquisitionPolicy{
|
||||
importDefaults: snapshotImportDefaults(request.importDefaults),
|
||||
importDefaults: request.importDefaults,
|
||||
sequencePolicy: request.sequencePolicy,
|
||||
importLimits: defaultImportLimits(),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user