fix some tests
fix merge issues
This commit is contained in:
6
src/pages/ActorOverviewPage/ActorOverviewPage.module.css
Normal file
6
src/pages/ActorOverviewPage/ActorOverviewPage.module.css
Normal file
@@ -0,0 +1,6 @@
|
||||
.container {
|
||||
float: left;
|
||||
margin-right: 20px;
|
||||
padding-left: 20px;
|
||||
width: 70%;
|
||||
}
|
||||
43
src/pages/ActorOverviewPage/ActorOverviewPage.test.js
Normal file
43
src/pages/ActorOverviewPage/ActorOverviewPage.test.js
Normal file
@@ -0,0 +1,43 @@
|
||||
import {shallow} from 'enzyme';
|
||||
import React from 'react';
|
||||
import ActorOverviewPage from './ActorOverviewPage';
|
||||
|
||||
describe('<ActorOverviewPage/>', function () {
|
||||
it('renders without crashing ', function () {
|
||||
const wrapper = shallow(<ActorOverviewPage/>);
|
||||
wrapper.unmount();
|
||||
});
|
||||
|
||||
it('test inerstion of actor tiles', function () {
|
||||
const wrapper = shallow(<ActorOverviewPage/>);
|
||||
|
||||
wrapper.setState({
|
||||
actors: [{
|
||||
thumbnail: '',
|
||||
name: 'testname',
|
||||
actor_id: 42
|
||||
}]
|
||||
});
|
||||
|
||||
expect(wrapper.find('ActorTile')).toHaveLength(1);
|
||||
});
|
||||
|
||||
it('test newtagpopup visibility', function () {
|
||||
const wrapper = shallow(<ActorOverviewPage/>);
|
||||
|
||||
expect(wrapper.find('NewActorPopup')).toHaveLength(0);
|
||||
|
||||
wrapper.find('SideBar').find('Button').simulate('click');
|
||||
|
||||
expect(wrapper.find('NewActorPopup')).toHaveLength(1);
|
||||
});
|
||||
|
||||
it('test popup hiding', function () {
|
||||
const wrapper = shallow(<ActorOverviewPage/>);
|
||||
wrapper.setState({NActorPopupVisible: true});
|
||||
|
||||
wrapper.find('NewActorPopup').props().onHide();
|
||||
|
||||
expect(wrapper.find('NewActorPopup')).toHaveLength(0);
|
||||
});
|
||||
});
|
||||
57
src/pages/ActorOverviewPage/ActorOverviewPage.tsx
Normal file
57
src/pages/ActorOverviewPage/ActorOverviewPage.tsx
Normal file
@@ -0,0 +1,57 @@
|
||||
import React from 'react';
|
||||
import {callAPI} from '../../utils/Api';
|
||||
import {ActorType} from '../../api/VideoTypes';
|
||||
import ActorTile from '../../elements/ActorTile/ActorTile';
|
||||
import PageTitle from '../../elements/PageTitle/PageTitle';
|
||||
import SideBar from '../../elements/SideBar/SideBar';
|
||||
import style from './ActorOverviewPage.module.css';
|
||||
import {Button} from '../../elements/GPElements/Button';
|
||||
import NewActorPopup from '../../elements/Popups/NewActorPopup/NewActorPopup';
|
||||
|
||||
interface props {
|
||||
}
|
||||
|
||||
interface state {
|
||||
actors: ActorType[];
|
||||
NActorPopupVisible: boolean
|
||||
}
|
||||
|
||||
class ActorOverviewPage extends React.Component<props, state> {
|
||||
constructor(props: props) {
|
||||
super(props);
|
||||
|
||||
this.state = {
|
||||
actors: [],
|
||||
NActorPopupVisible: false
|
||||
};
|
||||
|
||||
this.fetchAvailableActors();
|
||||
}
|
||||
|
||||
render(): JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<PageTitle title='Actors' subtitle={this.state.actors.length + ' Actors'}/>
|
||||
<SideBar>
|
||||
<Button title='Add Actor' onClick={(): void => this.setState({NActorPopupVisible: true})}/>
|
||||
</SideBar>
|
||||
<div className={style.container}>
|
||||
{this.state.actors.map((el) => (<ActorTile actor={el}/>))}
|
||||
</div>
|
||||
{this.state.NActorPopupVisible ?
|
||||
<NewActorPopup onHide={(): void => {
|
||||
this.setState({NActorPopupVisible: false});
|
||||
this.fetchAvailableActors(); // refetch actors
|
||||
}}/> : null}
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
fetchAvailableActors(): void {
|
||||
callAPI<ActorType[]>('actor.php', {action: 'getAllActors'}, result => {
|
||||
this.setState({actors: result});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export default ActorOverviewPage;
|
||||
Reference in New Issue
Block a user