Как протестировать изменения ViewChildren в Angular 2

#angular #unit-testing

#angular #модульное тестирование

Вопрос:

У меня есть сетка, заполненная людьми, у каждого человека есть набор действий, которые пользователь может выполнить с ними, например, обновить электронную почту. Эти действия сохраняются в поле выбора DevExtreme. Мне нужно написать простой тест, который проверяет, изменилось ли какое-либо из значений выпадающего списка.

Я сохраняю выпадающие списки в @ViewChildren следующим образом:

  @ViewChildren(DxSelectBoxComponent) actionSelectBoxes: QueryList<DxSelectBoxComponent>;
  

Использование функции, которая либо продолжает создание клиента, либо сбрасывает все экземпляры поля выбора следующим образом:

 public inviteClicked(id: number) {
this.confirmationDialog.show(this.newExamMessage, 'Create a client',
  () => this.createAClient(id),
  () => this.actionSelectBoxes.forEach((x) => x.instance.reset())
);
}
  

Может ли кто-нибудь дать какие-либо советы о том, как я могу написать модульный тест для него, не обязательно нужен код, но, возможно, шаги и что я мог бы попробовать? Я не могу использовать шпионов для этой задачи.

В настоящее время мой тест выглядит так, ему повезло с любым типом логики, любая помощь приветствуется:

 it('should reset selection if cancelled', fakeAsync(() => {
  setupComponent();
  mockConfirmationDialogService.extend({
    show: (_, __, onSuccess: Function, onCancel: Function) => onCancel()
  })
  component.inviteClicked(1);
  flush();
  expect(1).not.toBe(2);
}));