2019-09-06 09:22:21 +00:00
|
|
|
import React from 'react';
|
2019-11-22 13:20:24 +00:00
|
|
|
import { mount, shallow } from 'enzyme';
|
2019-09-06 09:22:21 +00:00
|
|
|
import AvatarEditor from '.';
|
|
|
|
|
2019-11-22 13:20:24 +00:00
|
|
|
const baseProps = {
|
|
|
|
visible: true,
|
|
|
|
headerLabel: 'test',
|
|
|
|
chooseFileLabel: 'test',
|
2019-12-27 12:54:59 +00:00
|
|
|
chooseMobileFileLabel: 'test',
|
2019-11-22 13:20:24 +00:00
|
|
|
saveButtonLabel: 'test',
|
|
|
|
maxSizeFileError: 'test',
|
|
|
|
image: '',
|
|
|
|
maxSize: 1,
|
|
|
|
accept: ['image/png', 'image/jpeg'],
|
|
|
|
unknownTypeError: 'test',
|
|
|
|
unknownError: 'test',
|
|
|
|
displayType: 'auto'
|
|
|
|
};
|
|
|
|
|
2019-09-06 09:22:21 +00:00
|
|
|
describe('<AvatarEditor />', () => {
|
|
|
|
it('renders without error', () => {
|
|
|
|
const wrapper = mount(
|
2019-11-22 13:20:24 +00:00
|
|
|
<AvatarEditor {...baseProps} />
|
2019-09-06 09:22:21 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
expect(wrapper).toExist();
|
|
|
|
});
|
2019-11-22 13:20:24 +00:00
|
|
|
|
|
|
|
it('accepts id', () => {
|
|
|
|
const wrapper = mount(
|
|
|
|
<AvatarEditor {...baseProps} id="testId" />
|
|
|
|
);
|
|
|
|
|
|
|
|
expect(wrapper.prop('id')).toEqual('testId');
|
|
|
|
});
|
|
|
|
|
|
|
|
it('accepts className', () => {
|
|
|
|
const wrapper = mount(
|
|
|
|
<AvatarEditor {...baseProps} className="test" />
|
|
|
|
);
|
|
|
|
|
|
|
|
expect(wrapper.prop('className')).toEqual('test');
|
|
|
|
});
|
|
|
|
|
|
|
|
it('accepts style', () => {
|
|
|
|
const wrapper = mount(
|
|
|
|
<AvatarEditor {...baseProps} style={{color: 'red'}} />
|
|
|
|
);
|
|
|
|
|
|
|
|
expect(wrapper.getDOMNode().style).toHaveProperty('color', 'red');
|
|
|
|
});
|
|
|
|
|
|
|
|
it('componentDidUpdate() props lifecycle test', () => {
|
|
|
|
const wrapper = shallow(<AvatarEditor {...baseProps} />);
|
|
|
|
const instance = wrapper.instance();
|
|
|
|
|
|
|
|
instance.componentDidUpdate({visible: false}, wrapper.state());
|
|
|
|
|
|
|
|
instance.componentDidUpdate({visible: true}, wrapper.state());
|
|
|
|
|
|
|
|
expect(wrapper.props()).toBe(wrapper.props());
|
|
|
|
});
|
|
|
|
|
|
|
|
it('causes function onClose()', () => {
|
|
|
|
const onClose = jest.fn();
|
|
|
|
const wrapper = mount(<AvatarEditor {...baseProps} onClose={onClose} />);
|
|
|
|
const instance = wrapper.instance();
|
|
|
|
|
|
|
|
instance.onClose();
|
|
|
|
|
|
|
|
expect(wrapper.state('visible')).toBe(false);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('causes function onSaveButtonClick()', () => {
|
|
|
|
const onSave = jest.fn();
|
|
|
|
const wrapper = mount(<AvatarEditor {...baseProps} onSave={onSave} />);
|
|
|
|
const instance = wrapper.instance();
|
|
|
|
|
|
|
|
wrapper.setState({ isContainsFile: false });
|
|
|
|
|
|
|
|
instance.onSaveButtonClick();
|
|
|
|
|
|
|
|
wrapper.setState({ isContainsFile: true });
|
|
|
|
|
|
|
|
instance.onSaveButtonClick();
|
|
|
|
|
|
|
|
expect(wrapper.state('visible')).toBe(true);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('causes function onImageChange()', () => {
|
|
|
|
const fileString = '';
|
|
|
|
const onImageChange= jest.fn();
|
|
|
|
const wrapper = mount(<AvatarEditor {...baseProps} onImageChange={onImageChange} />);
|
|
|
|
const instance = wrapper.instance();
|
|
|
|
|
|
|
|
instance.onImageChange(fileString);
|
|
|
|
|
|
|
|
expect(onImageChange).toHaveBeenCalled();
|
|
|
|
});
|
|
|
|
|
|
|
|
it('causes function onImageChange() no onImageChange', () => {
|
|
|
|
const fileString = '';
|
|
|
|
const wrapper = mount(<AvatarEditor {...baseProps} />);
|
|
|
|
const instance = wrapper.instance();
|
|
|
|
|
|
|
|
instance.onImageChange(fileString);
|
|
|
|
|
|
|
|
expect(wrapper.state('croppedImage')).toBe(fileString);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('causes function onDeleteImage()', () => {
|
|
|
|
const onDeleteImage= jest.fn();
|
|
|
|
const wrapper = mount(<AvatarEditor {...baseProps} onDeleteImage={onDeleteImage} />);
|
|
|
|
const instance = wrapper.instance();
|
|
|
|
|
|
|
|
instance.onDeleteImage();
|
|
|
|
|
|
|
|
expect(onDeleteImage).toHaveBeenCalled();
|
|
|
|
});
|
|
|
|
|
|
|
|
it('causes function onDeleteImage() no onDeleteImage', () => {
|
|
|
|
const wrapper = mount(<AvatarEditor {...baseProps} />);
|
|
|
|
const instance = wrapper.instance();
|
|
|
|
|
|
|
|
instance.onDeleteImage();
|
|
|
|
|
|
|
|
expect(wrapper.state('isContainsFile')).toBe(false);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('causes function onPositionChange()', () => {
|
|
|
|
const data = {test: 'test'};
|
|
|
|
const wrapper = mount(<AvatarEditor {...baseProps} />);
|
|
|
|
const instance = wrapper.instance();
|
|
|
|
|
|
|
|
instance.onPositionChange(data);
|
|
|
|
|
|
|
|
expect(wrapper.state('test')).toBe('test');
|
|
|
|
});
|
|
|
|
|
|
|
|
it('causes function onLoadFileError()', () => {
|
|
|
|
const onLoadFileError= jest.fn();
|
|
|
|
const wrapper = mount(<AvatarEditor {...baseProps} onLoadFileError={onLoadFileError} />);
|
|
|
|
const instance = wrapper.instance();
|
|
|
|
|
|
|
|
instance.onLoadFileError();
|
|
|
|
|
|
|
|
expect(onLoadFileError).toHaveBeenCalled();
|
|
|
|
});
|
|
|
|
|
|
|
|
it('causes function onLoadFileError() no onLoadFileError', () => {
|
|
|
|
const wrapper = mount(<AvatarEditor {...baseProps} />);
|
|
|
|
const instance = wrapper.instance();
|
|
|
|
|
|
|
|
instance.onLoadFileError();
|
|
|
|
|
|
|
|
expect(wrapper.state('isContainsFile')).toBe(false);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('causes function onLoadFile()', () => {
|
|
|
|
const file = 'test';
|
|
|
|
const onLoadFile= jest.fn();
|
|
|
|
const wrapper = mount(<AvatarEditor {...baseProps} onLoadFile={onLoadFile} />);
|
|
|
|
const instance = wrapper.instance();
|
|
|
|
|
|
|
|
instance.onLoadFile(file);
|
|
|
|
|
|
|
|
expect(onLoadFile).toHaveBeenCalled();
|
|
|
|
expect(wrapper.state('isContainsFile')).toBe(true);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('causes function onLoadFile() no onLoadFile', () => {
|
|
|
|
const wrapper = mount(<AvatarEditor {...baseProps} />);
|
|
|
|
const instance = wrapper.instance();
|
|
|
|
|
|
|
|
instance.onLoadFile();
|
|
|
|
|
|
|
|
expect(wrapper.state('isContainsFile')).toBe(true);
|
|
|
|
});
|
2019-09-06 09:22:21 +00:00
|
|
|
});
|