Files
OpenMediaCenter/src/pages/SettingsPage/GeneralSettings.test.js
T

118 lines
4.4 KiB
JavaScript
Raw Normal View History

2020-10-25 18:48:23 +00:00
import {shallow} from 'enzyme';
import React from 'react';
import GeneralSettings from './GeneralSettings';
2020-12-17 20:53:22 +00:00
import GlobalInfos from '../../utils/GlobalInfos';
describe('<GeneralSettings/>', function () {
it('renders without crashing ', function () {
const wrapper = shallow(<GeneralSettings/>);
wrapper.unmount();
});
2020-07-03 00:20:11 +02:00
it('test password hide/show switchbutton', function () {
const wrapper = shallow(<GeneralSettings/>);
2020-10-25 18:48:23 +00:00
expect(wrapper.find('[data-testid=\'passwordfield\']')).toHaveLength(0);
wrapper.find('FormCheck').findWhere(it => it.props().label === 'Enable Password support').simulate('change');
2020-07-03 00:20:11 +02:00
2020-10-25 18:48:23 +00:00
expect(wrapper.find('[data-testid=\'passwordfield\']')).toHaveLength(1);
2020-07-03 00:20:11 +02:00
});
2020-07-12 13:12:13 +02:00
it('test theme switchbutton', function () {
const wrapper = shallow(<GeneralSettings/>);
GlobalInfos.enableDarkTheme(false);
expect(GlobalInfos.isDarkTheme()).toBe(false);
2020-10-25 18:48:23 +00:00
wrapper.find('[data-testid=\'darktheme-switch\']').simulate('change');
expect(GlobalInfos.isDarkTheme()).toBe(true);
});
2020-07-12 13:12:13 +02:00
it('test savesettings', done => {
const wrapper = shallow(<GeneralSettings/>);
2020-08-05 17:55:51 +00:00
global.fetch = global.prepareFetchApi({success: true});
2020-07-12 13:12:13 +02:00
expect(global.fetch).toBeCalledTimes(0);
2020-07-13 00:44:16 +02:00
const fakeEvent = {preventDefault: () => console.log('preventDefault')};
2020-10-25 18:48:23 +00:00
wrapper.find('[data-testid=\'mainformsettings\']').simulate('submit', fakeEvent);
2020-07-12 13:12:13 +02:00
expect(global.fetch).toBeCalledTimes(1);
process.nextTick(() => {
2020-07-13 00:44:16 +02:00
// todo 2020-07-13: test popup of error success here
2020-07-12 13:12:13 +02:00
global.fetch.mockClear();
done();
});
});
2020-07-13 00:44:16 +02:00
it('test failing savesettings', done => {
const wrapper = shallow(<GeneralSettings/>);
2020-08-05 17:55:51 +00:00
global.fetch = global.prepareFetchApi({success: false});
2020-07-13 00:44:16 +02:00
expect(global.fetch).toBeCalledTimes(0);
const fakeEvent = {preventDefault: () => console.log('preventDefault')};
2020-10-25 18:48:23 +00:00
wrapper.find('[data-testid=\'mainformsettings\']').simulate('submit', fakeEvent);
2020-07-13 00:44:16 +02:00
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/>);
2020-10-25 18:48:23 +00:00
expect(wrapper.state().videopath).not.toBe('test');
2020-07-13 00:44:16 +02:00
2020-10-25 18:48:23 +00:00
const event = {target: {name: 'pollName', value: 'test'}};
wrapper.find('[data-testid=\'videpathform\']').find('FormControl').simulate('change', event);
expect(wrapper.state().videopath).toBe('test');
2020-07-13 00:44:16 +02:00
});
it('test tvshowpath change event', function () {
const wrapper = shallow(<GeneralSettings/>);
2020-10-25 18:48:23 +00:00
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');
2020-07-13 00:44:16 +02:00
});
it('test mediacentername-form change event', function () {
const wrapper = shallow(<GeneralSettings/>);
2020-10-25 18:48:23 +00:00
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');
2020-07-13 00:44:16 +02:00
});
it('test password-form change event', function () {
const wrapper = shallow(<GeneralSettings/>);
wrapper.setState({passwordsupport: true});
2020-10-25 18:48:23 +00:00
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-07-13 00:44:16 +02:00
});
it('test tmdbsupport change event', function () {
const wrapper = shallow(<GeneralSettings/>);
wrapper.setState({tmdbsupport: true});
expect(wrapper.state().tmdbsupport).toBe(true);
2020-10-25 18:48:23 +00:00
wrapper.find('[data-testid=\'tmdb-switch\']').simulate('change');
expect(wrapper.state().tmdbsupport).toBe(false);
});
it('test insertion of 4 infoheaderitems', function () {
const wrapper = shallow(<GeneralSettings/>);
2020-10-25 18:48:23 +00:00
expect(wrapper.find('InfoHeaderItem').length).toBe(4);
});
});