import {shallow} from "enzyme";
import React from "react";
import GeneralSettings from "./GeneralSettings";
function prepareFetchApi(response) {
const mockJsonPromise = Promise.resolve(response);
const mockFetchPromise = Promise.resolve({
json: () => mockJsonPromise,
});
return (jest.fn().mockImplementation(() => mockFetchPromise));
}
describe('', function () {
it('renders without crashing ', function () {
const wrapper = shallow();
wrapper.unmount();
});
it('test password hide/show switchbutton', function () {
const wrapper = shallow();
expect(wrapper.find("FormGroup").findWhere(it => it.props().controlId === "passwordfield")).toHaveLength(0);
wrapper.find("FormCheck").findWhere(it => it.props().label === "Enable Password support").simulate("change");
expect(wrapper.find("FormGroup").findWhere(it => it.props().controlId === "passwordfield")).toHaveLength(1);
});
it('test savesettings', done => {
const wrapper = shallow();
global.fetch = prepareFetchApi({success: true});
expect(global.fetch).toBeCalledTimes(0);
wrapper.find("[data-testid='mainformsettings']").simulate("submit");
expect(global.fetch).toBeCalledTimes(1);
process.nextTick(() => {
// expect callback to have loaded correct tag
expect(wrapper.state().selected).toBe("testname");
global.fetch.mockClear();
done();
});
});
});