import { fireEvent, render, screen } from "@testing-library/react";
import { MemoryRouter } from "react-router-dom";
import { describe, expect, it } from "vitest";
import { MemoFilterProvider, parseFilterQuery, useMemoFilterContext } from "@/contexts/MemoFilterContext";
import { BUILTIN_TASKS_VIEW_ID } from "@/lib/memo-views";
const Harness = () => {
const { filters, setFilters, setMemoView, memoView } = useMemoFilterContext();
return (
);
};
describe("MemoFilterProvider", () => {
it("keeps encoded values containing colons intact", () => {
expect(parseFilterQuery("contentSearch:https://example.com:8080/path")).toEqual([
{ factor: "contentSearch", value: "https://example.com:8080/path" },
]);
});
it("keeps search filters when selecting a view", () => {
render(
,
);
fireEvent.click(screen.getByRole("button", { name: "Search plan" }));
fireEvent.click(screen.getByRole("button", { name: "Select Tasks" }));
expect(screen.getByTestId("filters")).toHaveTextContent('[{"factor":"contentSearch","value":"plan"}]');
expect(screen.getByTestId("memoView")).toHaveTextContent(BUILTIN_TASKS_VIEW_ID);
});
});