Tweak: move favicon population earlier (#7041)
Docker CI / Docker Build & Push (push) Has been cancelled
Lint / Linting Checks (push) Has been cancelled
Release Drafter / Update Release Draft (push) Has been cancelled
Release Drafter / Auto Label PR (push) Has been cancelled
Tests / vitest (1) (push) Has been cancelled
Tests / vitest (2) (push) Has been cancelled
Tests / vitest (3) (push) Has been cancelled
Tests / vitest (4) (push) Has been cancelled

This commit is contained in:
shamoon
2026-08-21 14:06:21 -07:00
committed by GitHub
parent 7d48b7ea78
commit f2dc80e39e
2 changed files with 19 additions and 5 deletions
+15 -2
View File
@@ -524,7 +524,7 @@ describe("pages/index Home behavior", () => {
state.widgetsData = [];
const { setTheme, setColor, setSettings } = await renderIndex({
initialSettings: { title: "Homepage", layout: {} },
initialSettings: { title: "Homepage", layout: {}, favicon: "/x.ico" },
settings: {
title: "Homepage",
layout: {},
@@ -533,7 +533,6 @@ describe("pages/index Home behavior", () => {
color: "emerald",
disableIndexing: true,
base: "/base/",
favicon: "/x.ico",
},
theme: "dark",
color: "slate",
@@ -551,6 +550,20 @@ describe("pages/index Home behavior", () => {
expect(document.querySelector('link[rel="icon"]')?.getAttribute("href")).toBe("/x.ico");
});
// Safari reads the head without running JS, so the favicon has to be there before the
// settings context is populated, and mask-icon must not be
it("renders a custom favicon before the settings context is populated", async () => {
await renderIndex({
initialSettings: { title: "Homepage", layout: {}, favicon: "/x.ico" },
settings: {},
});
expect(document.querySelector('link[rel="icon"]')?.getAttribute("href")).toBe("/x.ico");
expect(document.querySelector('link[rel="apple-touch-icon"]')?.getAttribute("href")).toBe("/x.ico");
expect(document.querySelector('link[rel="mask-icon"]')).toBeNull();
expect(document.querySelector('link[rel="shortcut icon"]')).toBeNull();
});
it("marks information widgets as right-aligned for known widget types", async () => {
await renderIndex({
initialSettings: { title: "Homepage", layout: {} },