From 12588e8b4eb29e33ce0a34089c3c81e29d6bab5c Mon Sep 17 00:00:00 2001 From: Snider Date: Thu, 26 Mar 2026 02:07:31 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20dogfood=20auto=5Fpr=5Ftest=20+=20status?= =?UTF-8?q?=5Flogic=5Ftest=20=E2=80=94=20eliminate=20os=20+=20encoding/jso?= =?UTF-8?q?n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Virgil --- pkg/agentic/auto_pr_test.go | 40 ++++++++++---------------------- pkg/agentic/status_logic_test.go | 15 ++++-------- 2 files changed, 16 insertions(+), 39 deletions(-) diff --git a/pkg/agentic/auto_pr_test.go b/pkg/agentic/auto_pr_test.go index a7d9f84..142d3b1 100644 --- a/pkg/agentic/auto_pr_test.go +++ b/pkg/agentic/auto_pr_test.go @@ -3,8 +3,6 @@ package agentic import ( - "encoding/json" - "os" "os/exec" "testing" "time" @@ -30,39 +28,27 @@ func TestAutoPR_AutoCreatePR_Bad(t *testing.T) { // No status file → early return (no panic) wsNoStatus := core.JoinPath(root, "ws-no-status") - require.NoError(t, os.MkdirAll(wsNoStatus, 0o755)) + fs.EnsureDir(wsNoStatus) assert.NotPanics(t, func() { s.autoCreatePR(wsNoStatus) }) // Empty branch → early return wsNoBranch := core.JoinPath(root, "ws-no-branch") - require.NoError(t, os.MkdirAll(wsNoBranch, 0o755)) - st := &WorkspaceStatus{ - Status: "completed", - Agent: "codex", - Repo: "go-io", - Branch: "", - } - data, err := json.MarshalIndent(st, "", " ") - require.NoError(t, err) - require.NoError(t, os.WriteFile(core.JoinPath(wsNoBranch, "status.json"), data, 0o644)) + fs.EnsureDir(wsNoBranch) + fs.Write(core.JoinPath(wsNoBranch, "status.json"), core.JSONMarshalString(&WorkspaceStatus{ + Status: "completed", Agent: "codex", Repo: "go-io", Branch: "", + })) assert.NotPanics(t, func() { s.autoCreatePR(wsNoBranch) }) // Empty repo → early return wsNoRepo := core.JoinPath(root, "ws-no-repo") - require.NoError(t, os.MkdirAll(wsNoRepo, 0o755)) - st2 := &WorkspaceStatus{ - Status: "completed", - Agent: "codex", - Repo: "", - Branch: "agent/fix-tests", - } - data2, err := json.MarshalIndent(st2, "", " ") - require.NoError(t, err) - require.NoError(t, os.WriteFile(core.JoinPath(wsNoRepo, "status.json"), data2, 0o644)) + fs.EnsureDir(wsNoRepo) + fs.Write(core.JoinPath(wsNoRepo, "status.json"), core.JSONMarshalString(&WorkspaceStatus{ + Status: "completed", Agent: "codex", Repo: "", Branch: "agent/fix-tests", + })) assert.NotPanics(t, func() { s.autoCreatePR(wsNoRepo) }) @@ -75,7 +61,7 @@ func TestAutoPR_AutoCreatePR_Ugly(t *testing.T) { // Set up a real git repo with no commits ahead of origin/dev wsDir := core.JoinPath(root, "ws-no-ahead") repoDir := core.JoinPath(wsDir, "repo") - require.NoError(t, os.MkdirAll(repoDir, 0o755)) + fs.EnsureDir(repoDir) // Init the repo cmd := exec.Command("git", "init", "-b", "dev", repoDir) @@ -85,7 +71,7 @@ func TestAutoPR_AutoCreatePR_Ugly(t *testing.T) { cmd = exec.Command("git", "-C", repoDir, "config", "user.email", "test@test.com") require.NoError(t, cmd.Run()) - require.NoError(t, os.WriteFile(core.JoinPath(repoDir, "README.md"), []byte("# test"), 0o644)) + fs.Write(core.JoinPath(repoDir, "README.md"), "# test") cmd = exec.Command("git", "-C", repoDir, "add", ".") require.NoError(t, cmd.Run()) cmd = exec.Command("git", "-C", repoDir, "commit", "-m", "init") @@ -99,9 +85,7 @@ func TestAutoPR_AutoCreatePR_Ugly(t *testing.T) { Branch: "agent/fix-tests", StartedAt: time.Now(), } - data, err := json.MarshalIndent(st, "", " ") - require.NoError(t, err) - require.NoError(t, os.WriteFile(core.JoinPath(wsDir, "status.json"), data, 0o644)) + fs.Write(core.JoinPath(wsDir, "status.json"), core.JSONMarshalString(st)) s := &PrepSubsystem{ ServiceRuntime: core.NewServiceRuntime(testCore, AgentOptions{}), diff --git a/pkg/agentic/status_logic_test.go b/pkg/agentic/status_logic_test.go index 87e05b4..ea00578 100644 --- a/pkg/agentic/status_logic_test.go +++ b/pkg/agentic/status_logic_test.go @@ -3,7 +3,6 @@ package agentic import ( - "encoding/json" "testing" "time" @@ -33,9 +32,7 @@ func TestStatus_ReadStatus_Good_AllFields(t *testing.T) { Runs: 2, PRURL: "", } - data, err := json.MarshalIndent(original, "", " ") - require.NoError(t, err) - require.True(t, fs.Write(core.JoinPath(dir, "status.json"), string(data)).OK) + require.True(t, fs.Write(core.JoinPath(dir, "status.json"), core.JSONMarshalString(original)).OK) st, err := ReadStatus(dir) require.NoError(t, err) @@ -140,11 +137,10 @@ func TestWorkspaceStatus_Good_JSONRoundTrip(t *testing.T) { PRURL: "https://forge.lthn.ai/core/agent/pulls/10", } - data, err := json.Marshal(original) - require.NoError(t, err) + jsonStr := core.JSONMarshalString(original) var decoded WorkspaceStatus - require.NoError(t, json.Unmarshal(data, &decoded)) + require.True(t, core.JSONUnmarshalString(jsonStr, &decoded).OK) assert.Equal(t, original.Status, decoded.Status) assert.Equal(t, original.Agent, decoded.Agent) @@ -162,11 +158,8 @@ func TestWorkspaceStatus_Good_JSONRoundTrip(t *testing.T) { func TestWorkspaceStatus_Good_OmitemptyFields(t *testing.T) { st := WorkspaceStatus{Status: "queued", Agent: "claude"} - data, err := json.Marshal(st) - require.NoError(t, err) - // Optional fields with omitempty must be absent when zero - jsonStr := string(data) + jsonStr := core.JSONMarshalString(st) assert.NotContains(t, jsonStr, `"org"`) assert.NotContains(t, jsonStr, `"branch"`) assert.NotContains(t, jsonStr, `"question"`)