(t *testing.T)
| 278 | } |
| 279 | |
| 280 | func TestMemoryWrapperExports(t *testing.T) { |
| 281 | t.Parallel() |
| 282 | |
| 283 | workspace := t.TempDir() |
| 284 | if _, err := workspacepkg.EnsureIdentity(context.Background(), workspace); err != nil { |
| 285 | t.Fatalf("EnsureIdentity(%q) error = %v", workspace, err) |
| 286 | } |
| 287 | req := contract.MemoryWriteRequest{ |
| 288 | Scope: "workspace", |
| 289 | Workspace: workspace, |
| 290 | Content: "---\nname: Project\ndescription: desc\ntype: project\n---\n\nbody", |
| 291 | } |
| 292 | scope, resolvedWorkspace, err := core.ResolveMemoryWriteScope(req) |
| 293 | if err != nil { |
| 294 | t.Fatalf("ResolveMemoryWriteScope() error = %v", err) |
| 295 | } |
| 296 | if scope != memcontract.ScopeWorkspace || resolvedWorkspace == "" { |
| 297 | t.Fatalf("scope=%q workspace=%q", scope, resolvedWorkspace) |
| 298 | } |
| 299 | if _, err := core.ParseOptionalMemoryScope("bogus"); err == nil { |
| 300 | t.Fatal("ParseOptionalMemoryScope(bogus) error = nil, want non-nil") |
| 301 | } |
| 302 | if _, err := core.ResolveMemoryWorkspace(""); err == nil { |
| 303 | t.Fatal("ResolveMemoryWorkspace(\"\") error = nil, want non-nil") |
| 304 | } |
| 305 | if scope, resolved, err := core.ResolveMemoryWriteScope(contract.MemoryWriteRequest{ |
| 306 | Content: "---\nname: Global\ndescription: desc\ntype: user\n---\n\nbody", |
| 307 | }); err != nil || scope != memcontract.ScopeGlobal || resolved != "" { |
| 308 | t.Fatalf("ResolveMemoryWriteScope(user default) = %q %q %v", scope, resolved, err) |
| 309 | } |
| 310 | |
| 311 | store := memory.NewStore(t.TempDir()) |
| 312 | if err := store.EnsureDirs(); err != nil { |
| 313 | t.Fatalf("EnsureDirs() error = %v", err) |
| 314 | } |
| 315 | if err := store.ForWorkspace(workspace). |
| 316 | Write(memcontract.ScopeWorkspace, "note.md", []byte("---\nname: note\ndescription: desc\ntype: project\n---\n\nbody")); err != nil { |
| 317 | t.Fatalf("Write() error = %v", err) |
| 318 | } |
| 319 | manager := testutil.StubSessionManager{ |
| 320 | ListAllFn: func(context.Context) ([]*session.Info, error) { |
| 321 | info := testutil.NewSessionInfo("sess-a") |
| 322 | info.Workspace = workspace |
| 323 | return []*session.Info{info}, nil |
| 324 | }, |
| 325 | } |
| 326 | fixture := newHandlerFixture(t, manager, testutil.StubObserver{}, testutil.StubWorkspaceService{}, store, nil) |
| 327 | if _, err := fixture.Handlers.ResolveMemoryLocation("note.md", "workspace", workspace); err != nil { |
| 328 | t.Fatalf("ResolveMemoryLocation() error = %v", err) |
| 329 | } |
| 330 | workspacesOut, err := fixture.Handlers.MemoryHealthWorkspaces(context.Background(), "") |
| 331 | if err != nil || len(workspacesOut) != 1 { |
| 332 | t.Fatalf("MemoryHealthWorkspaces() = %#v, %v", workspacesOut, err) |
| 333 | } |
| 334 | } |
| 335 | |
| 336 | func TestHealthHandlerReturnsRetentionAndPersistencePayload(t *testing.T) { |
| 337 | t.Parallel() |
nothing calls this directly
no test coverage detected