UNPKG

optimizely-oui

Version:

Optimizely's Component Library.

184 lines (178 loc) 7.51 kB
"use strict"; var _react = _interopRequireDefault(require("react")); var _index = _interopRequireDefault(require("../index")); var _enzyme = require("enzyme"); var _enzymeToJson = require("enzyme-to-json"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } describe("components/TextField", function () { it("should render a simple input with type text", function () { var output = (0, _enzyme.shallow)(_react["default"].createElement(_index["default"], { type: "text" })); expect((0, _enzymeToJson.shallowToJson)(output)).toMatchSnapshot(); }); it("should render with a simple label", function () { var output = (0, _enzyme.shallow)(_react["default"].createElement(_index["default"], { label: "simple label", type: "text" })); expect((0, _enzymeToJson.shallowToJson)(output)).toMatchSnapshot(); }); it("should render with a simple label and a note", function () { var output = (0, _enzyme.shallow)(_react["default"].createElement(_index["default"], { label: "Simple label", note: "simple note", type: "text" })); expect((0, _enzymeToJson.shallowToJson)(output)).toMatchSnapshot(); }); it("should render error style", function () { var output = (0, _enzyme.shallow)(_react["default"].createElement(_index["default"], { displayError: true, label: "Simple label", note: "simple note", type: "text" })); expect((0, _enzymeToJson.shallowToJson)(output)).toMatchSnapshot(); }); it("should render with a placeholder", function () { var output = (0, _enzyme.shallow)(_react["default"].createElement(_index["default"], { placeholder: "Simple placeholder", type: "text" })); expect((0, _enzymeToJson.shallowToJson)(output)).toMatchSnapshot(); }); it("should render search icon", function () { var output = (0, _enzyme.shallow)(_react["default"].createElement(_index["default"], { isFilter: true, type: "text" })); expect((0, _enzymeToJson.shallowToJson)(output)).toMatchSnapshot(); }); it("should render max and min limits", function () { var output = (0, _enzyme.shallow)(_react["default"].createElement(_index["default"], { min: 0, max: 100, type: "number" })); expect((0, _enzymeToJson.shallowToJson)(output)).toMatchSnapshot(); }); it("should call onChange fn() prop when a change happen on input", function () { var blurEvent = jest.fn(); var textField = (0, _enzyme.mount)(_react["default"].createElement(_index["default"], { type: "text", onBlur: blurEvent })); var input = textField.find(".oui-text-input"); input.simulate("blur"); expect(blurEvent).toHaveBeenCalled(); }); it("should call onBlur fn() prop when clicking out of input", function () { var changeEvent = jest.fn(); var textField = (0, _enzyme.mount)(_react["default"].createElement(_index["default"], { onChange: changeEvent, type: "text" })); var input = textField.find(".oui-text-input"); input.simulate("change"); expect(changeEvent).toHaveBeenCalled(); }); it("should call onKeyDown fn() prop when pressing keys on input", function () { var keydownEvent = jest.fn(); var textField = (0, _enzyme.mount)(_react["default"].createElement(_index["default"], { onKeyDown: keydownEvent, type: "text" })); var input = textField.find(".oui-text-input"); input.simulate("keyDown"); expect(keydownEvent).toHaveBeenCalled(); }); it("should call onFocus fn() prop when clicking on input", function () { var focusEvent = jest.fn(); var textField = (0, _enzyme.mount)(_react["default"].createElement(_index["default"], { onFocus: focusEvent, type: "text" })); var input = textField.find(".oui-text-input"); input.simulate("focus"); expect(focusEvent).toHaveBeenCalled(); }); it("should render HTML type=number for when prop.type is percent", function () { var output = (0, _enzyme.shallow)(_react["default"].createElement(_index["default"], { type: "percent" })); expect((0, _enzymeToJson.shallowToJson)(output)).toMatchSnapshot(); }); describe("custom min max percentages", function () { it("should allow minimum and maximum percentages when type is percent", function () { var output = (0, _enzyme.shallow)(_react["default"].createElement(_index["default"], { type: "percent", min: 70, max: 85 })); expect(output.find("input").props().min).toBe(70); expect(output.find("input").props().max).toBe(85); expect((0, _enzymeToJson.shallowToJson)(output)).toMatchSnapshot(); }); describe("invalid custom minimum", function () { it("should revert to the default if it is below 0", function () { var output = (0, _enzyme.shallow)(_react["default"].createElement(_index["default"], { type: "percent", min: -10 })); expect(output.find("input").props().min).toBe(0); expect(output.find("input").props().max).toBe(100); expect((0, _enzymeToJson.shallowToJson)(output)).toMatchSnapshot(); }); it("should revert to the default if it is above 100", function () { var output = (0, _enzyme.shallow)(_react["default"].createElement(_index["default"], { type: "percent", min: 101 })); expect(output.find("input").props().min).toBe(0); expect(output.find("input").props().max).toBe(100); expect((0, _enzymeToJson.shallowToJson)(output)).toMatchSnapshot(); }); it("should revert to the default if it is above the maximum", function () { var output = (0, _enzyme.shallow)(_react["default"].createElement(_index["default"], { type: "percent", min: 80, max: 79 })); expect(output.find("input").props().min).toBe(0); expect(output.find("input").props().max).toBe(100); expect((0, _enzymeToJson.shallowToJson)(output)).toMatchSnapshot(); }); }); describe("invalid custom maximum", function () { it("should revert to the default if it is below 0", function () { var output = (0, _enzyme.shallow)(_react["default"].createElement(_index["default"], { type: "percent", max: -10 })); expect(output.find("input").props().min).toBe(0); expect(output.find("input").props().max).toBe(100); expect((0, _enzymeToJson.shallowToJson)(output)).toMatchSnapshot(); }); it("should revert to the default if it is above 100", function () { var output = (0, _enzyme.shallow)(_react["default"].createElement(_index["default"], { type: "percent", max: 101 })); expect(output.find("input").props().min).toBe(0); expect(output.find("input").props().max).toBe(100); expect((0, _enzymeToJson.shallowToJson)(output)).toMatchSnapshot(); }); it("should revert to the default if it is below the minimum", function () { var output = (0, _enzyme.shallow)(_react["default"].createElement(_index["default"], { type: "percent", min: 80, max: 79 })); expect(output.find("input").props().min).toBe(0); expect(output.find("input").props().max).toBe(100); expect((0, _enzymeToJson.shallowToJson)(output)).toMatchSnapshot(); }); }); }); });