Сбрасывать Jest макет генератора идентификатора при каждом тесте - PullRequest
1 голос
/ 03 октября 2019

Я пытаюсь смоделировать функцию генерации идентификатора. Содержимое моего generateIdsSet.js файла:

import nanoid from 'nanoid/generate'

const generateId = (): string => {
  return nanoid('1234567890abcdefghijklmnopqrstuvwxyz', 5)
}

export const generateIdsSet = (setLength) => {
  const setIds = []

  for (let i = 0; i < setLength; i++) {
    setIds.push(generateId())
  }

  return setIds
}

В файле макета generateIdsSet.spec.js для generateIdsSet мне нужно создать массив предсказуемых идентификаторов. Я придумал эту реализацию:

import { generateIdsSet } from './generateIdsSet.js'

jest.mock('nanoid/generate', () => {
  let value = 0

  return () => String(++value)
})

describe('generateIdsSet', () => {
  it('One element', () => {
    expect(generateIdsSet(1)).toEqual(['1'])
  })

  it('Four elements', () => {
    expect(generateIdsSet(4)).toEqual(['1', '2', '3', '4'])
  })

  ....
})

Все в порядке, за исключением того, что на каждом тестовом счетчике не сбрасывается в 1 и продолжает увеличиваться для каждого вызова.

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

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