Bind engine secret handling to facade types
This commit is contained in:
@@ -14,7 +14,7 @@ func TestValidationCollectsSchemaAwareReportsAndNearestLocations(t *testing.T) {
|
||||
Missing string `yaml:"missing"`
|
||||
Dynamic map[string]any `yaml:"dynamic"`
|
||||
}
|
||||
result, err := Load(Bytes("validation.yml", []byte("primary: configured\ndynamic: {present: 1}\n")), Options[config]{Definition: Definition[config]{
|
||||
result, err := testLoad(Bytes("validation.yml", []byte("primary: configured\ndynamic: {present: 1}\n")), Options[config]{Definition: Definition[config]{
|
||||
Validate: func(_ *config, validation *Validation) {
|
||||
validation.Error(Keys("missing"), "is required", Keys("primary"))
|
||||
validation.Error(Keys("dynamic", "missing"), "dynamic entry is required")
|
||||
@@ -58,7 +58,7 @@ func TestValidationRejectsUnknownStructPaths(t *testing.T) {
|
||||
type config struct {
|
||||
Known string `yaml:"known"`
|
||||
}
|
||||
result, err := Load(Bytes("validation-path.yml", []byte("known: value\n")), Options[config]{Definition: Definition[config]{
|
||||
result, err := testLoad(Bytes("validation-path.yml", []byte("known: value\n")), Options[config]{Definition: Definition[config]{
|
||||
Validate: func(_ *config, validation *Validation) {
|
||||
validation.Error(Keys("unknown"), "must be configured")
|
||||
},
|
||||
@@ -73,7 +73,7 @@ func TestValidationMutationFailsWithoutPublishingResult(t *testing.T) {
|
||||
Value int `yaml:"value"`
|
||||
Items map[string]int `yaml:"items"`
|
||||
}
|
||||
result, err := Load(Bytes("mutation.yml", []byte("value: 1\nitems: {one: 1}\n")), Options[config]{Definition: Definition[config]{
|
||||
result, err := testLoad(Bytes("mutation.yml", []byte("value: 1\nitems: {one: 1}\n")), Options[config]{Definition: Definition[config]{
|
||||
Validate: func(configuration *config, _ *Validation) {
|
||||
configuration.Value = 2
|
||||
configuration.Items["one"] = 2
|
||||
@@ -127,7 +127,7 @@ func TestHookOrderStopsAfterErrorsAndContinuesAfterWarnings(t *testing.T) {
|
||||
validation.Warning(Keys("value"), "validation warning")
|
||||
},
|
||||
}
|
||||
result, err := Load(Bytes("order.yml", []byte("version: one\n")), Options[config]{Definition: definition})
|
||||
result, err := testLoad(Bytes("order.yml", []byte("version: one\n")), Options[config]{Definition: definition})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -148,7 +148,7 @@ func TestHookOrderStopsAfterErrorsAndContinuesAfterWarnings(t *testing.T) {
|
||||
Resolve: func(_ *config, _ *Resolution) error { events = append(events, "resolve"); return nil },
|
||||
Validate: func(_ *config, _ *Validation) { events = append(events, "validate") },
|
||||
}
|
||||
result, err := Load(Bytes("order-error.yml", []byte("version: one\n")), Options[config]{Definition: definition})
|
||||
result, err := testLoad(Bytes("order-error.yml", []byte("version: one\n")), Options[config]{Definition: definition})
|
||||
assertLoadDiagnostic(t, result, err, CodeVersionError)
|
||||
if !reflect.DeepEqual(events, []string{"version"}) {
|
||||
t.Fatalf("events = %#v", events)
|
||||
@@ -157,7 +157,7 @@ func TestHookOrderStopsAfterErrorsAndContinuesAfterWarnings(t *testing.T) {
|
||||
|
||||
t.Run("resolution error stops validation", func(t *testing.T) {
|
||||
var validated bool
|
||||
result, err := Load(Bytes("resolution-order.yml", []byte("value: 1\nversion: one\n")), Options[config]{Definition: Definition[config]{
|
||||
result, err := testLoad(Bytes("resolution-order.yml", []byte("value: 1\nversion: one\n")), Options[config]{Definition: Definition[config]{
|
||||
Resolve: func(_ *config, resolution *Resolution) error {
|
||||
resolution.Error(Keys("value"), "cannot resolve")
|
||||
return nil
|
||||
@@ -172,7 +172,7 @@ func TestHookOrderStopsAfterErrorsAndContinuesAfterWarnings(t *testing.T) {
|
||||
|
||||
t.Run("decode error stops application hooks", func(t *testing.T) {
|
||||
var resolved, validated bool
|
||||
result, err := Load(Bytes("decode-order.yml", []byte("value: wrong\nversion: one\n")), Options[config]{Definition: Definition[config]{
|
||||
result, err := testLoad(Bytes("decode-order.yml", []byte("value: wrong\nversion: one\n")), Options[config]{Definition: Definition[config]{
|
||||
Resolve: func(_ *config, _ *Resolution) error { resolved = true; return nil },
|
||||
Validate: func(_ *config, _ *Validation) { validated = true },
|
||||
}})
|
||||
@@ -190,7 +190,7 @@ func TestCompleteSingleSourceLifecycleKeepsMetadataAgreement(t *testing.T) {
|
||||
Input int `yaml:"input"`
|
||||
Derived int `yaml:"derived"`
|
||||
}
|
||||
result, err := Load(Bytes("complete.yml", []byte("input: 3\n")), Options[config]{Definition: Definition[config]{
|
||||
result, err := testLoad(Bytes("complete.yml", []byte("input: 3\n")), Options[config]{Definition: Definition[config]{
|
||||
Defaults: func() config { return config{Derived: 1} },
|
||||
Resolve: func(configuration *config, resolution *Resolution) error {
|
||||
Default(resolution, Keys("derived"), &configuration.Derived, configuration.Input*2, "derived from input", Keys("input"))
|
||||
|
||||
Reference in New Issue
Block a user