ngNeat/Spectator, проверьте, добавлен ли скрипт на страницу
Я новичок в тестировании, я добавил несколько тестов в свой проект, но у меня есть компонент, который должен загружать скрипт на страницу ОДИН РАЗ .
constructor(
private renderer: Renderer2,
@Inject(DOCUMENT) private document: Document,
private applicationRef: ApplicationRef,
private translateService: TranslateService
) {}
activateDebugger() {
if (this.injected) {
return;
}
const window = this.document.defaultView;
window._debug = [];
window._debug.push(['project', this.projectName]);
const script = this.renderer.createElement('script');
script.src = 'url//..//..//..';
this.renderer.appendChild(this.document.head, script);
this.injected = true;
this.applicationRef.tick();
}
Теперь я хотел бы добавить тест к этому компоненту, чтобы проверить, правильно ли скрипт добавлен на страницу. Я сейчас не издеваюсь над какой-либо службой, но она все равно должна работать:
describe('DebuggerComponent', () => {
let spectator: Spectator<DebuggerComponent>;
const createComponent = createComponentFactory({
component: DebuggerComponent,
providers: [Renderer2],
imports: [AngularSvgIconModule.forRoot(), HttpClientModule],
componentMocks: [TranslateService, ApplicationRef, Document],
});
beforeEach(() => (spectator = createComponent()));
test('Should load the script', async () => {
spectator.component.activateTranslationMode();
spectator.detectChanges();
const scripts = Array.from(document.body.querySelectorAll('script'));
const hasScript = scripts.find((s) => s.src === 'url//..//..//..');
expect(hasScript).not.toBeNull();
});
it('Should match snapshot', () => {
expect(spectator.fixture).toMatchSnapshot();
});
});
Проблема в том, что я не могу заставить этот тест работать, и я не нахожу никаких ресурсов, которые могли бы немного помочь
На данный момент вышеуказанный возврат
Невозможно войти после завершения тестов. Вы забыли дождаться чего-то асинхронного в своем тесте?
но я попытался добавить
async
и никаких изменений