Challenge Overview
We have recently moved our service integration for the Retail iOS app over from calling each individual service directly to making all service calls through a service proxy. This simplifies our implementation and allows us to centrally configure the service endpoints, keys, and secrets to use on the server, instead of embedded in the individual build of the iOS app.
The side effect is that it is a bit harder to test and fully validate the individual calls due to the intermediate layer.
We previously built a Node test app that we can use to:
* Authenticate and pull a token for the API
* Test the individual calls that the iOS app makes
This challenge will expand the test app to include a smoke test app that sequentially runs through some pre-configured requests and ensure they properly complete. We will use this to validate deployments of the API proxy to quickly ensure that the deployment was successful and properly configured.
Login:
The same login should be used for the smoke test page that we use for the current test page.
General UI requirements:
Please make the general UI reasonably usable and good looking. Feel free to use the existing CSS and layout that's already defined for the test pages.
This new smoke test page doesn't have to be linked to from the test page - it can just be a path, like "/smoke-test"
Test calls:
The smoke test page will automate running through a bunch of requests, similar to what we already have laid out in the test pages. Each one will show a name and checkmark for passing and a red "X" for failure.
The top of the page should have a "Start test" button to start the test, and a way to cancel the current test.
* Test each of the individual web links
* Coverage Map
* Training
* Planogram
* Survey
* Check-In
* Store Locator
* Savings Calculator
* Consent
* Search account
* By name
* By email
* By phone
* By account number
* Get appointments for account
* Get account timeline
* Get 60 day payments for account
* Get channel lineup for account
* Get latest bill for account
* Get list of available bills for account
* Compare two bills for account
* Get the geolocation values for the account
* Add a new timeline item for Retail360_storeTransactions
* Notes
* Get all note types
* Get notes for an account
* Add a note to an account
* OMS
* Swap two devices for an account
* Remove a device for an account
* IMS / Get device details for a given serial number or MAC address
* Get Modeto details for an account
* EMS
* Send device removal receipt email
* Send device swap receipt email
* Send channel lineup email
Defaults:
There should be a way to configure the defaults for the parameters for each call in a configuration JSON file. You should still ensure that the PreProduction endpoint has the default parameters working as good as we can.
Failure
For a failure, we want to be able to pull the request and response for easy debugging.
Note that it's important that we can easily copy the request and response, so please make sure that's tested and not blocked somehow.
Server dropdown:
A list of proxy API endpoints will be provided in the forum. In the UI, we need a place to select one of the endpoints (dev, staging, pre-production, production) that the calls will be sent to.
Submission
Your submission must include:
* The node source for the project
* The deployment guide (We'll only target local deployment for now)
* A video showing the smoke test working