Challenge Overview
Describe what you want to accomplish.
The Retail 360 iOS App is a tool used by Hercules employees in their retail stores. The app allows for looking up customer details and will eventually contain lots of functionality for managing customer accounts, making changes to their accounts, and adding notes, sending emails, etc...
We have released version 1 of the app to some employees, and version 2 is nearing completion. As we add more and more functionality, we need to ensure that the existing functionality isn't broken by any new changes.
This challenge will expand the UI unit tests for the app, which we will build on over the next couple of months to get proper coverage of the app.
Requirements:
This challenge will expand the unit tests that exist to cover the notes display after a profile has been loaded.
Coverage:
Proper coverage is required, of positive and negative test cases. The reviewers should ensure that the coverage report can be run and that the coverage % is appropriate for the functionality tested.
Required tests:
Note: All tests require a login and lookup. Login and account lookup is already covered by other tests, so we can just make sure that the scripted test logs in and can get to the "Profile" tab with a loaded customer
* The notes panel loads in the bottom left corner of the profile screen
* Add Note button displays and is clickable
* View All only displays when notes are available
* Recent notes show in the list on the profile screen
* The recent notes are ordered by date, in descending order
* The date displays in 12 hour time format for recent notes
* The note category (RETENTION, BILLING, etc...) displays next to the date for recent ntoes
* In a case of many notes, the recent list is scrollable
* The note subject and note text display for recent notes
* Clicking "View All" goes to the view all screen
* Clicking "Back" on the view all screen goes back to the customer profile
* The notes display in the view all table
* The columns on the view all table are sortable by clicking the column headers
* The data displays for each note. The source may not be filled in for older notes, and that is OK
* The view all table scrolls for long lists of notes
* On the profile screen, tapping "Add Note" displays the "Add New Note" popup
* Clicking the X on the add new note popup closes the popup
* Clicking "Cancel" on the add new note popup closes the popup
* The note types shown are RETENTION, GENERAL, SALES, REPAIR, and BILLING
* The user can only select a single note type for a new note
* The user must select a note type before clicking "Add Note". A popup should display if they don't
* The user must enter message text before clicking "Add Note". A popup should display if they don't
* The new note is added successfully
* The new note displays with the correct details in the recent notes list
* When clicking "View All", the new note displays with the correct details and source RETAIL360 in the list
* There should be one test for each note type (RETENTION, GENERAL, SALES, REPAIR, BILLING)
* Subject is optional, so we should have a test that enters a subject, and one that doesn't
Helpful links:
* https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/09-ui_testing.html
* https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/07-code_coverage.html
* http://cleanswifter.com/measuring-swift-code-coverage/
* https://developer.apple.com/videos/play/wwdc2015/410/
* http://mgrebenets.github.io/mobile%20ci/2015/09/21/code-coverage-for-ios-xcode-7
No video is required for this challenge.
A separate UNIT_TESTS_README.md exists in Git. It should be updated for this challenge.
We have released version 1 of the app to some employees, and version 2 is nearing completion. As we add more and more functionality, we need to ensure that the existing functionality isn't broken by any new changes.
This challenge will expand the UI unit tests for the app, which we will build on over the next couple of months to get proper coverage of the app.
Requirements:
This challenge will expand the unit tests that exist to cover the notes display after a profile has been loaded.
Coverage:
Proper coverage is required, of positive and negative test cases. The reviewers should ensure that the coverage report can be run and that the coverage % is appropriate for the functionality tested.
Required tests:
Note: All tests require a login and lookup. Login and account lookup is already covered by other tests, so we can just make sure that the scripted test logs in and can get to the "Profile" tab with a loaded customer
* The notes panel loads in the bottom left corner of the profile screen
* Add Note button displays and is clickable
* View All only displays when notes are available
* Recent notes show in the list on the profile screen
* The recent notes are ordered by date, in descending order
* The date displays in 12 hour time format for recent notes
* The note category (RETENTION, BILLING, etc...) displays next to the date for recent ntoes
* In a case of many notes, the recent list is scrollable
* The note subject and note text display for recent notes
* Clicking "View All" goes to the view all screen
* Clicking "Back" on the view all screen goes back to the customer profile
* The notes display in the view all table
* The columns on the view all table are sortable by clicking the column headers
* The data displays for each note. The source may not be filled in for older notes, and that is OK
* The view all table scrolls for long lists of notes
* On the profile screen, tapping "Add Note" displays the "Add New Note" popup
* Clicking the X on the add new note popup closes the popup
* Clicking "Cancel" on the add new note popup closes the popup
* The note types shown are RETENTION, GENERAL, SALES, REPAIR, and BILLING
* The user can only select a single note type for a new note
* The user must select a note type before clicking "Add Note". A popup should display if they don't
* The user must enter message text before clicking "Add Note". A popup should display if they don't
* The new note is added successfully
* The new note displays with the correct details in the recent notes list
* When clicking "View All", the new note displays with the correct details and source RETAIL360 in the list
* There should be one test for each note type (RETENTION, GENERAL, SALES, REPAIR, BILLING)
* Subject is optional, so we should have a test that enters a subject, and one that doesn't
Helpful links:
* https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/09-ui_testing.html
* https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/07-code_coverage.html
* http://cleanswifter.com/measuring-swift-code-coverage/
* https://developer.apple.com/videos/play/wwdc2015/410/
* http://mgrebenets.github.io/mobile%20ci/2015/09/21/code-coverage-for-ios-xcode-7
Submission format
Your submission should be provided as a Git patch file against the commit hash mentioned in the forum. MAKE SURE TO TEST YOUR PATCH FILE!
Your submission should be provided as a Git patch file against the commit hash mentioned in the forum. MAKE SURE TO TEST YOUR PATCH FILE!
No video is required for this challenge.
A separate UNIT_TESTS_README.md exists in Git. It should be updated for this challenge.