refactor: remove exact nested css duplicates
This commit is contained in:
@@ -1803,21 +1803,29 @@ test("heart breathing prepares once then contracts on each exhale", async ({ pag
|
||||
await expect(page.locator(".heart-breath-ripple span").first()).toHaveCSS("transition-duration", "4s");
|
||||
});
|
||||
|
||||
test("stylesheet layers do not repeat identical top-level rules", async ({ page }) => {
|
||||
test("stylesheet layers do not repeat identical rules in the same cascade context", async ({ page }) => {
|
||||
await mockApplication(page, session("admin", true));
|
||||
await page.goto("/index.html");
|
||||
|
||||
const duplicates = await page.evaluate(() => {
|
||||
const occurrences = new Map();
|
||||
const visitRules = (rules, href, context = []) => {
|
||||
for (const rule of Array.from(rules || [])) {
|
||||
if (typeof rule.selectorText === "string" && rule.style) {
|
||||
const key = `${context.join("\u0001")}\u0000${rule.selectorText}\u0000${rule.style.cssText}`;
|
||||
const rows = occurrences.get(key) || [];
|
||||
rows.push(href);
|
||||
occurrences.set(key, rows);
|
||||
continue;
|
||||
}
|
||||
if (!rule.cssRules) continue;
|
||||
const condition = rule.conditionText || rule.media?.mediaText || rule.name || "";
|
||||
visitRules(rule.cssRules, href, [...context, `${rule.type}:${condition}`]);
|
||||
}
|
||||
};
|
||||
for (const sheet of Array.from(document.styleSheets)) {
|
||||
const href = sheet.href ? new URL(sheet.href).pathname : "inline";
|
||||
for (const rule of Array.from(sheet.cssRules || [])) {
|
||||
if (typeof rule.selectorText !== "string" || !rule.style) continue;
|
||||
const key = `${rule.selectorText}\u0000${rule.style.cssText}`;
|
||||
const rows = occurrences.get(key) || [];
|
||||
rows.push(href);
|
||||
occurrences.set(key, rows);
|
||||
}
|
||||
visitRules(sheet.cssRules, href);
|
||||
}
|
||||
return Array.from(occurrences.entries())
|
||||
.filter(([, paths]) => new Set(paths).size > 1)
|
||||
|
||||
Reference in New Issue
Block a user