Как проверить лист действий на реакцию родного в шутку? - PullRequest
1 голос
/ 13 июня 2019

Я использую ActionSheetProvider из https://github.com/expo/react-native-action-sheet для моего собственного реактивного проекта.

Вот как я использую его в своем коде:

import { connectActionSheet } from '@expo/react-native-action-sheet';

export default
@connectActionSheet
class MyComponent extends React.Component {

...

<MyCustomIcon onPress={() => this.showMenu(item)}/>

...

showMenu = targetItem => {

  this.props.showActionSheetWithOptions(
  {
    options: ['cancel','rename','hide','delete'],
    cancelButtonIndex: 0,
    destructiveButtonIndex: 3,
  },
  index => {
     if (index === 3) { //delete item }
    }
   }
  );
};

Это то, что я сделал до сих пор, но я не знаю, как вызвать индекс === 3 в моем тесте:

const showActionSheetWithOptions = jest.fn();

const renderComponent = overrides => {
props = {
  showActionSheetWithOptions,
  ...overrides,
};

return shallow(<MyComponent.wrappedComponent {...props} />);
};


  it('should check if delete option is selected', () => {
  const wrapper = renderComponent();
  const instance = wrapper.instance();
  const myIcon = wrapper.find({ testID: 'my-icon' });

  const spyShowMenu = jest.spyOn(instance, 'showMenu');
  myIcon.props.onPress();
  expect(spyShowMenu).toHaveBeenCalled(); // this test passes
  // Now that the action sheet has been displayed, how to select delete option?
  });
});
...