Нужно ли после теста восстанавливать удаленные оконные методы в Jest? - PullRequest
0 голосов
/ 04 августа 2020
import { withLocalStorage } from "../withLocalStorage"

describe("withLocalStorage", () => {
  beforeEach(() => {
    delete window.localStorage
  })

  const callback = jest.fn()

  it("runs callback function if window.localStorage exist", () => {
    window.localStorage = {
      setItem: jest.fn(),
      removeItem: jest.fn(),
    }

    withLocalStorage(callback)
    expect(callback).toHaveBeenCalled()
  })

  it("does not run callback function if window.localStorage does not exist", () => {
    window.localStorage = undefined

    withLocalStorage(callback)
    expect(callback).not.toHaveBeenCalled()
  })
})

У меня есть тестовый файл jest, который проверяет, вызывается ли функция обратного вызова в зависимости от того, существует ли window.localStorage. Я видел в сообщении в блоге, что эти строки добавляются для восстановления winddow.localStorage после запуска тестового файла.

const { localStorage } = window;

afterAll(() => {
    window.localStorage = localStorage;
  });

Требуется ли этот afterAll оператор? Я пробовал вести журнал консоли window.localStorage в других тестовых файлах, и window.localStorage возвращает мне оригинал, поэтому я не уверен, зачем нужен оператор afterAll?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...