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