feat(sidebar): group Purchase Order links under Purchasing #113

Merged
shad0w merged 2 commits from feat/sidebar-purchasing-section into master 2026-06-24 00:45:23 +00:00
Showing only changes of commit 2e8fd67805 - Show all commits

View file

@ -100,3 +100,37 @@ describe("Sidebar collapsible sections", () => {
expect(within(adminVendors).queryByText("Vendors")).toBeTruthy();
});
});
describe("Purchase Order links under Purchasing", () => {
it("renders the renamed PO links inside the Purchasing section (not top-level)", () => {
render(<Sidebar userRole="MANAGER" />);
// Collapsed by default → PO links are not in the DOM until Purchasing opens.
expect(screen.queryByRole("link", { name: /New Purchase Order/i })).not.toBeInTheDocument();
fireEvent.click(headerButton("Purchasing"));
expect(screen.getByRole("link", { name: /New Purchase Order/i })).toBeInTheDocument();
expect(screen.getByRole("link", { name: /Closed Purchase Orders/i })).toBeInTheDocument();
expect(screen.getByRole("link", { name: /Import Purchase Order/i })).toBeInTheDocument();
expect(screen.getByRole("link", { name: /Purchase Order History/i })).toBeInTheDocument();
});
it("auto-expands Purchasing when a PO route is active", () => {
mockPathname = "/po/new";
render(<Sidebar userRole="MANAGER" />);
expect(headerButton("Purchasing")).toHaveAttribute("aria-expanded", "true");
expect(screen.getByRole("link", { name: /New Purchase Order/i })).toBeInTheDocument();
});
it("drops the old PO labels", () => {
render(<Sidebar userRole="MANAGER" />);
fireEvent.click(headerButton("Purchasing"));
// Old labels were "New PO" / "Import PO" / "History".
expect(screen.queryByRole("link", { name: /^New PO$/i })).not.toBeInTheDocument();
expect(screen.queryByRole("link", { name: /^Import PO$/i })).not.toBeInTheDocument();
expect(screen.queryByRole("link", { name: /^History$/i })).not.toBeInTheDocument();
});
});