test.web/core/loaders/stylesheet.fixture.ts

test.web/core/loaders/stylesheet.fixture.ts is a file in Codebase Testing. 21 lines of code and 5 definitions.

import { afterAll, beforeAll } from "vitest";

const STYLESHEET_SELECTOR = "link[rel=stylesheet]";
const LOAD_EVENT = "load";
const LOADED_ATTRIBUTE = "data-loaded";

let observer: MutationObserver | null = null;

const reportLoaded = function reportLoaded(): void {
    for (const link of document.head.querySelectorAll(STYLESHEET_SELECTOR)) {
        if (!link.hasAttribute(LOADED_ATTRIBUTE)) {
            link.setAttribute(LOADED_ATTRIBUTE, "");
            link.dispatchEvent(new Event(LOAD_EVENT));
        }
    }
};

beforeAll(() => {
    observer = new MutationObserver(reportLoaded);
    observer.observe(document.head, { childList: true });
});

afterAll(() => {
    observer?.disconnect();
    observer = null;
});