Files
BrowserOS/packages/browseros/tools/patch/internal/resolve/resolve_test.go
Nikhil da1397900b refactor: rename internal BrowserOS CLIs (#832)
* refactor: rename internal BrowserOS CLIs

* fix: update dogfood binary gitignore
2026-04-27 16:18:45 -07:00

60 lines
1.6 KiB
Go

package resolve
import (
"testing"
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/patch"
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/workspace"
)
func TestStateRoundTrip(t *testing.T) {
workspacePath := t.TempDir()
state := &State{
Workspace: workspacePath,
RepoRoot: "/tmp/repo",
BaseCommit: "abc123",
Current: 1,
Operations: []Operation{{
ChromiumPath: "chrome/browser/foo.cc",
PatchRel: "chrome/browser/foo.cc",
Op: patch.OpModify,
}},
}
if err := Save(workspacePath, state); err != nil {
t.Fatalf("Save: %v", err)
}
loaded, err := Load(workspacePath)
if err != nil {
t.Fatalf("Load: %v", err)
}
if loaded.BaseCommit != state.BaseCommit || loaded.Current != state.Current {
t.Fatalf("state mismatch: %#v", loaded)
}
if err := Delete(workspacePath); err != nil {
t.Fatalf("Delete: %v", err)
}
if Exists(workspacePath) {
t.Fatalf("expected resolve state to be deleted")
}
}
func TestFindActivePrefersCurrentWorkspace(t *testing.T) {
root := t.TempDir()
workspaceA := workspace.Entry{Name: "a", Path: root + "/a"}
workspaceB := workspace.Entry{Name: "b", Path: root + "/b"}
for _, ws := range []workspace.Entry{workspaceA, workspaceB} {
if err := Save(ws.Path, &State{Workspace: ws.Path}); err != nil {
t.Fatalf("save %s: %v", ws.Name, err)
}
}
reg := &workspace.Registry{Workspaces: []workspace.Entry{workspaceA, workspaceB}}
active, err := FindActive(reg, workspaceB.Path)
if err != nil {
t.Fatalf("FindActive: %v", err)
}
if active.Name != workspaceB.Name {
t.Fatalf("expected %q, got %q", workspaceB.Name, active.Name)
}
}