Тестовый обратный звонок с энзимом - PullRequest
1 голос
/ 12 апреля 2019

В моем компоненте есть анимация React-Spring:

<SpinnerKf state={status} onRest={changeView && status === 'SUCCESS' ? () => changeView(VIEW_MODES.RECEIPT) : null}>
    ....
</SpinnerKf>

Где я передаю вызов функции внутри onRest prop - это реквизит из ключевого кадра React-Spring, который вызывается после завершения анимации.

Как я могу покрыть это тестом?Я открыт для любых уловок, просто нужно избегать жалоб в тестовом освещении.

1 Ответ

0 голосов
/ 12 апреля 2019

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

Вот упрощенный пример:

code.js

import * as React from 'react';

const SpinnerKf = () => null;

export const Component = () => (<SpinnerKf onRest={() => { return 'does something'; }}/>);

code.test.js

import * as React from 'react';
import { shallow } from 'enzyme';

import { Component } from './code';

test('callback', () => {
  const wrapper = shallow(<Component />);
  const result = wrapper.find('SpinnerKf').props().onRest();
  expect(result).toBe('does something');  // Success!
});

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

...