Feat v0.7.1 surface runner framework (#55)
All checks were successful
CI/CD / detect-changes (push) Successful in 3s
CI/CD / test-frontend (push) Successful in 6s
CI/CD / test-go-pg (push) Successful in 2m51s
CI/CD / test-sqlite (push) Successful in 3m2s
CI/CD / build-and-deploy (push) Successful in 1m26s

Co-authored-by: Jeffrey Smith <jasafpro@gmail.com>
Co-committed-by: Jeffrey Smith <jasafpro@gmail.com>
This commit was merged in pull request #55.
This commit is contained in:
2026-04-01 23:01:38 +00:00
committed by xcaliber
parent e916ed41ea
commit 829caa3b20
59 changed files with 2509 additions and 6525 deletions

View File

@@ -153,6 +153,40 @@ func TestValidateManifest_Dependencies(t *testing.T) {
}
}
func TestValidateManifest_ValidTestRunner(t *testing.T) {
m := map[string]any{
"id": "icd-test-runner",
"title": "ICD Test Runner",
"type": "test-runner",
}
info, err := ValidateManifest(m)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if info.Type != "test-runner" {
t.Errorf("expected type 'test-runner', got %q", info.Type)
}
}
func TestValidateManifest_TestRunnerWithRequires(t *testing.T) {
m := map[string]any{
"id": "chat-runner",
"title": "Chat Runner",
"type": "test-runner",
"requires": []any{"chat", "chat-core"},
}
info, err := ValidateManifest(m)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if len(info.Requires) != 2 {
t.Errorf("expected 2 requires, got %d", len(info.Requires))
}
if info.Requires[0] != "chat" || info.Requires[1] != "chat-core" {
t.Errorf("unexpected requires: %v", info.Requires)
}
}
func TestValidateManifest_WorkflowNoDef(t *testing.T) {
m := map[string]any{
"id": "my-wf",