AkurAI Build
Menu

popagent

public

Latest change 62f685314a2172a23c717ce4fe12027a662a406c - Make tests clean up persistent state by AkurAI Build

import { afterAll, describe, expect, test } from "bun:test";
import { RequestContext } from "@mastra/core/request-context";
import { longTermMemory } from "../long-term-memory";
import { remember } from "./remember";

const resourceId = `remember-tool-${crypto.randomUUID()}`;
afterAll(() => longTermMemory.storage.db.none(
  "DELETE FROM popagent_memories WHERE resource_id = $1",
  [resourceId],
));

describe("remember", () => {
  test("stores a fact in the current resource", async () => {
    const requestContext = new RequestContext();
    requestContext.set("popagent.resourceId", resourceId);
    requestContext.set("popagent.sessionId", "tool-session");

    expect(await remember.execute?.(
      { key: "accessibility.navigation", fact: "The user prefers keyboard navigation.", importance: 0.9 },
      { requestContext } as never,
    )).toEqual({ remembered: true });

    expect(await longTermMemory.recall({
      resourceId,
      query: "keyboard navigation preference",
    })).toContainEqual(expect.objectContaining({ kind: "fact" }));
  });
});