Files
tutti/packages/agent/gui/build/cssSafeSvgDataUrl.spec.ts
agent-radar 2ed3415fb7
Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:17:27 +08:00

24 lines
840 B
TypeScript

import { describe, expect, it } from "vitest";
import { cssSafeSvgDataUrl, svgDataUrlPrefix } from "./cssSafeSvgDataUrl";
describe("cssSafeSvgDataUrl", () => {
it("encodes SVG markup for a quoted CSS url", () => {
const svg = "<" + 'svg viewBox="0 0 24 24"><path fill="#000" /></svg>';
const url = cssSafeSvgDataUrl(svg);
expect(url).toMatch(/^data:image\/svg\+xml,%3Csvg/);
expect(url).not.toContain("<" + "svg");
expect(url).not.toContain('"');
expect(url).not.toContain("#");
expect(decodeURIComponent(url.slice(svgDataUrlPrefix.length))).toBe(svg);
const style = document.createElement("span").style;
style.maskImage = `url("${svgDataUrlPrefix}${svg}")`;
expect(style.maskImage).toBe("");
style.maskImage = `url("${url}")`;
expect(style.maskImage).toBe(`url("${url}")`);
});
});