Files
Termix/src/ui/tests/lib/view-link-resume.test.ts
T

26 lines
885 B
TypeScript
Raw Normal View History

2026-10-18 00:34:50 -05:00
import { describe, expect, it } from "vitest";
import { consumeViewLink, toViewLinkPath } from "@/lib/view-link-resume";
describe("toViewLinkPath", () => {
it.each([
["/?view=example-plugin.request&request=123", true],
["/termix/?view=example-plugin.request#top", true],
["//evil.com/?view=x", false],
["/\\evil.com/?view=x", false],
["https://evil.com/?view=x", false],
["/foo", false],
["/?view=", false],
["not a url", false],
])("%s -> %s", (value, accepted) => {
expect(toViewLinkPath(value)).toBe(accepted ? value : null);
});
});
describe("consumeViewLink", () => {
it("clears the stored link even when it is invalid", () => {
sessionStorage.setItem("termix-pending-view-link", "//evil.com/?view=x");
expect(consumeViewLink()).toBeNull();
expect(sessionStorage.getItem("termix-pending-view-link")).toBeNull();
});
});