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({}); }); });