-
Notifications
You must be signed in to change notification settings - Fork 854
Testing Scratch www
- Includes what should be tested post-deploy; the things that depend on connections between scratchr2 and scratch-www that can't be tested on staging
- Test Cases in a PR message should be added to the Test Plans
- The Most Important Workflows automated tests should pass for every PR
Scratch-www does not have all of the back-end behaviour for the later steps in these test cases. Most of that code lives on scratchr2. For example, you should be able to access the log-in fields via scratch-www and you should be able to press the Sign In button, but the actual authentication is handled via scratchr2. For that reason, test cases here focus mainly on interacting with the elements on the homepage and in the navigation bar, and use an incomplete set of steps after that first interaction to verify that the interaction was successful - but they don't cover the full range of behaviour beyond that initial interaction. That behaviour is covered in test plans for scratchr2 and elsewhere.
These are the workflows we will automate first and which will be run most often. The idea is that they won't ever give "false positives", because if the tests are broken they need to be updated immediately, and if the test fails, the new commit should not be checked in.
- You don't have to sign in to the conference site, but you should still be able to sign in on the homepage
- Homepage should still detect if you're logged in
- Some sections will not be clickable if they have no details (and should consequently have no different hover state)
- Going to https://<homepage></homepage>/create, whether signed in or out, should redirect you to the project editor with the Tips window open
- When user is signed in, that info should be stored in a cookie.
- When there is no existing cookie, the user state should be signed out.
Before session information (whether user is signed in/ out) is retrieved from a cookie, some UI elements should appear in their default state.
- See https://github.com/LLK/internal-tools-scratch/wiki#testing-resources > Network Throttling for help with testing default states.
- The default project rows are the same as the signed in/ out project rows
- The default Footer (the links to other pages, the language menu) should be the same as the signed in/ out footer.
- The default navbar should look like the regular navbar, but without...
- When Signed Out: The Sign In/ Join Scratch links
- When Signed In: The username & Messages & My Stuff icon
- The other elements should be spread out slightly to fill the space those elements would normally occupy
- The default Splash header should not have...
- When Signed Out: The video or Scratch Cat & friends
- When Signed In: The What's Happening or Scratch News
- Welcome to Scratch
- Scratch News
- Featured Projects
- Featured Studios
- Projects Curated By X
- Scratch Design Studio
- Recently Shared Projects
- What the Community is Remixing
- What the Community is Loving
- List of links
- List of languages
- A new teacher account should be able to sign in
- A new student should be able to sign in, regardless of method their account was created
- A new mod/ scratch team member should be able to sign in
- A new scratcher should be able to sign in
- A scratcher should be able to sign in
- An existing mod/ scratch team member should be able to sign in
- An existing teacher account should be able to sign in
- An existing student account should be able to sign in
- The tips window should be closed
- Share should fail if your email is not confirmed, but the button should exist regardless
- Username in upper left
- You should be able to sign in as a teacher
- You should be able to see the teacher banner
- You should be able to see my students' activity in the What's Happening section
- The activity is that your students are following each other (after being created)
- You should be able to view My Classes from the dropdown on the navbar
- Should only show up if the user is a teacher
- Should say the teacher's username in the banner
- Should contain three button links to resources
- Educators FAQ
- My Classes
- Resources?
_Should be present on homepage for Teachers_ Should have a View All link that takes you to Classes page (public)
- You should be able to sign in as a student
- You should be able to see fellow classmates' & teacher’s activity in the What's Happening section
- The activity is that your fellow classmates & teacher auto-follow you, and you them (after being created)
- You should be able to view My Class from the dropdown on the navbar
- Menu should contain:
- Profile
- My Stuff
- Account Settings
- Sign Out
- Discuss Scratch
- Reports (if you made it to the right page, this link should exist to click)
- Menu should contain:
- Profile
- My Stuff
- Account Settings
- Sign Out
- New Scratchers (if you made it to the right page, this link should exist to click)
- New Topic button should exist
- Menu should contain:
- Profile
- My Stuff
- Account Settings
- Sign Out
- New Scratchers (if you made it to the right page, this link should exist to click)
- New Topic button should exist
- Sign In in upper right
- Tips Window opens
- Discuss Scratch
- Discussion Home
- Scratch
- Announcements
- New Scratchers (if you made it to the right page, this link should exist to click)
- New Topic button should not exist
- Thumbnails for projects should load
- Thumbnails for studios should load
- Project titles should link to the project pages
- Studio title should link to the studio pages
- The "Load More" button should load more projects in the grid
- Thumbnails for projects should load
- Thumbnails for studios should load
- Project titles should link to the project pages
- Studio title should link to the studio pages
- The "Load More" button should load more projects in the grid
- Username Input – An error dialog should appear if:
- the username is fewer than 3 characters
- the username is already taken
- the username is inappropriate
- Password – An error dialog should appear if:
- the password is the same as the username
- the password is "password"
- the password is fewer than 6 characters
- Gender Input – an error should appear if:
- The third option is selected and no text present
- No option is selected
- Both first name and last name fields should be required
- Only a valid phone number should work
- An error should appear if the phone number is not valid
- Organization type
- "Other" field should only be required if checked
- Organization url – should not validate the url
- Only a valid address should work
- An error should appear if the address is not valid
- The state/province field should selectively display a list dependent on the chosen country
- Zip code should not validate anything, except for being a required input field
- There should be a character count in the bottom right corner as you type
- The character count should turn orange if more than 300 characters are provided
- An error should appear if more than 300 characters are provided
- An error should appear if:
- The email address does not appear to be valid
- Email addresses in the main field and confirmation field do not match
- Also referred to as the Waiting Room (`/educators/waiting`)
- Should be shown whenever teacher visits “My Classes” prior to either:
- Email verification
- Completion of waiting period
- If your email address is unconfirmed, there should be a card suggesting you confirm your email
- If you have been invited to a teacher account, there should be a card describing the waiting process
- No matter what user state, there should a card linking to helpful resources to consider
- If at any point there is an unaccounted for server error, this step should be reached; however, this page should never be reached because no unaccounted for errors should occur
- Fields with errors should be highlighted in orange
- Fields that are in focus should be highlighted in blue
- Blue question marks in the description should display tooltips if hovered over
- Maximum number of students uploaded at one time is 50 per CSV
- CSV format is username, password