mirror of
https://github.com/browseros-ai/BrowserOS.git
synced 2026-05-20 04:21:23 +00:00
60 lines
1.6 KiB
Go
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)
|
|
}
|
|
}
|