UNPKG

cpui-components

Version:

122 lines (98 loc) 4.5 kB
"use strict"; 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); }); });