12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- import React from 'react';
- import {mountWithIntl} from '../../helpers/intl-helpers.jsx';
- import configureStore from 'redux-mock-store';
- import {Provider} from 'react-redux';
- import SpriteSelectorItem from '../../../src/containers/sprite-selector-item';
- import DeleteButton from '../../../src/components/delete-button/delete-button';
- describe('SpriteSelectorItem Container', () => {
- const mockStore = configureStore();
- let className;
- let costumeURL;
- let name;
- let onClick;
- let dispatchSetHoveredSprite;
- let onDeleteButtonClick;
- let selected;
- let id;
- let store;
- // Wrap this in a function so it gets test specific states and can be reused.
- const getContainer = function () {
- return (
- <Provider store={store}>
- <SpriteSelectorItem
- className={className}
- costumeURL={costumeURL}
- dispatchSetHoveredSprite={dispatchSetHoveredSprite}
- id={id}
- name={name}
- selected={selected}
- onClick={onClick}
- onDeleteButtonClick={onDeleteButtonClick}
- />
- </Provider>
- );
- };
- beforeEach(() => {
- store = mockStore({scratchGui: {
- hoveredTarget: {receivedBlocks: false, sprite: null},
- assetDrag: {dragging: false}
- }});
- className = 'ponies';
- costumeURL = 'https://scratch.mit.edu/foo/bar/pony';
- id = 1337;
- name = 'Pony sprite';
- onClick = jest.fn();
- onDeleteButtonClick = jest.fn();
- dispatchSetHoveredSprite = jest.fn();
- selected = true;
- });
- test('should delete the sprite', () => {
- const wrapper = mountWithIntl(getContainer());
- wrapper.find(DeleteButton).simulate('click');
- expect(onDeleteButtonClick).toHaveBeenCalledWith(1337);
- });
- });
|