Закройте модал ngx-bootstrap после юнит-тестов - PullRequest
0 голосов
/ 12 ноября 2018

Поскольку я включил стиль css в модульных тестах моего приложения Angular, каждый раз, когда компонент, отображающий модальное значение из ngx-bootstrap , он остается в браузере даже после модуля этого конкретного компонента. тесты завершены.

Это затрудняет визуальную проверку выполнения других тестов и результатов теста:

enter image description here

1 Ответ

0 голосов
/ 12 ноября 2018

Решение состоит в том, чтобы убедиться, что модалы скрыты после каждого теста, в котором выполняются фрагменты кода, которые могут отображать модалы:

import { BsModalService } from 'ngx-bootstrap';

// test definitions ...

afterEach(() => {
  const modalService: BsModalService = TestBed.get(BsModalService);
  modalService.hide(1);
});

этот метод использует hide (level: number) *Метод 1005 * из BsModalService .

Если у вас есть вложенные модалы, вам может потребоваться скрыть больше уровней (например, hide(2), hide(3) и т. Д.).

Мне показалось полезным иметь вспомогательную функцию, которую я могу использовать в своих тестах:

export function closeModalsAfterEach(upToLevel: number = 1) {
  afterEach(() => {
    const modalService: BsModalService = TestBed.get(BsModalService);

    for (let level = 1; level <= upToLevel; level++) {
      modalService.hide(level);
    }
  });
}
...