Make Scriptorium validation deterministic
This commit is contained in:
@@ -574,6 +574,28 @@ func TestScriptoriumLoadAndValidate(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestScriptoriumDiagnosticsAreIndependentOfMapInsertionOrder(t *testing.T) {
|
||||
invalidArtifact := ScriptoriumArtifactConfig{Enabled: true}
|
||||
firstArtifacts := make(map[string]ScriptoriumArtifactConfig)
|
||||
firstArtifacts["beta"] = invalidArtifact
|
||||
firstArtifacts["alpha"] = invalidArtifact
|
||||
secondArtifacts := make(map[string]ScriptoriumArtifactConfig)
|
||||
secondArtifacts["alpha"] = invalidArtifact
|
||||
secondArtifacts["beta"] = invalidArtifact
|
||||
|
||||
firstErr := validateScriptorium(&ScriptoriumConfig{Binary: "scriptorium", Artifacts: firstArtifacts}, nil)
|
||||
secondErr := validateScriptorium(&ScriptoriumConfig{Binary: "scriptorium", Artifacts: secondArtifacts}, nil)
|
||||
if firstErr == nil || secondErr == nil {
|
||||
t.Fatalf("validateScriptorium() errors = %v / %v, want validation failures", firstErr, secondErr)
|
||||
}
|
||||
if firstErr.Error() != secondErr.Error() {
|
||||
t.Fatalf("equivalent maps produced different diagnostics:\nfirst: %v\nsecond: %v", firstErr, secondErr)
|
||||
}
|
||||
if !strings.Contains(firstErr.Error(), "pipeline.scriptorium.artifacts.") || !strings.Contains(firstErr.Error(), "prompt_id") {
|
||||
t.Fatalf("validation error = %v, want artifact field and semantic category", firstErr)
|
||||
}
|
||||
}
|
||||
|
||||
func TestScriptoriumLegacyTranscriptSourcesRejected(t *testing.T) {
|
||||
legacyTranscriptSources := []string{
|
||||
"narratio.transcript." + "merged",
|
||||
|
||||
Reference in New Issue
Block a user