/** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.dev/license */ import {Component} from '@angular/core'; import {createApplication} from '@angular/platform-browser'; import {createCustomElement} from '../public_api'; describe('createCustomElement with env injector', () => { let testContainer: HTMLDivElement; beforeEach(() => { testContainer = document.createElement('div'); document.body.appendChild(testContainer); }); afterEach(() => { testContainer.remove(); (testContainer as any) = null; }); it('should use provided EnvironmentInjector to create a custom element', async () => { @Component({ template: `Hello, standalone element!`, }) class TestStandaloneCmp {} const appRef = await createApplication(); try { const NgElementCtor = createCustomElement(TestStandaloneCmp, {injector: appRef.injector}); customElements.define('test-standalone-cmp', NgElementCtor); const customEl = document.createElement('test-standalone-cmp'); testContainer.appendChild(customEl); expect(testContainer.innerText).toBe('Hello, standalone element!'); } finally { appRef.destroy(); } }); });