fix(FN-2116): use sqlite-backed agent storage

This commit is contained in:
gsxdsm
2026-04-18 17:25:17 -07:00
parent 9421de548b
commit 5a831a67bc
20 changed files with 587 additions and 451 deletions

View File

@@ -1228,7 +1228,7 @@ describe("App view switching", () => {
localStorage.removeItem(taskViewStorageKey());
});
it("does not render agents view button when agentsView experimental feature is disabled", async () => {
it("renders agents view button when agentsView experimental feature is disabled", async () => {
// Override the default mock to exclude agentsView
vi.mocked(fetchSettings).mockResolvedValue({
...defaultSettings,
@@ -1241,7 +1241,7 @@ describe("App view switching", () => {
expect(screen.getByTitle("Board view")).toBeTruthy();
});
expect(screen.queryByTitle("Agents view")).toBeNull();
expect(screen.getByTitle("Agents view")).toBeTruthy();
// Cleanup: restore default mock
vi.mocked(fetchSettings).mockResolvedValue({ ...defaultSettings });

View File

@@ -56,11 +56,11 @@ describe("MobileNavBar", () => {
mockViewport("mobile");
});
it("renders six tab buttons (tasks + missions + chat + mailbox + skills + more) when showSkillsTab is true", () => {
it("renders seven tab buttons (tasks + agents + missions + chat + mailbox + skills + more) when showSkillsTab is true", () => {
render(<MobileNavBar {...createDefaultProps()} showSkillsTab={true} />);
expect(screen.getByTestId("mobile-nav-tab-tasks")).toBeDefined();
expect(screen.queryByTestId("mobile-nav-tab-agents")).toBeNull();
expect(screen.getByTestId("mobile-nav-tab-agents")).toBeDefined();
expect(screen.getByTestId("mobile-nav-tab-missions")).toBeDefined();
expect(screen.getByTestId("mobile-nav-tab-chat")).toBeDefined();
expect(screen.getByTestId("mobile-nav-tab-mailbox")).toBeDefined();
@@ -96,6 +96,18 @@ describe("MobileNavBar", () => {
expect(props.onChangeView).toHaveBeenCalledWith("mailbox");
});
it("agents tab calls onChangeView with 'agents'", () => {
const props = createDefaultProps();
render(<MobileNavBar {...props} view="board" />);
fireEvent.click(screen.getByTestId("mobile-nav-tab-agents"));
expect(props.onChangeView).toHaveBeenCalledWith("agents");
});
it("agents tab is active when view is 'agents'", () => {
render(<MobileNavBar {...createDefaultProps()} view="agents" />);
expect(screen.getByTestId("mobile-nav-tab-agents").className).toContain("mobile-nav-tab--active");
});
it("shows mailbox unread badge when mailboxUnreadCount > 0", () => {
render(<MobileNavBar {...createDefaultProps()} mailboxUnreadCount={5} />);
const badge = screen.getByTestId("mobile-nav-tab-mailbox").querySelector(".mobile-nav-tab-badge");