generated from ics-software-engineering/meteor-application-template-react
/
tests.testcafe.js
86 lines (74 loc) · 3.63 KB
/
tests.testcafe.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import { landingPage } from './landing.page';
import { signInPage } from './signin.page';
import { signOutPage } from './signout.page';
import { signupPage } from './signup.page';
import { profilesPage } from './profiles.page';
import { projectsPage } from './projects.page';
import { interestsPage } from './interests.page';
import { homePage } from './home.page';
import { addProjectPage } from './addproject.page';
import { filterPage } from './filter.page';
import { navBar } from './navbar.component';
/* global fixture:false, test:false */
/** Credentials for one of the sample users defined in settings.development.json. */
const credentials = { username: 'johnson@hawaii.edu', password: 'foo', firstName: 'Philip', lastName: 'Johnson' };
fixture('Bowfolios localhost test with default db')
.page('http://localhost:3000');
test('Test that landing page shows up', async (testController) => {
await landingPage.isDisplayed(testController);
});
test('Test that signin and signout work', async (testController) => {
await navBar.gotoSignInPage(testController);
await signInPage.signin(testController, credentials.username, credentials.password);
await navBar.logout(testController);
await signOutPage.isDisplayed(testController);
});
test('Test that signup page, then logout works', async (testController) => {
// Create a new user email address that's guaranteed to be unique.
const newUser = `user-${new Date().getTime()}@foo.com`;
await navBar.gotoSignUpPage(testController);
await signupPage.isDisplayed(testController);
await signupPage.signupUser(testController, newUser, credentials.password);
// New user has successfully logged in, so now let's logout.
await navBar.logout(testController);
await signOutPage.isDisplayed(testController);
});
test('Test that profiles page displays', async (testController) => {
await navBar.gotoProfilesPage(testController);
await profilesPage.isDisplayed(testController);
await profilesPage.hasDefaultProfiles(testController);
});
test('Test that interests page displays', async (testController) => {
await navBar.gotoInterestsPage(testController);
await interestsPage.isDisplayed(testController);
await interestsPage.hasDefaultInterests(testController);
});
test('Test that projects page displays', async (testController) => {
await navBar.gotoProjectsPage(testController);
await projectsPage.isDisplayed(testController);
await projectsPage.hasDefaultProjects(testController);
});
test('Test that home page display and profile modification works', async (testController) => {
await navBar.ensureLogout(testController);
await navBar.gotoSignInPage(testController);
await signInPage.signin(testController, credentials.username, credentials.password);
await homePage.isDisplayed(testController);
await homePage.updateProfile(testController, credentials.firstName);
await navBar.ensureLogout(testController);
});
test('Test that addProject page works', async (testController) => {
await navBar.ensureLogout(testController);
await navBar.gotoSignInPage(testController);
await signInPage.signin(testController, credentials.username, credentials.password);
await navBar.gotoAddProjectPage(testController);
await addProjectPage.isDisplayed(testController);
await addProjectPage.addProject(testController);
});
test('Test that filter page works', async (testController) => {
await navBar.ensureLogout(testController);
await navBar.gotoSignInPage(testController);
await signInPage.signin(testController, credentials.username, credentials.password);
await navBar.gotoFilterPage(testController);
await filterPage.isDisplayed(testController);
await filterPage.filter(testController);
});