cpui-components
Version:
122 lines (98 loc) • 4.5 kB
JavaScript
var _react = require("react");
var _react2 = _interopRequireDefault(_react);
var _enzyme = require("enzyme");
var _jestMatchers = require("jest-matchers");
var _jestMatchers2 = _interopRequireDefault(_jestMatchers);
var _Alert = require("./Alert");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
describe("Alert Tests", function () {
var defaultProps = {
type: "success",
autoDismissDelay: 100,
isShowing: true,
minWidth: 10,
text: "Here is some text",
affirmativeText: "Yes",
onConfirmClick: jest.fn(),
negativeText: "No",
buttonFormat: "default",
copyLink: "testlink"
};
it("Expects alert bar to render with No button by default", function () {
var wrapper = (0, _enzyme.mount)(_react2.default.createElement(_Alert.Alert, defaultProps));
(0, _jestMatchers2.default)(wrapper.find("Button").length).toBe(0);
});
it("Expects alert bar to render with Yes and No button for yes_no type", function () {
var props = Object.assign({}, defaultProps, {
buttonFormat: "yes_no"
});
var wrapper = (0, _enzyme.mount)(_react2.default.createElement(_Alert.Alert, props));
var yesButton = wrapper.find("Button.alertOk");
var noButton = wrapper.find('Button[id="no"]');
(0, _jestMatchers2.default)(yesButton.text()).toBe("Yes");
(0, _jestMatchers2.default)(noButton.text()).toBe("No");
});
it("Expects alert bar to render with Ok button for ok type", function () {
var props = Object.assign({}, defaultProps, {
buttonFormat: "ok"
});
var wrapper = (0, _enzyme.mount)(_react2.default.createElement(_Alert.Alert, props));
var button = wrapper.find("Button");
(0, _jestMatchers2.default)(button.text()).toBe("Ok");
});
it("Expects isShowing to be false after clicking no button", function () {
var props = Object.assign({}, defaultProps, {
buttonFormat: "yes_no"
});
var wrapper = (0, _enzyme.mount)(_react2.default.createElement(_Alert.Alert, props));
var noButton = wrapper.find('Button[id="no"]');
(0, _jestMatchers2.default)(wrapper.state("isShowing")).toBe(true);
noButton.simulate("click");
(0, _jestMatchers2.default)(wrapper.state("isShowing")).toBe(false);
});
it("Expects isShowing to be false after clicking ok button and confirm function to be called", function () {
var props = Object.assign({}, defaultProps, {
buttonFormat: "ok"
});
var wrapper = (0, _enzyme.mount)(_react2.default.createElement(_Alert.Alert, props));
var button = wrapper.find("Button");
(0, _jestMatchers2.default)(wrapper.state("isShowing")).toBe(true);
button.simulate("click");
(0, _jestMatchers2.default)(wrapper.state("isShowing")).toBe(false);
(0, _jestMatchers2.default)(defaultProps.onConfirmClick.mock.calls.length).toBe(1);
});
it("Expects isShowing to be false after clicking no button and cancel function to be called", function () {
var props = Object.assign({}, defaultProps, {
buttonFormat: "yes_no",
onCancelClick: jest.fn()
});
var wrapper = (0, _enzyme.mount)(_react2.default.createElement(_Alert.Alert, props));
var noButton = wrapper.find('Button[id="no"]');
(0, _jestMatchers2.default)(wrapper.state("isShowing")).toBe(true);
noButton.simulate("click");
(0, _jestMatchers2.default)(wrapper.state("isShowing")).toBe(false);
(0, _jestMatchers2.default)(props.onCancelClick.mock.calls.length).toBe(1);
});
it("Expects isShowing to be updated after new props are received", function () {
var props = Object.assign({}, defaultProps, {
buttonFormat: "ok"
});
var wrapper = (0, _enzyme.mount)(_react2.default.createElement(_Alert.Alert, props));
props.isShowing = false;
(0, _jestMatchers2.default)(wrapper.state("isShowing")).toBe(true);
wrapper.instance().componentWillReceiveProps(props);
(0, _jestMatchers2.default)(wrapper.state("isShowing")).toBe(false);
});
it("Expects isShowing to be NOT updated after selecting copy link button", function () {
var props = Object.assign({}, defaultProps, {
buttonFormat: "copy_link"
});
var wrapper = (0, _enzyme.mount)(_react2.default.createElement(_Alert.Alert, props));
(0, _jestMatchers2.default)(wrapper.state("isShowing")).toBe(true);
(0, _jestMatchers2.default)(wrapper.find('Button[id="copy"]').length).toBe(1);
(0, _jestMatchers2.default)(defaultProps.onConfirmClick.mock.calls.length).toBe(1);
wrapper.instance().handleConfirmResponse();
(0, _jestMatchers2.default)(wrapper.state("isShowing")).toBe(true);
});
});
;