import '@testing-library/jest-dom'; import { act, render, waitFor } from '@testing-library/react'; import * as common from '../common'; import { HeadlessLoader } from '../headless-loader'; describe('[web-components] HeadlessLoader', () => { class Page { static get webComponent() { return document.querySelector(`headless-${WEB_COMPONENT_NAME}`); } } class WebComponent extends HTMLElement { provide = () => {}; } const baseName = 'mfe-component'; const baseUrl = 'http://unpkg.servicetitan.com/mfe'; const WEB_COMPONENT_NAME = `${baseName}-abc123`; const metadata = { name: WEB_COMPONENT_NAME, version: `0.0.0-test-abc123`, sharedDependencies: {}, dependencies: {}, entrypoints: { full: { css: ['full.css'], js: ['full.js'], }, light: { css: ['light.css'], js: ['light.js'], }, headless: { js: ['headless.js'], css: [], }, }, }; const props = { src: baseUrl, loadingFallback: null, }; let onloadRef: Function | null; let getJsonMockFns: Record; function initializeGetJsonMockFns() { getJsonMockFns = { [`${props.src}/dist/metadata.json`]: () => { return Promise.resolve({ data: metadata, headers: {} as Headers, url: props.src, }); }, }; } beforeAll(() => { // register web component in order to test the `provide` method window.customElements.define(`headless-${WEB_COMPONENT_NAME}`, WebComponent); /* * mock