@octopusdeploy/design-system-components
Version:
The design systems component library.
44 lines (43 loc) • 2.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const vitest_1 = require("vitest");
const literalContent_1 = require("../literalContent");
const literalNodes_1 = require("../literalNodes");
(0, vitest_1.describe)("literalContent supported nodes", () => {
(0, vitest_1.it)("link builds an internal link node with a routing href", () => {
(0, vitest_1.expect)((0, literalNodes_1.link)("Docs", "/docs")).toEqual({ type: "link", text: "Docs", url: "/docs", newTab: false });
});
(0, vitest_1.it)("link can open in a new tab", () => {
(0, vitest_1.expect)((0, literalNodes_1.link)("Docs", "/docs", true)).toEqual({ type: "link", text: "Docs", url: "/docs", newTab: true });
});
(0, vitest_1.it)("externalLink builds an external link node with a string href", () => {
(0, vitest_1.expect)((0, literalNodes_1.externalLink)("Site", "https://octopus.com")).toEqual({ type: "externalLink", text: "Site", href: "https://octopus.com" });
});
(0, vitest_1.it)("code builds an inline-code node", () => {
(0, vitest_1.expect)((0, literalNodes_1.code)("useState")).toEqual({ type: "inline-code", text: "useState" });
});
(0, vitest_1.it)("bold builds a bold node", () => {
(0, vitest_1.expect)((0, literalNodes_1.bold)("important")).toEqual({ type: "bold", text: "important" });
});
});
(0, vitest_1.describe)("literalContent", () => {
(0, vitest_1.it)("returns a plain string segment", () => {
(0, vitest_1.expect)((0, literalContent_1.literalContent) `Hello world`).toEqual(["Hello world"]);
});
(0, vitest_1.it)("interpolates factory nodes between string segments", () => {
(0, vitest_1.expect)((0, literalContent_1.literalContent) `See ${(0, literalNodes_1.link)("Docs", "/docs")} now`).toEqual(["See ", { type: "link", text: "Docs", url: "/docs", newTab: false }, " now"]);
});
(0, vitest_1.it)("coerces interpolated numbers to strings", () => {
(0, vitest_1.expect)((0, literalContent_1.literalContent) `Count: ${5}`).toEqual(["Count: ", "5"]);
});
(0, vitest_1.it)("drops null, undefined, boolean and empty-string interpolations", () => {
(0, vitest_1.expect)((0, literalContent_1.literalContent) `a${null}${undefined}${false}${""}b`).toEqual(["a", "b"]);
});
(0, vitest_1.it)("omits empty leading and trailing string segments", () => {
(0, vitest_1.expect)((0, literalContent_1.literalContent) `${(0, literalNodes_1.code)("x")}`).toEqual([{ type: "inline-code", text: "x" }]);
});
(0, vitest_1.it)("preserves nested content arrays", () => {
const nested = (0, literalContent_1.literalContent) `inner ${(0, literalNodes_1.bold)("b")}`;
(0, vitest_1.expect)((0, literalContent_1.literalContent) `outer ${nested}`).toEqual(["outer ", ["inner ", { type: "bold", text: "b" }]]);
});
});