Передайте функцию в качестве аргумента в шутливом тесте - PullRequest
0 голосов
/ 17 сентября 2018

Я хочу проверить эту функцию

export const compare = selector => (a, b) => selector(a).localeCompare(selector(b))

В настоящее время функция сравнения вызывается как

const mapStateToProps = state => ({
        items: getPolicies(state)
        .map(d => d)
        .sort(compare(d => d.name)),
 })

Моя шутка выглядит так:

import each from 'jest-each'
import { compare } from './sorting'

describe('sorting functions test', () => {
  describe('compare tests', () => {
    const func = jest.fn(value => value.name)
    each([{ name: 'hello' }, { name: 'world' }], func)
    it('return -1', () => {
      expect(compare(func)).toBe(-1)
    })
  })
})

Я просто не вижу / не могу найти способ передать / смоделировать d => d.name для аргумента.

1 Ответ

0 голосов
/ 18 сентября 2018

Мне удалось решить

import { compare } from './sorting'

describe('sorting functions test', () => {
  describe('compare function tests', () => {
    it('returns -1', () => {
      const selector = jest.fn(value => value.name)
      const compareFunc = compare(selector)
      expect(compareFunc({ name: 'hello' }, { name: 'world' })).toBe(-1)
      expect(selector).toHaveBeenCalled()
      expect(selector).toHaveBeenCalledTimes(3)
    })
  })
})

Руководство, найденное здесь

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