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 и никаких изменений

0 ответов

Другие вопросы по тегам