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