Update the architecture plan to standardize on input -> chunk -> extract -> merge -> normalize -> output naming conventions
This commit is contained in:
@@ -99,7 +99,7 @@ func TestRunRejectsNilExtractorFromFactory(t *testing.T) {
|
||||
func TestRunUsesConfiguredExtractorOrderAndAssignsGlobalIndices(t *testing.T) {
|
||||
var order []string
|
||||
var seenIndices []int
|
||||
recordIndices := func(candidates []artifacts.Candidate) []contracts.ValidationDecision {
|
||||
recordIndices := func(candidates []artifacts.ArtifactCandidate) []contracts.ValidationDecision {
|
||||
decisions := make([]contracts.ValidationDecision, 0, len(candidates))
|
||||
for _, candidate := range candidates {
|
||||
seenIndices = append(seenIndices, candidate.Index)
|
||||
@@ -133,7 +133,7 @@ func TestRunUsesConfiguredExtractorOrderAndAssignsGlobalIndices(t *testing.T) {
|
||||
|
||||
func TestRunFillsEmptyCandidateExtractorMetadata(t *testing.T) {
|
||||
factory := fakeFactory{extractors: map[string]contracts.Extractor{
|
||||
"generic-extractor": fakeExtractor{key: "generic-extractor", artifactType: "generic-artifact", schemaVersion: "v1", candidates: []artifacts.Candidate{{Payload: []byte(`{"value":true}`)}}},
|
||||
"generic-extractor": fakeExtractor{key: "generic-extractor", artifactType: "generic-artifact", schemaVersion: "v1", candidates: []artifacts.ArtifactCandidate{{Payload: []byte(`{"value":true}`)}}},
|
||||
}}
|
||||
|
||||
output, err := New(factory).Run(context.Background(), RunInput{Source: validSourceDocument(), ExtractorKeys: []string{"generic-extractor"}})
|
||||
@@ -150,18 +150,18 @@ func TestRunFillsEmptyCandidateExtractorMetadata(t *testing.T) {
|
||||
func TestRunRejectsCandidateMetadataMismatches(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
candidate artifacts.Candidate
|
||||
candidate artifacts.ArtifactCandidate
|
||||
error string
|
||||
}{
|
||||
{name: "extractor key", candidate: artifacts.Candidate{ExtractorKey: "other"}, error: "extractor_key"},
|
||||
{name: "artifact type", candidate: artifacts.Candidate{ArtifactType: "other"}, error: "artifact_type"},
|
||||
{name: "schema version", candidate: artifacts.Candidate{SchemaVersion: "other"}, error: "schema_version"},
|
||||
{name: "extractor key", candidate: artifacts.ArtifactCandidate{ExtractorKey: "other"}, error: "extractor_key"},
|
||||
{name: "artifact type", candidate: artifacts.ArtifactCandidate{ArtifactType: "other"}, error: "artifact_type"},
|
||||
{name: "schema version", candidate: artifacts.ArtifactCandidate{SchemaVersion: "other"}, error: "schema_version"},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
factory := fakeFactory{extractors: map[string]contracts.Extractor{
|
||||
"generic-extractor": fakeExtractor{key: "generic-extractor", artifactType: "generic-artifact", schemaVersion: "v1", candidates: []artifacts.Candidate{tt.candidate}},
|
||||
"generic-extractor": fakeExtractor{key: "generic-extractor", artifactType: "generic-artifact", schemaVersion: "v1", candidates: []artifacts.ArtifactCandidate{tt.candidate}},
|
||||
}}
|
||||
|
||||
_, err := New(factory).Run(context.Background(), RunInput{Source: validSourceDocument(), ExtractorKeys: []string{"generic-extractor"}})
|
||||
@@ -194,7 +194,7 @@ func TestRunApprovesCandidatesWithoutValidators(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestRunValidatorApprovalProducesApprovedArtifacts(t *testing.T) {
|
||||
validator := fakeValidator{name: "generic-validator", decisions: func(candidates []artifacts.Candidate) []contracts.ValidationDecision {
|
||||
validator := fakeValidator{name: "generic-validator", decisions: func(candidates []artifacts.ArtifactCandidate) []contracts.ValidationDecision {
|
||||
return []contracts.ValidationDecision{validationhelpers.Approved(candidates[0].Index)}
|
||||
}}
|
||||
factory := fakeFactory{extractors: map[string]contracts.Extractor{
|
||||
@@ -212,13 +212,13 @@ func TestRunValidatorApprovalProducesApprovedArtifacts(t *testing.T) {
|
||||
|
||||
func TestRunValidatorRejectionRemovesCandidateFromLaterValidators(t *testing.T) {
|
||||
var laterSeen int
|
||||
rejectFirst := fakeValidator{name: "reject-first", decisions: func(candidates []artifacts.Candidate) []contracts.ValidationDecision {
|
||||
rejectFirst := fakeValidator{name: "reject-first", decisions: func(candidates []artifacts.ArtifactCandidate) []contracts.ValidationDecision {
|
||||
return []contracts.ValidationDecision{
|
||||
validationhelpers.Rejected(candidates[0].Index, "invalid", "not accepted"),
|
||||
validationhelpers.Approved(candidates[1].Index),
|
||||
}
|
||||
}}
|
||||
approveRemaining := fakeValidator{name: "approve-remaining", decisions: func(candidates []artifacts.Candidate) []contracts.ValidationDecision {
|
||||
approveRemaining := fakeValidator{name: "approve-remaining", decisions: func(candidates []artifacts.ArtifactCandidate) []contracts.ValidationDecision {
|
||||
laterSeen = len(candidates)
|
||||
return []contracts.ValidationDecision{validationhelpers.Approved(candidates[0].Index)}
|
||||
}}
|
||||
@@ -254,7 +254,7 @@ func TestRunSurfacesValidatorNameMismatch(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestRunSurfacesValidatorCardinalityError(t *testing.T) {
|
||||
validator := fakeValidator{name: "generic-validator", decisions: func(candidates []artifacts.Candidate) []contracts.ValidationDecision {
|
||||
validator := fakeValidator{name: "generic-validator", decisions: func(candidates []artifacts.ArtifactCandidate) []contracts.ValidationDecision {
|
||||
return nil
|
||||
}}
|
||||
factory := factoryWithValidator(validator)
|
||||
@@ -359,7 +359,7 @@ type fakeExtractor struct {
|
||||
artifactType string
|
||||
schemaVersion string
|
||||
candidateCount int
|
||||
candidates []artifacts.Candidate
|
||||
candidates []artifacts.ArtifactCandidate
|
||||
validators []contracts.Validator
|
||||
warnings []contracts.Warning
|
||||
err error
|
||||
@@ -386,9 +386,9 @@ func (extractor fakeExtractor) Extract(ctx context.Context, req contracts.Extrac
|
||||
if extractor.order != nil {
|
||||
*extractor.order = append(*extractor.order, extractor.key)
|
||||
}
|
||||
candidates := append([]artifacts.Candidate(nil), extractor.candidates...)
|
||||
candidates := append([]artifacts.ArtifactCandidate(nil), extractor.candidates...)
|
||||
for len(candidates) < extractor.candidateCount {
|
||||
candidates = append(candidates, artifacts.Candidate{Payload: []byte(`{"value":true}`)})
|
||||
candidates = append(candidates, artifacts.ArtifactCandidate{Payload: []byte(`{"value":true}`)})
|
||||
}
|
||||
return contracts.ExtractionResult{
|
||||
Candidates: candidates,
|
||||
@@ -399,7 +399,7 @@ func (extractor fakeExtractor) Extract(ctx context.Context, req contracts.Extrac
|
||||
type fakeValidator struct {
|
||||
name string
|
||||
resultName string
|
||||
decisions func([]artifacts.Candidate) []contracts.ValidationDecision
|
||||
decisions func([]artifacts.ArtifactCandidate) []contracts.ValidationDecision
|
||||
warnings []contracts.Warning
|
||||
err error
|
||||
}
|
||||
@@ -436,7 +436,7 @@ func factoryWithValidator(validator contracts.Validator) fakeFactory {
|
||||
}}
|
||||
}
|
||||
|
||||
func approveAll(candidates []artifacts.Candidate) []contracts.ValidationDecision {
|
||||
func approveAll(candidates []artifacts.ArtifactCandidate) []contracts.ValidationDecision {
|
||||
decisions := make([]contracts.ValidationDecision, 0, len(candidates))
|
||||
for _, candidate := range candidates {
|
||||
decisions = append(decisions, validationhelpers.Approved(candidate.Index))
|
||||
|
||||
Reference in New Issue
Block a user