Challenge Overview
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 channel lineup functionality 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
* "Channel Lineup" in the right menu is only enabled when an account is loaded
* Clicking "Channel Lineup" loads the list of channels for the currently loaded customer account
* The channel lineup is sorted by Channel # ascending by default
* The channels all show a name, channe number, and image
* The channels can be sorted by number or name, ascending or descending
* The channel lineup can be scrolled, and the channel images load properly during scrolling
* Clicking "Compare To" shows two separate drop downs where the user can select other packages
* If the list of comparison packages is long, the user can scroll the popup
* Selecting a package to compare to loads the number of channels in the header
* When comparing, the channels in each pacakge (current and comparison) are shown with a check mark
* When comparing, the comparison list can be scrolled and the checkmarks are displayed in the correct locations
* A second comparison package can be loaded and the interaction and display of the check marks and scrolling works as expected
* Clicking "Send to Customer" will show the send channel lineup to customer popup
* The email address of the customer should already be populated
* The email address can be changed to a different address
* Clicking the "X" on the popup will close it
* When sending an email, the screen is overlayed with a grey overlay and a spinner
* If sending fails, a message is displayed appropriately
* If a whitelist error occurs a new popup is shown that shows the whitelist error
* When sending is successful, a message is displayed appropriately
* Clicking the "X" in the upper right portion of the channel lineup screen will close the channel lineup and go back to the customer's profile.
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 channel lineup functionality 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
* "Channel Lineup" in the right menu is only enabled when an account is loaded
* Clicking "Channel Lineup" loads the list of channels for the currently loaded customer account
* The channel lineup is sorted by Channel # ascending by default
* The channels all show a name, channe number, and image
* The channels can be sorted by number or name, ascending or descending
* The channel lineup can be scrolled, and the channel images load properly during scrolling
* Clicking "Compare To" shows two separate drop downs where the user can select other packages
* If the list of comparison packages is long, the user can scroll the popup
* Selecting a package to compare to loads the number of channels in the header
* When comparing, the channels in each pacakge (current and comparison) are shown with a check mark
* When comparing, the comparison list can be scrolled and the checkmarks are displayed in the correct locations
* A second comparison package can be loaded and the interaction and display of the check marks and scrolling works as expected
* Clicking "Send to Customer" will show the send channel lineup to customer popup
* The email address of the customer should already be populated
* The email address can be changed to a different address
* Clicking the "X" on the popup will close it
* When sending an email, the screen is overlayed with a grey overlay and a spinner
* If sending fails, a message is displayed appropriately
* If a whitelist error occurs a new popup is shown that shows the whitelist error
* When sending is successful, a message is displayed appropriately
* Clicking the "X" in the upper right portion of the channel lineup screen will close the channel lineup and go back to the customer's profile.
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.