Как очистить fireEvents после каждого теста в реагирующей на тестирование библиотеке? - PullRequest
0 голосов
/ 12 мая 2019

Я заметил, что если вы запускаете какой-либо fireEvent в тесте библиотеки реагирующего тестирования, он не очищается после теста afterEach(cleanup).

Например, следующий тест пройдет оба теста, , хотя они оба ожидают совершенно разных вещей, но идентичны во всех отношениях .

afterEach(cleanup);

describe("<ToggleIconButton>", () => {

  // TEST 1
  it("shows the <VisibileIcon> svg icon on click", () => {
    const { container } = render(<ToggleIconButton />);
    const button = container.querySelector("button");
    fireEvent.click(button);
    const svg = container.querySelector("svg");
    expect(svg.getAttribute("data-testid")).toBe("visibleIcon");
  });

  // TEST 2
  it("shows the <NotVisibleIcon> svg icon on double-click", () => {
    const { container } = render(<ToggleIconButton />);
    const button = container.querySelector("button");
    fireEvent.click(button);
    const svg = container.querySelector("svg");
    expect(svg.getAttribute("data-testid")).toBe("notVisibileIcon");
  });

});

Причина этого в том, что fireEvent.click(button) в TEST 1 переносится в TEST 2, поэтому, когда fireEvent.click(button) вызывается в TEST 2, он действует как двойной щелчок.

Как обеспечить очистку fireEvent после каждого теста?

...