File size: 1,762 Bytes
fc93158 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | import { describe, expect, it } from "vitest";
import { resolveEmojiAndHomepage } from "./entry-metadata.js";
describe("shared/entry-metadata", () => {
it("prefers metadata emoji and homepage when present", () => {
expect(
resolveEmojiAndHomepage({
metadata: { emoji: "π¦", homepage: " https://openclaw.ai " },
frontmatter: { emoji: "π", homepage: "https://example.com" },
}),
).toEqual({
emoji: "π¦",
homepage: "https://openclaw.ai",
});
});
it("keeps metadata precedence even when metadata values are blank", () => {
expect(
resolveEmojiAndHomepage({
metadata: { emoji: "", homepage: " " },
frontmatter: { emoji: "π", homepage: "https://example.com" },
}),
).toEqual({});
});
it("falls back through frontmatter homepage aliases and drops blanks", () => {
expect(
resolveEmojiAndHomepage({
frontmatter: { emoji: "π", website: " https://docs.openclaw.ai " },
}),
).toEqual({
emoji: "π",
homepage: "https://docs.openclaw.ai",
});
expect(
resolveEmojiAndHomepage({
metadata: { homepage: " " },
frontmatter: { url: " " },
}),
).toEqual({});
expect(
resolveEmojiAndHomepage({
frontmatter: { url: " https://openclaw.ai/install " },
}),
).toEqual({
homepage: "https://openclaw.ai/install",
});
});
it("does not fall back once frontmatter homepage aliases are present but blank", () => {
expect(
resolveEmojiAndHomepage({
frontmatter: {
homepage: " ",
website: "https://docs.openclaw.ai",
url: "https://openclaw.ai/install",
},
}),
).toEqual({});
});
});
|