UNPKG

@octopusdeploy/design-system-components

Version:
44 lines (43 loc) 2.89 kB
"use strict"; 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" }]]); }); });