mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-11-14 13:27:13 +00:00
51 lines
1.6 KiB
TypeScript
51 lines
1.6 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { normalizeCompositionSrc } from "./useRenderClipContent";
|
|
|
|
describe("normalizeCompositionSrc", () => {
|
|
const origin = "http://localhost:5190";
|
|
const pid = "my-project";
|
|
|
|
it("strips absolute preview URL to relative path", () => {
|
|
const result = normalizeCompositionSrc(
|
|
"http://localhost:5190/api/projects/my-project/preview/compositions/intro.html",
|
|
pid,
|
|
origin,
|
|
);
|
|
expect(result).toBe("compositions/intro.html");
|
|
});
|
|
|
|
it("preserves already-relative paths", () => {
|
|
const result = normalizeCompositionSrc("compositions/intro.html", pid, origin);
|
|
expect(result).toBe("compositions/intro.html");
|
|
});
|
|
|
|
it("preserves absolute URLs from different origins", () => {
|
|
const result = normalizeCompositionSrc(
|
|
"https://cdn.example.com/compositions/intro.html",
|
|
pid,
|
|
origin,
|
|
);
|
|
expect(result).toBe("https://cdn.example.com/compositions/intro.html");
|
|
});
|
|
|
|
it("preserves absolute URLs for different projects", () => {
|
|
const result = normalizeCompositionSrc(
|
|
"http://localhost:5190/api/projects/other-project/preview/compositions/intro.html",
|
|
pid,
|
|
origin,
|
|
);
|
|
expect(result).toBe(
|
|
"http://localhost:5190/api/projects/other-project/preview/compositions/intro.html",
|
|
);
|
|
});
|
|
|
|
it("handles nested composition paths", () => {
|
|
const result = normalizeCompositionSrc(
|
|
"http://localhost:5190/api/projects/my-project/preview/compositions/scenes/hero.html",
|
|
pid,
|
|
origin,
|
|
);
|
|
expect(result).toBe("compositions/scenes/hero.html");
|
|
});
|
|
});
|