Snapshot import defaults at load preflight

This commit is contained in:
2026-10-26 00:13:34 +00:00
parent c25cf39d19
commit 643f43ce6a
10 changed files with 73 additions and 43 deletions

View File

@@ -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(),
}

View File

@@ -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,

View File

@@ -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)

View File

@@ -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...),

View File

@@ -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(),
}