Как мне обработать источник отклоненных событий (используя Rx Js debounceTime) с Cypress? - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь написать тесты для страницы со списком элементов и поисковым фильтром. Поисковый фильтр фильтрует список элементов на основе того, что вводится в текстовый ввод поискового фильтра. Он работает, испуская событие, когда значение ввода текста изменяется. Это событие обсуждается с использованием Rx Js debounceTime. Компонент поискового фильтра также имеет кнопку для очистки текста поиска.

  
  private searchStringChanged: Subject<string> = new Subject<string>();

  this.searchStringChanged.pipe(
      debounceTime(250),
  ).subscribe((searchString: string) => {
      this.filterChange.emit(searchString);
  });
  
  public handleClearInput() {
    this.searchString = '';
    this.searchStringChanged.next(this.searchString);
  }

Моя проблема заключается в том, что я не вижу результат очистки ввода текста в моих тестах Cypress. Я хотел бы очистить поисковый фильтр перед каждым тестом, поэтому я начинаю каждый тест с полного списка элементов:

  beforeEach(() => {
      cy.clock();
      searchFilter.getTextInput().clear();
      cy.clock().then(clock => {
          clock.tick(1000);
          clock.restore();
      });
  });

Я пробовал несколько вариантов приведенного выше кода безрезультатно.

Использование: Cypress 4.3.0, Rx Js: 6.5. 3

...