Skip to content

Full System Test

pyw2102 edited this page Dec 10, 2016 · 2 revisions

Signup

Show signup (front-end)

As a user, I want to see the signup page when I got to the Events Calendar URL, localhost:5000. If I am in the 'Log In' tab, I can click on the 'Sign up' tab to go to the sig up page.

Script:

  1. Go to page: http://columbia-events-calendar.herokuapp.com/
    User sees: sign up page

###Signup success (front/back-end) As a user, if I sign up successfully, I will see the events page. Upon a successful sign up, server returns 201.

Script:

  1. Go to page: http://columbia-events-calendar.herokuapp.com/
    User sees: sign up page

  2. User input all fields correctly.
    User sees: homepage with loaded events.

Signup bad email (front/back-end)

As a user, if I sign up with an email without the format [email protected], the page will notify me that it is a bad email. Server returns 400 for bad sign up.

Script:

  1. User in sign up page.
  2. User input First and Last name.
  3. User input email without the format [email protected].
  4. User clicks “sign up” button.
    User sees: Email section of sign up form has a pop up that says “Please include an @ in the email address”.

Signup exists (front/back-end)

As a user, if I sign up using an email with an existing account, the page will notify me that the account with the associated email already exists. Server returns 409.

Script:

  1. User in sign up page.
  2. User fills out first and last name.
  3. User fills out email field with an email that has an existing account.
  4. User fills out password and confirm password fields.
  5. Users click “sign up” button.
    User sees: Red text that says “Email has been used.”

Signup passwords do not match (front-end)

As a user, the text in the "Password" and "confirm password" fields must match when I sign up for a new account. If the text in the two fields do not match, the page will notify me that the passwords do not match.

Script:

  1. User in sign up page.
  2. User fills out first and last name.
  3. User fills out email.
  4. User fills out password.
  5. User fills out confirm password that is different from password.
  6. User clicks “sign up” button.
    User sees: Red text that says “Your passwords do not match”

Signup no password (front-end)

As a user, I have to set a password when I click the 'Sign Up' button. If no password is in the 'Password' field, the page will notify me that I have to input a password.

Script:

  1. User in sign up page.
  2. User fills out first and last name.
  3. User fills out email.
  4. User clicks “sign up” button.
    User sees: password section of sign form has a pop up that says “Please fill out field”.

Signup no name (front-end)

As a user, I have to sign up with my name when I click the 'Sign Up' button. If no first and/or last names are in the 'First Name' and 'Last Name' fields, the page will notify me that I have to input my name.

Script:

  1. User in sign up page.
  2. User clicks “sign up” button
    User sees: First name section of sign up form has a pop up that says “Please fill out field”.

###Signup no email (front-end) As a user, I have to input my email address when I click the 'Sign Up' button. If no email is in the 'Email' field, the page will notify me that I have to input my email.

Script:

  1. User in sign up page.
  2. User fills out first and last name.
  3. User clicks “sign up” button
    User sees: First name section of sign up form has a pop up that says “Please fill out field”.

##Login

###Show Login (front-end) As a user, when I click on the 'Log In' tab in the home page, I should see the 'Log In' form.

Script:

  1. Go to page: http://columbia-events-calendar.herokuapp.com/
    User sees: sign up page
  2. User clicks on “log in” tab.
    User sees: login page.

###Login Success (front/back-end) As a user, if I log in successfully, I will see the events page. To log in successfully, I have to input the email associated to an existing account and the password associated to that account in the 'Email' and 'Password' fields. Server returns 200. Upon a successful log in, back-end will display 200.

Script:

  1. Go to page: http://columbia-events-calendar.herokuapp.com/
    User sees: sign up page
  2. User clicks on “log in” tab.
    User sees: login page.
  3. User inputs email with associated account.
  4. User inputs password associated to email.
  5. User clicks “log in” button.
    User sees: homepage with loaded events.

###No email (front-end) As a user, if there is no email in the 'Email' field when I click on the 'Log In' button, the page will display an error.

Script:

  1. User on login page.
  2. User clicks “log in” button.
    User sees: email section of sign form has a pop up that says “Please fill out field”.

###No password (front-end) As a user, if there is no password in the 'Password' field when I click on the 'Log In' button, the page will display an error.

Script:

  1. User on login page.
  2. User inputs email.
  3. User clicks “log in” button.
    User sees: password section of sign form has a pop up that says “Please fill out field”.

###Invalid combination (front/back-end) As a user, I have to input the correct email with the associated password in order to log in. If the email and password combination is incorrect, the page will display an error. Server returns 401 unauthorized.

Script:

  1. User on login page.
  2. User inputs email with associated account.
  3. User input invalid password.
  4. User clicks “log in” button.
    User sees: red text that says “ invalid user name or password.“

###Invalid login- have not signed up by try to log in (front/back-end) As a user, I have to input the correct email with the associated password in order to log in. If the email has never been used to sign up for an account, arrow will be shown. Server returns 401 unauthorized.

Script:

  1. User on login page.
  2. User inputs email without associated account.
  3. User input invalid password.
  4. User clicks “log in” button.
    User sees: red text that says “ invalid user name or password“

##Events

###Show events As a user, when I go to the Events Calendar page, I should see events on campus. Server returns events and 200.

Edge cases: When there is one upcoming event, the page should show one event. When there are no upcoming events, the page should not show any event.

Additional things to check for: Each event has a title, date, time, organization

Script

  1. User on homepage (after successfully login in or signing up).
    User sees: list of events with associated ratings and favorites.

##Favorites

###Set favorites (front/back-end) As a user, I can favorite events by pressing on the heart on the bottom right corner of each event. When the event is favorited, the heart associated to that event will be a red filled heart. Server returns 201.

Edge case: I can favorite the first event on the page
I can favorite the last event on the page

Script:

  1. User on homepage (after successfully login in or signing up).
    User sees: list of events.
  2. User hover mouse over heart for one of the events with hollow heart.
    User sees: heart increases in size by a bit.
  3. User clicks on the heart.
    User sees: hollow heart turns into filled heart.

###Unset favorites (front/back-end) As a user, I can un-favorite events by pressing on the heart on the bottom right corner of each event. When the event is favorited, the heart associated to that event will be an empty heart. Server returns 200.

Edge case:

I can unfavorite the first event on the page
I can unfavorite the last event on the page

Script:

  1. User on homepage (after successfully login in or signing up). User sees: list of events.
  2. User hover mouse over heart for one of the events with filled heart. User sees: heart increases in size by a bit.
  3. User clicks on the heart. User sees: filled heart turns into hollow heart.

###Set a pre-set favorite (back-end) As a user, if I set a pre-set favorite again, the server returns 409

###Unset a not-favorited item (back-end) As a user, if I unfavorite a not-favorited event, the server returns 404

###Show favorites on homepage (front/back-end) As a user, I can see which events I favorited on the Events Calendar page. The events I favorited will have red hearts while the others will have empty hearts. Server returns favorites and 200.

Edge case: If I do not have any favorited events, all of the events will have empty hearts.

Script:

  1. User on homepage (after successfully login in or signing up).
    User sees: list of events some with filled heart and others with hollow heart.

###Show favorites in “My Favorites” page (front-end) As a user, I can see which events I favorited on the page by clicking “My Favorites” page. The event I favorited will show on this page.

Edge cases: Users can favorite all events on the page.

Script:

  1. User on homepage (after successfully login in or signing up).
    User sees: list of events some with filled heart and others with hollow heart.
  2. User clicks “My Favorites” tab in the navigation bar.
    User sees: list of events that they have favorited as indicated by the filled hearts.

###Show no favorites in “My Favorites” page (front-end)
As a user, if I have not favorited any events and I click on the “My Favorites” button, I will be notified that I do not have any favorited events.

Script:

  1. User on homepage (after successfully login in or signing up).
    User sees: list of events some with filled hearts.
  2. User clicks “My Favorites” tab in the navbar.
    User sees: no events and text that says “You do not have any favorite events”.

###Show All Events after viewing “My Favorites” page (front-end) As a user, I can see all events by clicking on the “All Events” button.

Script:

  1. User on homepage (after successfully login in or signing up).
    User sees: list of events some with filled heart and others with hollow heart.
  2. User clicks “My Favorites” tab in the navbar.
    User sees: list of events that they have favorited as indicated by the filled hearts.
  3. User clicks “All Events” tab in navbar.
    User sees: list of events some with filled heart and others with hollow heart.

##Rating

###Show Rating (front/back-end): As a user, I can view the rating of any of the groups. Each hosting group will have a rating based on the average rating of the events they have held in the past.

Edge case: If a group has no rating, the rating will display 5 stars.

Script:

  1. User on homepage (after successfully login in or signing up).
    User sees: list of events, each with a rating of the group indicated by the stars.

###Rate (front-end/back-end): As a user, I can rate any of the groups hosting the events by hovering my mouse over the stars.

Script:

  1. User on homepage (after successfully login in or signing up).
    User sees: list of events, each with a rating of the group indicated by the stars.
  2. User hovers over star
    User sees: the number of stars changes as they hover their mouse over the stars
  3. User presses down on the number of stars they want to give
    User sees: their rating of the star
  4. User reloads the page
    User sees: an updated rating of the group they just rated.

###Rate Again (front-end/back-end): As a user, I can rate any of the groups again.

Script:

  1. User on homepage (after successfully login in or signing up).
    User sees: list of events, each with a rating of the group indicated by the stars.
  2. User hovers over star
    User sees: the number of stars changes as they hover their mouse over the stars
  3. User presses down on the number of stars they want to give
    User sees: their rating of the star
  4. User reloads the page
    User sees: an updated rating of the group they just rated.
  5. User hovers over star of the same group
    User sees: the number of stars changes as they hover their mouse over the stars
  6. User presses down on the number of stars they want to give
    User sees: their rating of the star
  7. User reloads the page
    User sees: an updated rating of the group they just rated.

##Account

###Account Info (front-end): As a user, I want to see my name and email when I click on the top right “Account” button.

Script:

  1. User on homepage (after successfully login in or signing up).
    User sees: list of events with associated ratings and favorites.
  2. User clicks on “Account” button on the navigation bar.
    User sees: their name, email and a log out button

###Log out As a user, I want to log out of my account by clicking on the “Log out “ button.

Script:

  1. User on homepage (after successfully login in or signing up).
    User sees: list of events with associated ratings and favorites.
  2. User clicks on “Account” button on the navigation bar.
    User sees: a drop down with their name, email and a log out button.
  3. User clicks on “log out” button.
    User sees: initial sign up/log in page.

##Filter

###Filter event by title or organization (front-end) As a user, I want to filter the type of events happening on campus. This means that I can filter events based on title of the event or the organization hosting the event.

Script:

  1. User on homepage (after successfully login in or signing up).
    User sees: list of events with associated ratings and favorites.

  2. User searches an existing event by its title or organization. User sees: events with the title organization that the user searches.

###Filter event by title or organization - No result (front-end) As a user, I want to filter the type of events happening on campus. This means that I can filter events based on title of the event or the organization hosting the event.

Script:

  1. User on homepage (after successfully login in or signing up).
    User sees: list of events with associated ratings and favorites.
  2. User searches a non-existing event by its title or organization
    User sees: no event and text that says “none of the events matched your search”

###Filter event by dates (front-end) As a user, I want to filter the type of events happening on campus. This means that I can filter events based on the date that the event is happening on.

Script:

  1. User on homepage (after successfully login in or signing up).
    User sees: list of events with associated ratings and favorites.
  2. User clicks on the drop down menu and selects “upcoming”.
    User sees: list of events that are happening in the next 7 days.