added some tests and rounder buttons of settings items

This commit is contained in:
Lukas Heiligenbrunner 2020-06-29 19:55:40 +02:00
parent fdfb36bcd2
commit 791f2327e1
4 changed files with 65 additions and 13 deletions

View File

@ -16,5 +16,47 @@ describe('<MovieSettings/>', function () {
wrapper.unmount();
});
it('received text renders into dom', function () {
const wrapper = shallow(<MovieSettings/>);
wrapper.setState({
text: [
"firstline",
"secline"
]
});
expect(wrapper.find(".indextextarea").find(".textarea-element")).toHaveLength(2);
});
it('test simulate reindex', function () {
global.fetch = prepareFetchApi({});
const wrapper = shallow(<MovieSettings/>);
wrapper.find(".reindexbtn").simulate("click");
// initial send of reindex request to server
expect(global.fetch).toBeCalledTimes(1);
});
it('content available received and in state', done => {
global.fetch = prepareFetchApi({
contentAvailable: true,
message: "firstline\nsecondline"
});
const wrapper = shallow(<MovieSettings/>);
wrapper.instance().updateStatus();
process.nextTick(() => {
expect(wrapper.state()).toMatchObject({
text: [
"firstline",
"secondline"
]
});
global.fetch.mockClear();
done();
});
});
});

View File

@ -28,6 +28,7 @@
background-color: #a8b2de;
text-align: center;
font-weight: bold;
border-radius: 7px;
}
.SettingSidebarElement:hover {

View File

@ -19,6 +19,8 @@ class SettingsPage extends React.Component {
return <GeneralSettings/>;
case "movies":
return <MovieSettings/>;
case "tv":
return <a/>; // todo this page
default:
return "unknown button clicked";
}

View File

@ -16,26 +16,33 @@ describe('<RandomPage/>', function () {
wrapper.unmount();
});
it('received text renders into dom', function () {
it('simulate topic clicka', function () {
const wrapper = shallow(<SettingsPage/>);
wrapper.setState({
text: [
"firstline",
"secline"
]
simulateSideBarClick("General",wrapper);
expect(wrapper.state().currentpage).toBe("general");
expect(wrapper.find(".SettingsContent").find("GeneralSettings")).toHaveLength(1);
simulateSideBarClick("Movies",wrapper);
expect(wrapper.state().currentpage).toBe("movies");
expect(wrapper.find(".SettingsContent").find("MovieSettings")).toHaveLength(1);
simulateSideBarClick("TV Shows",wrapper);
expect(wrapper.state().currentpage).toBe("tv");
expect(wrapper.find(".SettingsContent").find("a")).toHaveLength(1);
});
expect(wrapper.find(".indextextarea").find(".textarea-element")).toHaveLength(2);
});
function simulateSideBarClick(name, wrapper) {
wrapper.find(".SettingSidebarElement").findWhere(it =>
it.text() === name &&
it.type() === "div").simulate("click");
}
it('test simulate reindex', function () {
global.fetch = prepareFetchApi({});
it('simulate unknown topic', function () {
const wrapper = shallow(<SettingsPage/>);
wrapper.setState({currentpage: "unknown"});
wrapper.find(".reindexbtn").simulate("click");
expect(wrapper.find(".SettingsContent").text()).toBe("unknown button clicked");
// initial send of reindex request to server
expect(global.fetch).toBeCalledTimes(1);
});
});