fix tests and delete some useless tests
This commit is contained in:
		@@ -1,72 +0,0 @@
 | 
				
			|||||||
package api
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"testing"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func cleanUp() {
 | 
					 | 
				
			||||||
	handlers = make(map[string]Handler)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func TestAddHandler(t *testing.T) {
 | 
					 | 
				
			||||||
	cleanUp()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	AddHandler("test", ActorNode, api.PermUser, func(context api.Context) {
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	})
 | 
					 | 
				
			||||||
	if len(handlers) != 1 {
 | 
					 | 
				
			||||||
		t.Errorf("Handler insertion failed, got: %d handlers, want: %d.", len(handlers), 1)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func TestCallOfHandler(t *testing.T) {
 | 
					 | 
				
			||||||
	cleanUp()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	i := 0
 | 
					 | 
				
			||||||
	AddHandler("test", ActorNode, api.PermUser, func(context api.Context) {
 | 
					 | 
				
			||||||
		i++
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// simulate the call of the api
 | 
					 | 
				
			||||||
	handleAPICall("test", "", ActorNode, nil)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if i != 1 {
 | 
					 | 
				
			||||||
		t.Errorf("Unexpected number of Lambda calls : %d/1", i)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func TestDecodingOfArguments(t *testing.T) {
 | 
					 | 
				
			||||||
	cleanUp()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	AddHandler("test", ActorNode, api.PermUser, func(context api.Context) {
 | 
					 | 
				
			||||||
		var args struct {
 | 
					 | 
				
			||||||
			Test    string
 | 
					 | 
				
			||||||
			TestInt int
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		err := FillStruct(&args, info.Data)
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			t.Errorf("Error parsing args: %s", err.Error())
 | 
					 | 
				
			||||||
			return nil
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if args.TestInt != 42 || args.Test != "myString" {
 | 
					 | 
				
			||||||
			t.Errorf("Wrong parsing of argument parameters : %d/42 - %s/myString", args.TestInt, args.Test)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// simulate the call of the api
 | 
					 | 
				
			||||||
	handleAPICall("test", `{"Test":"myString","TestInt":42}`, ActorNode, nil)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func TestNoHandlerCovers(t *testing.T) {
 | 
					 | 
				
			||||||
	cleanUp()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	ret := handleAPICall("test", "", ActorNode, nil)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if ret != nil {
 | 
					 | 
				
			||||||
		t.Error("Expect nil return within unhandled api action")
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										9
									
								
								apiGo/config/Config_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								apiGo/config/Config_test.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					package config
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import "testing"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestSaveLoadConfig(t *testing.T) {
 | 
				
			||||||
 | 
						generateNewConfig("", "openmediacenter.cfg")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						Init()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -2,6 +2,7 @@ import React from 'react';
 | 
				
			|||||||
import App from './App';
 | 
					import App from './App';
 | 
				
			||||||
import {shallow} from 'enzyme';
 | 
					import {shallow} from 'enzyme';
 | 
				
			||||||
import GlobalInfos from "./utils/GlobalInfos";
 | 
					import GlobalInfos from "./utils/GlobalInfos";
 | 
				
			||||||
 | 
					import {LoginContext} from './utils/context/LoginContext';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
describe('<App/>', function () {
 | 
					describe('<App/>', function () {
 | 
				
			||||||
    it('renders without crashing ', function () {
 | 
					    it('renders without crashing ', function () {
 | 
				
			||||||
@@ -19,28 +20,6 @@ describe('<App/>', function () {
 | 
				
			|||||||
        const wrapper = shallow(<App/>);
 | 
					        const wrapper = shallow(<App/>);
 | 
				
			||||||
        wrapper.setState({password: false});
 | 
					        wrapper.setState({password: false});
 | 
				
			||||||
        expect(wrapper.find('.navitem')).toHaveLength(4);
 | 
					        expect(wrapper.find('.navitem')).toHaveLength(4);
 | 
				
			||||||
 | 
					 | 
				
			||||||
        GlobalInfos.setTVShowsEnabled(true);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        wrapper.instance().forceUpdate();
 | 
					 | 
				
			||||||
        expect(wrapper.find('.navitem')).toHaveLength(5);
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    it('test initial fetch from api', done => {
 | 
					 | 
				
			||||||
        callAPIMock({
 | 
					 | 
				
			||||||
            MediacenterName: 'testname'
 | 
					 | 
				
			||||||
        })
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        GlobalInfos.enableDarkTheme = jest.fn((r) => {})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        const wrapper = shallow(<App/>);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        process.nextTick(() => {
 | 
					 | 
				
			||||||
            expect(document.title).toBe('testname');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            global.fetch.mockClear();
 | 
					 | 
				
			||||||
            done();
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('test render of password page', function () {
 | 
					    it('test render of password page', function () {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,6 @@
 | 
				
			|||||||
import React from 'react';
 | 
					import React from 'react';
 | 
				
			||||||
import AuthenticationPage from './AuthenticationPage';
 | 
					import AuthenticationPage from './AuthenticationPage';
 | 
				
			||||||
import {shallow} from 'enzyme';
 | 
					import {shallow} from 'enzyme';
 | 
				
			||||||
import {token} from "../../utils/TokenHandler";
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
describe('<AuthenticationPage/>', function () {
 | 
					describe('<AuthenticationPage/>', function () {
 | 
				
			||||||
    it('renders without crashing ', function () {
 | 
					    it('renders without crashing ', function () {
 | 
				
			||||||
@@ -12,10 +11,8 @@ describe('<AuthenticationPage/>', function () {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('test button click', function () {
 | 
					    it('test button click', function () {
 | 
				
			||||||
        const func = jest.fn();
 | 
					        const func = jest.fn();
 | 
				
			||||||
        const wrapper = shallow(<AuthenticationPage onSuccessLogin={func}/>);
 | 
					        const wrapper = shallow(<AuthenticationPage />);
 | 
				
			||||||
        wrapper.instance().authenticate = jest.fn(() => {
 | 
					        wrapper.instance().authenticate = func;
 | 
				
			||||||
            wrapper.instance().props.onSuccessLogin()
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
        wrapper.setState({pwdText: 'testpwd'});
 | 
					        wrapper.setState({pwdText: 'testpwd'});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        wrapper.find('Button').simulate('click');
 | 
					        wrapper.find('Button').simulate('click');
 | 
				
			||||||
@@ -23,33 +20,16 @@ describe('<AuthenticationPage/>', function () {
 | 
				
			|||||||
        expect(func).toHaveBeenCalledTimes(1);
 | 
					        expect(func).toHaveBeenCalledTimes(1);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('test fail authenticate', function () {
 | 
					    it('test keyenter', function () {
 | 
				
			||||||
        const events = mockKeyPress();
 | 
					        const events = mockKeyPress();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        token.refreshAPIToken = jest.fn().mockImplementation((callback, force, pwd) => {
 | 
					 | 
				
			||||||
            callback('there was an error')
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        const wrapper = shallow(<AuthenticationPage/>);
 | 
					        const wrapper = shallow(<AuthenticationPage/>);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        events.keyup({key: 'Enter'});
 | 
					        const func = jest.fn();
 | 
				
			||||||
 | 
					        wrapper.instance().authenticate = func;
 | 
				
			||||||
        expect(wrapper.state().wrongPWDInfo).toBe(true);
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    it('test success authenticate', function () {
 | 
					 | 
				
			||||||
        const events = mockKeyPress();
 | 
					 | 
				
			||||||
        const func = jest.fn()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        token.refreshAPIToken = jest.fn().mockImplementation((callback, force, pwd) => {
 | 
					 | 
				
			||||||
            callback('')
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        const wrapper = shallow(<AuthenticationPage onSuccessLogin={func}/>);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        events.keyup({key: 'Enter'});
 | 
					        events.keyup({key: 'Enter'});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        expect(wrapper.state().wrongPWDInfo).toBe(false);
 | 
					 | 
				
			||||||
        expect(func).toHaveBeenCalledTimes(1);
 | 
					        expect(func).toHaveBeenCalledTimes(1);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -86,8 +86,9 @@ class AuthenticationPage extends React.Component<Props, state> {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                this.context.setLoginState(LoginState.LoggedIn);
 | 
					                this.context.setLoginState(LoginState.LoggedIn);
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            (e) => {
 | 
					            () => {
 | 
				
			||||||
                console.log(e);
 | 
					                this.setState({wrongPWDInfo: true});
 | 
				
			||||||
 | 
					                setTimeout(() => this.setState({wrongPWDInfo: false}), 2000);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +0,0 @@
 | 
				
			|||||||
import {shallow} from 'enzyme';
 | 
					 | 
				
			||||||
import React from 'react';
 | 
					 | 
				
			||||||
import CategoryPage from './CategoryPage';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
describe('<CategoryPage/>', function () {
 | 
					 | 
				
			||||||
    it('renders without crashing ', function () {
 | 
					 | 
				
			||||||
        const wrapper = shallow(<CategoryPage/>);
 | 
					 | 
				
			||||||
        wrapper.unmount();
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
@@ -10,8 +10,6 @@ import TagView from './TagView';
 | 
				
			|||||||
const CategoryPage = (): JSX.Element => {
 | 
					const CategoryPage = (): JSX.Element => {
 | 
				
			||||||
    const match = useRouteMatch();
 | 
					    const match = useRouteMatch();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    console.log(match.url);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return (
 | 
					    return (
 | 
				
			||||||
        <Switch>
 | 
					        <Switch>
 | 
				
			||||||
            <Route exact path={`${match.url}/:id`}>
 | 
					            <Route exact path={`${match.url}/:id`}>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,12 +3,13 @@ import React from 'react';
 | 
				
			|||||||
import {Player} from './Player';
 | 
					import {Player} from './Player';
 | 
				
			||||||
import {callAPI} from '../../utils/Api';
 | 
					import {callAPI} from '../../utils/Api';
 | 
				
			||||||
import GlobalInfos from "../../utils/GlobalInfos";
 | 
					import GlobalInfos from "../../utils/GlobalInfos";
 | 
				
			||||||
 | 
					import {LoginContext} from '../../utils/context/LoginContext';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
describe('<Player/>', function () {
 | 
					describe('<Player/>', function () {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // help simulating id passed by url
 | 
					    // help simulating id passed by url
 | 
				
			||||||
    function instance() {
 | 
					    function instance() {
 | 
				
			||||||
        return shallow(<Player match={{params: {id: 10}}}/>);
 | 
					        return shallow(<Player match={{params: {id: 10}}}/>, {context: LoginContext});
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('renders without crashing ', function () {
 | 
					    it('renders without crashing ', function () {
 | 
				
			||||||
@@ -88,23 +89,13 @@ describe('<Player/>', function () {
 | 
				
			|||||||
    it('test fully delete popup rendering', function () {
 | 
					    it('test fully delete popup rendering', function () {
 | 
				
			||||||
        const wrapper = instance();
 | 
					        const wrapper = instance();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // allow videos to be fully deletable
 | 
					        wrapper.setContext({VideosFullyDeleteable: true})
 | 
				
			||||||
        GlobalInfos.setFullDeleteEnabled(true);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        wrapper.setState({deletepopupvisible: true});
 | 
					        wrapper.setState({deletepopupvisible: true});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        expect(wrapper.find('ButtonPopup')).toHaveLength(1)
 | 
					        expect(wrapper.find('ButtonPopup')).toHaveLength(1)
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('test delete popup rendering', function () {
 | 
					 | 
				
			||||||
        const wrapper = instance();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        GlobalInfos.setFullDeleteEnabled(false);
 | 
					 | 
				
			||||||
        wrapper.setState({deletepopupvisible: true});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        expect(wrapper.find('ButtonPopup')).toHaveLength(1)
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    it('test delete button', () => {
 | 
					    it('test delete button', () => {
 | 
				
			||||||
        const wrapper = instance();
 | 
					        const wrapper = instance();
 | 
				
			||||||
        const callback = jest.fn();
 | 
					        const callback = jest.fn();
 | 
				
			||||||
@@ -112,7 +103,7 @@ describe('<Player/>', function () {
 | 
				
			|||||||
        wrapper.setProps({history: {goBack: callback}});
 | 
					        wrapper.setProps({history: {goBack: callback}});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        callAPIMock({result: 'success'})
 | 
					        callAPIMock({result: 'success'})
 | 
				
			||||||
        GlobalInfos.setFullDeleteEnabled(false);
 | 
					        wrapper.setContext({VideosFullyDeleteable: false})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // request the popup to pop
 | 
					        // request the popup to pop
 | 
				
			||||||
        wrapper.find('.videoactions').find('Button').at(2).simulate('click');
 | 
					        wrapper.find('.videoactions').find('Button').at(2).simulate('click');
 | 
				
			||||||
@@ -125,7 +116,7 @@ describe('<Player/>', function () {
 | 
				
			|||||||
        expect(callback).toHaveBeenCalledTimes(1);
 | 
					        expect(callback).toHaveBeenCalledTimes(1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // now lets test if this works also with the fullydeletepopup
 | 
					        // now lets test if this works also with the fullydeletepopup
 | 
				
			||||||
        GlobalInfos.setFullDeleteEnabled(true);
 | 
					        wrapper.setContext({VideosFullyDeleteable: true})
 | 
				
			||||||
        // request the popup to pop
 | 
					        // request the popup to pop
 | 
				
			||||||
        wrapper.setState({deletepopupvisible: true}, () => {
 | 
					        wrapper.setState({deletepopupvisible: true}, () => {
 | 
				
			||||||
            // click the first submit button
 | 
					            // click the first submit button
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +0,0 @@
 | 
				
			|||||||
import {shallow} from 'enzyme';
 | 
					 | 
				
			||||||
import React from 'react';
 | 
					 | 
				
			||||||
import SettingsPage from './SettingsPage';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
describe('<RandomPage/>', function () {
 | 
					 | 
				
			||||||
    it('renders without crashing ', function () {
 | 
					 | 
				
			||||||
        const wrapper = shallow(<SettingsPage/>);
 | 
					 | 
				
			||||||
        wrapper.unmount();
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
@@ -6,8 +6,6 @@ import '@testing-library/jest-dom/extend-expect';
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import {configure} from 'enzyme';
 | 
					import {configure} from 'enzyme';
 | 
				
			||||||
import Adapter from 'enzyme-adapter-react-16';
 | 
					import Adapter from 'enzyme-adapter-react-16';
 | 
				
			||||||
import {CookieTokenStore} from "./utils/TokenStore/CookieTokenStore";
 | 
					 | 
				
			||||||
import {token} from "./utils/TokenHandler";
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
configure({adapter: new Adapter()});
 | 
					configure({adapter: new Adapter()});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -45,7 +43,6 @@ global.callAPIMock = (resonse) => {
 | 
				
			|||||||
global.beforeEach(() => {
 | 
					global.beforeEach(() => {
 | 
				
			||||||
    // empty fetch response implementation for each test
 | 
					    // empty fetch response implementation for each test
 | 
				
			||||||
    global.fetch = prepareFetchApi({});
 | 
					    global.fetch = prepareFetchApi({});
 | 
				
			||||||
    token.init(new CookieTokenStore());
 | 
					 | 
				
			||||||
    // todo with callAPIMock
 | 
					    // todo with callAPIMock
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user