diff --git a/src/shared/entry-metadata.test.ts b/src/shared/entry-metadata.test.ts index 64afb728a14..cf94453a62e 100644 --- a/src/shared/entry-metadata.test.ts +++ b/src/shared/entry-metadata.test.ts @@ -14,6 +14,15 @@ describe("shared/entry-metadata", () => { }); }); + 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({ @@ -29,5 +38,12 @@ describe("shared/entry-metadata", () => { frontmatter: { url: " " }, }), ).toEqual({}); + expect( + resolveEmojiAndHomepage({ + frontmatter: { url: " https://openclaw.ai/install " }, + }), + ).toEqual({ + homepage: "https://openclaw.ai/install", + }); }); }); diff --git a/src/shared/node-resolve.test.ts b/src/shared/node-resolve.test.ts index 4af0c5a8a9b..2020073a910 100644 --- a/src/shared/node-resolve.test.ts +++ b/src/shared/node-resolve.test.ts @@ -20,6 +20,18 @@ describe("shared/node-resolve", () => { ).toBe("mac-123"); }); + it("passes the original node list to the default picker", () => { + expect( + resolveNodeIdFromNodeList(nodes, "", { + allowDefault: true, + pickDefaultNode: (entries) => { + expect(entries).toBe(nodes); + return entries[1] ?? null; + }, + }), + ).toBe("pi-456"); + }); + it("still throws when default selection is disabled or returns null", () => { expect(() => resolveNodeIdFromNodeList(nodes, " ")).toThrow(/node required/); expect(() =>