Replace validator contracts with raw output validation

This commit is contained in:
2026-07-07 20:55:49 +00:00
parent 249e49c928
commit b7ad66f0e0
13 changed files with 161 additions and 672 deletions

View File

@@ -1,6 +1,7 @@
package pipeline
import (
"context"
"testing"
"gitea.maximumdirect.net/eric/notarius/internal/framework/contracts"
@@ -56,3 +57,33 @@ func TestValidatorRegistryBehavior(t *testing.T) {
},
})
}
func TestValidatorRegistryRejectsUnsupportedExecutionClass(t *testing.T) {
registry := NewValidatorRegistry()
if err := registry.Register("invalid-validator", func() (contracts.Validator, error) {
return invalidExecutionClassValidator{name: "invalid-validator"}, nil
}); err != nil {
t.Fatalf("Register() error = %v, want nil", err)
}
_, err := registry.Build("invalid-validator")
if err == nil {
t.Fatal("Build() error = nil, want unsupported execution class error")
}
}
type invalidExecutionClassValidator struct {
name string
}
func (validator invalidExecutionClassValidator) Name() string {
return validator.name
}
func (validator invalidExecutionClassValidator) ExecutionClass() contracts.ExecutionClass {
return contracts.ExecutionClass("unsupported")
}
func (validator invalidExecutionClassValidator) Validate(ctx context.Context, req contracts.ValidationRequest) (contracts.ValidationResult, error) {
return contracts.ValidationResult{Approved: true}, nil
}