UNPKG

opds-web-client

Version:
107 lines (106 loc) 5.09 kB
"use strict"; jest.autoMockOff(); var React = require("react"); var enzyme_1 = require("enzyme"); var BasicAuthForm_1 = require("../BasicAuthForm"); describe("BasicAuthForm", function () { describe("rendering", function () { var wrapper; beforeEach(function () { wrapper = enzyme_1.shallow(React.createElement(BasicAuthForm_1.default, {hide: jest.genMockFunction(), saveCredentials: jest.genMockFunction(), title: "Intergalactic Spy Network", loginLabel: "code name", passwordLabel: "secret password", error: "you forgot the secret password! what kind of spy arre you?"})); }); it("shows title", function () { var title = wrapper.find("h3"); expect(title.text()).toBe("Intergalactic Spy Network Login"); }); it("shows username input", function () { var input = wrapper.find("input[type='text']"); expect(input.prop("placeholder")).toBe("code name"); }); it("shows password input", function () { var input = wrapper.find("input[type='password']"); expect(input.prop("placeholder")).toBe("secret password"); }); it("shows submit button", function () { var input = wrapper.find("input[type='submit']"); expect(input.prop("value")).toBe("Submit"); }); it("shows error", function () { var error = wrapper.find(".authFormError"); expect(error.text()).toBe("you forgot the secret password! what kind of spy arre you?"); }); }); describe("behavior", function () { var wrapper; var hide; var saveCredentials; var callback; beforeEach(function () { hide = jest.genMockFunction(); saveCredentials = jest.genMockFunction(); callback = jest.genMockFunction(); wrapper = enzyme_1.mount(React.createElement(BasicAuthForm_1.default, {hide: hide, saveCredentials: saveCredentials, callback: callback, title: "Intergalactic Spy Network", loginLabel: "code name", passwordLabel: "secret password", error: "you forgot the secret password! what kind of spy arre you?"})); }); it("validates", function () { // both fields blank var isValid = wrapper.instance().validate(); expect(isValid).toBe(false); expect(wrapper.state("error")).toBe("code name and secret password are required"); // password blank var username = wrapper.find("input[type='text']").get(0); username.value = "doubleohseven"; isValid = wrapper.instance().validate(); expect(isValid).toBe(false); expect(wrapper.state("error")).toBe("code name and secret password are required"); // username blank username.value = ""; var password = wrapper.find("input[type='password']").get(0); password.value = "thenameisbond"; isValid = wrapper.instance().validate(); expect(isValid).toBe(false); expect(wrapper.state("error")).toBe("code name and secret password are required"); // nothing blank username.value = "doubleohseven"; isValid = wrapper.instance().validate(); expect(isValid).toBe(true); expect(wrapper.state("error")).toBe(null); }); describe("submission", function () { var validate; var form; var credentials; var username; var password; beforeEach(function () { username = wrapper.find("input[type='text']").get(0); username.value = "doubleohseven"; password = wrapper.find("input[type='password']").get(0); password.value = "thenameisbond"; credentials = wrapper.instance().generateCredentials("doubleohseven", "thenameisbond"); validate = jest.genMockFunction(); validate.mockReturnValue(true); wrapper.instance().validate = validate; form = wrapper.find("form"); form.simulate("submit"); }); it("validates", function () { expect(validate.mock.calls.length).toBe(1); }); it("saves credentials", function () { expect(saveCredentials.mock.calls.length).toBe(1); expect(saveCredentials.mock.calls[0][0]).toBe(credentials); }); it("hides", function () { expect(hide.mock.calls.length).toBe(1); }); it("executes callback", function () { expect(callback.mock.calls.length).toBe(1); expect(callback.mock.calls[0][0]).toBe(credentials); }); }); it("updates error from props", function () { wrapper.setProps(Object.assign({}, wrapper.props(), { error: "new error" })); expect(wrapper.state("error")).toBe("new error"); }); }); });