2020-06-25 20:43:26 +00:00
|
|
|
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('<GeneralSettings/>', function () {
|
|
|
|
it('renders without crashing ', function () {
|
|
|
|
const wrapper = shallow(<GeneralSettings/>);
|
|
|
|
wrapper.unmount();
|
|
|
|
});
|
|
|
|
|
2020-07-02 22:20:11 +00:00
|
|
|
it('test password hide/show switchbutton', function () {
|
|
|
|
const wrapper = shallow(<GeneralSettings/>);
|
|
|
|
|
2020-07-12 22:44:16 +00:00
|
|
|
expect(wrapper.find("[data-testid='passwordfield']")).toHaveLength(0);
|
2020-07-02 22:20:11 +00:00
|
|
|
wrapper.find("FormCheck").findWhere(it => it.props().label === "Enable Password support").simulate("change");
|
|
|
|
|
2020-07-12 22:44:16 +00:00
|
|
|
expect(wrapper.find("[data-testid='passwordfield']")).toHaveLength(1);
|
2020-07-02 22:20:11 +00:00
|
|
|
});
|
2020-07-12 11:12:13 +00:00
|
|
|
|
|
|
|
it('test savesettings', done => {
|
|
|
|
const wrapper = shallow(<GeneralSettings/>);
|
|
|
|
|
|
|
|
global.fetch = prepareFetchApi({success: true});
|
|
|
|
|
|
|
|
expect(global.fetch).toBeCalledTimes(0);
|
2020-07-12 22:44:16 +00:00
|
|
|
const fakeEvent = {preventDefault: () => console.log('preventDefault')};
|
|
|
|
wrapper.find("[data-testid='mainformsettings']").simulate("submit", fakeEvent);
|
2020-07-12 11:12:13 +00:00
|
|
|
expect(global.fetch).toBeCalledTimes(1);
|
|
|
|
|
|
|
|
process.nextTick(() => {
|
2020-07-12 22:44:16 +00:00
|
|
|
// todo 2020-07-13: test popup of error success here
|
2020-07-12 11:12:13 +00:00
|
|
|
|
|
|
|
global.fetch.mockClear();
|
|
|
|
done();
|
|
|
|
});
|
|
|
|
});
|
2020-07-12 22:44:16 +00:00
|
|
|
|
|
|
|
it('test failing savesettings', done => {
|
|
|
|
const wrapper = shallow(<GeneralSettings/>);
|
|
|
|
|
|
|
|
global.fetch = prepareFetchApi({success: false});
|
|
|
|
|
|
|
|
expect(global.fetch).toBeCalledTimes(0);
|
|
|
|
const fakeEvent = {preventDefault: () => console.log('preventDefault')};
|
|
|
|
wrapper.find("[data-testid='mainformsettings']").simulate("submit", fakeEvent);
|
|
|
|
expect(global.fetch).toBeCalledTimes(1);
|
|
|
|
|
|
|
|
process.nextTick(() => {
|
|
|
|
// todo 2020-07-13: test error popup here!
|
|
|
|
|
|
|
|
global.fetch.mockClear();
|
|
|
|
done();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
it('test videopath change event', function () {
|
|
|
|
const wrapper = shallow(<GeneralSettings/>);
|
|
|
|
|
|
|
|
expect(wrapper.state().videopath).not.toBe("test");
|
|
|
|
|
|
|
|
const event = {target: {name: "pollName", value: "test"}};
|
|
|
|
wrapper.find("[data-testid='videpathform']").find("FormControl").simulate("change", event);
|
|
|
|
expect(wrapper.state().videopath).toBe("test");
|
|
|
|
});
|
|
|
|
|
|
|
|
it('test tvshowpath change event', function () {
|
|
|
|
const wrapper = shallow(<GeneralSettings/>);
|
|
|
|
|
|
|
|
const event = {target: {name: "pollName", value: "test"}};
|
|
|
|
expect(wrapper.state().tvshowpath).not.toBe("test");
|
|
|
|
wrapper.find("[data-testid='tvshowpath']").find("FormControl").simulate("change", event);
|
|
|
|
expect(wrapper.state().tvshowpath).toBe("test");
|
|
|
|
});
|
|
|
|
|
|
|
|
it('test mediacentername-form change event', function () {
|
|
|
|
const wrapper = shallow(<GeneralSettings/>);
|
|
|
|
|
|
|
|
const event = {target: {name: "pollName", value: "test"}};
|
|
|
|
expect(wrapper.state().mediacentername).not.toBe("test");
|
|
|
|
wrapper.find("[data-testid='nameform']").find("FormControl").simulate("change", event);
|
|
|
|
expect(wrapper.state().mediacentername).toBe("test");
|
|
|
|
});
|
|
|
|
|
|
|
|
it('test password-form change event', function () {
|
|
|
|
const wrapper = shallow(<GeneralSettings/>);
|
|
|
|
wrapper.setState({passwordsupport: true});
|
|
|
|
|
|
|
|
const event = {target: {name: "pollName", value: "test"}};
|
|
|
|
expect(wrapper.state().password).not.toBe("test");
|
|
|
|
wrapper.find("[data-testid='passwordfield']").find("FormControl").simulate("change", event);
|
|
|
|
expect(wrapper.state().password).toBe("test");
|
|
|
|
});
|
2020-06-25 20:43:26 +00:00
|
|
|
});
|