simplify current local contract definitions

This commit is contained in:
2026-09-28 14:26:33 +08:00
parent 4473f2bebd
commit bd2e5ad2b1
13 changed files with 81 additions and 25 deletions
+22
View File
@@ -2,6 +2,7 @@ package contract
import (
"bytes"
"encoding/json"
"os"
"path/filepath"
"testing"
@@ -61,6 +62,27 @@ func TestProjectLocalConfigurationSchemasValidatePositivesAndRejectNegatives(t *
if err := ValidateLocalConfigRead(read("config-read-task-v0.1.json")); err != nil {
t.Fatalf("valid task config: %v", err)
}
var task map[string]any
if err := json.Unmarshal(read("config-read-task-v0.1.json"), &task); err != nil {
t.Fatal(err)
}
delete(task, "name")
delete(task, "group_id")
withoutDisplayFields, err := json.Marshal(task)
if err != nil {
t.Fatal(err)
}
if err := ValidateLocalConfigRead(withoutDisplayFields); err != nil {
t.Fatalf("task without optional display fields: %v", err)
}
task["name"] = 123
withInvalidDisplayField, err := json.Marshal(task)
if err != nil {
t.Fatal(err)
}
if err := ValidateLocalConfigRead(withInvalidDisplayField); err == nil {
t.Fatal("invalid optional task name accepted")
}
if err := ValidateLocalConfigRead(read("config-read-invalid-extra-property-v0.1.json")); err == nil {
t.Fatal("config-read schema accepted an additional property")
}