Challenge Overview
We want to create a testing suite that will test our backend microservices and will export the results in an HTML based UI.
In this challenge, we’ll target the tc-message-service.
You need to cover all available endpoints.
Detailed requirements
-
The testing suite must be written in NodeJS and you should follow the latest best practices.
-
We’re already using Mocha, sinon & chai in many of our projects so those libraries are allowed to be used. Please ask in the forum in case you want to use another library.
-
You need to create both negative and positive test cases for each endpoint.
-
You need to verify every attribute of the response body. So, ideally, the tests should fail on even field name changes.
-
We should be able to configure it to test it against any environment so that we can verify few active projects on production as well.
-
We should be able to configure it such a way that we can run tests only in read-only mode i.e. just verify the get/list endpoints. We will use this feature to test out selected projects from production. The login credentials (handle or email & password) must be set as environment variables.
-
We should be able to pass the target microservice as a parameter. For example, if we run “npm run test:tc-message-service” the test suite will test only the tc-message-service. If the target microservice is not provided, the test suite should test all available microservices.
-
Test results should be exported in an HTML based UI and should be sent via email to a configured list of email addresses.
You will find the details on how to login and get a working JWT in the challenge forum.
Resources:
Feel free to ask on the challenge forum in case of any doubt or question.
Final Submission Guidelines
Submit your source code in a zip file along with a detailed deployment guide in Markdown format (README.md).
A video showing your submission in action is also desirable but not mandatory.