BestNotes/test/specs/base/navigation.js
2020-01-18 18:30:46 +01:00

77 lines
2.3 KiB
JavaScript

const base = require('./base');
const Login = require('../components/login');
const Note = require('../components/note');
const AddNote = require('../components/add-note');
class Navigation {
constructor() {
this.baseUrl = 'bestnotes.pythonanywhere';
this.loginUrl = 'http://bestnotes.pythonanywhere.com/bestnotes/accounts/login/';
this.notesUrl = 'http://bestnotes.pythonanywhere.com/bestnotes/notes/9';
this.subjectUrl = 'http://bestnotes.pythonanywhere.com/bestnotes/subject/';
this.topicUrl = 'http://bestnotes.pythonanywhere.com/bestnotes/topics_by_subject_id/9';
this.addNoteUrl = 'http://bestnotes.pythonanywhere.com/bestnotes/addnote/';
this.loggedInCookiesSet = [
{
name: 'sessionid',
value: '8h635pv4mwwj4y4bgmcyli678pxd8vsl',
path: '/',
domain: `.${this.baseUrl}.com`,
},
];
this.anonCookiesSet = [
{
name: 'sessionid',
value: 'abcdef',
path: '/',
domain: `.${this.baseUrl}.com`,
},
];
}
toLoginPage() {
browser.url(this.loginUrl);
return new Login();
}
toNotesPage(user) {
browser.url(this.notesUrl);
this.setUser(user);
return new Note();
}
toAddNotePage(user) {
browser.url(this.addNoteUrl);
this.setUser(user);
return new AddNote();
}
toSubjectPage(user) {
browser.url(this.notesUrl);
this.setUser(user);
return new Note();
}
toTopicPage(user) {
browser.url(this.topicUrl);
this.setUser(user);
return new Note();
}
setUser(user) {
switch (user.toLowerCase()) {
case 'anon':
browser.setCookies(this.anonCookiesSet);
base.waitForCookiesSet(this.anonCookiesSet);
break;
case 'user':
browser.setCookies(this.loggedInCookiesSet);
base.waitForCookiesSet(this.loggedInCookiesSet);
break;
default:
throw new Error('setUser() method parameter is invalid');
}
}
}
module.exports = new Navigation();