Add source bundle validation and inspection

This commit is contained in:
2026-05-31 02:07:30 +00:00
parent 3c2f36a6e5
commit 518944e601
25 changed files with 931 additions and 17 deletions

View File

@@ -41,8 +41,8 @@ func TestExecuteVersion(t *testing.T) {
}
}
func TestPlaceholderCommandsFailClearly(t *testing.T) {
tests := []string{"run", "validate", "inspect"}
func TestRunWithoutDryRunFailsClearly(t *testing.T) {
tests := []string{"run"}
for _, command := range tests {
t.Run(command, func(t *testing.T) {
@@ -63,6 +63,32 @@ func TestPlaceholderCommandsFailClearly(t *testing.T) {
}
}
func TestExecuteValidate(t *testing.T) {
var stdout, stderr bytes.Buffer
code := Execute(context.Background(), []string{"validate", filepath.Join("..", "bundle", "testdata", "valid_bundle")}, &stdout, &stderr)
if code != exitOK {
t.Fatalf("exit code = %d, want %d; stderr = %q", code, exitOK, stderr.String())
}
if got, want := stdout.String(), "Validated 1 bundle(s)\n"; got != want {
t.Fatalf("stdout = %q, want %q", got, want)
}
}
func TestExecuteInspect(t *testing.T) {
var stdout, stderr bytes.Buffer
code := Execute(context.Background(), []string{"inspect", filepath.Join("..", "bundle", "testdata", "valid_bundle")}, &stdout, &stderr)
if code != exitOK {
t.Fatalf("exit code = %d, want %d; stderr = %q", code, exitOK, stderr.String())
}
if !strings.Contains(stdout.String(), "id=weather.daily.brentwood.2026-05-30") {
t.Fatalf("stdout = %q, want bundle summary", stdout.String())
}
}
func TestExecuteRunDryRun(t *testing.T) {
configPath := filepath.Join(t.TempDir(), "config.yml")
err := os.WriteFile(configPath, []byte(`