mirror of
https://github.com/alkimake/paperclip.git
synced 2026-06-17 19:20:39 +09:00
35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
|
|
import { describe, expect, it } from "vitest";
|
||
|
|
import {
|
||
|
|
createIssueDetailLocationState,
|
||
|
|
createIssueDetailPath,
|
||
|
|
readIssueDetailBreadcrumb,
|
||
|
|
} from "./issueDetailBreadcrumb";
|
||
|
|
|
||
|
|
describe("issueDetailBreadcrumb", () => {
|
||
|
|
it("prefers the full breadcrumb from route state", () => {
|
||
|
|
const state = createIssueDetailLocationState("Inbox", "/inbox/mine", "inbox");
|
||
|
|
|
||
|
|
expect(readIssueDetailBreadcrumb(state, "?from=issues")).toEqual({
|
||
|
|
label: "Inbox",
|
||
|
|
href: "/inbox/mine",
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
it("falls back to the source query param when route state is unavailable", () => {
|
||
|
|
expect(readIssueDetailBreadcrumb(null, "?from=inbox")).toEqual({
|
||
|
|
label: "Inbox",
|
||
|
|
href: "/inbox",
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
it("adds the source query param when building an issue detail path", () => {
|
||
|
|
const state = createIssueDetailLocationState("Inbox", "/inbox/mine", "inbox");
|
||
|
|
|
||
|
|
expect(createIssueDetailPath("PAP-465", state)).toBe("/issues/PAP-465?from=inbox");
|
||
|
|
});
|
||
|
|
|
||
|
|
it("reuses the current source query param when state has been dropped", () => {
|
||
|
|
expect(createIssueDetailPath("PAP-465", null, "?from=issues")).toBe("/issues/PAP-465?from=issues");
|
||
|
|
});
|
||
|
|
});
|