This test comes with a mock API server that represents a snapshot of our internal Trading Engine.
The challenge is to build an automation framework that explores and tests the endpoints provided.
Further information regarding each endpoint can be found in the file apiDocs.html
, after you have downloaded the files.
We realise that everyone has different levels of skills and experience when it comes to development, and so if you do not have the time or knowledge to complete all tasks, that's okay, we just want to see how you would approach the problem and get a feel for how you code.
Take no more than 1.5 to 3 hours on this test.
This is a test automation focused test, so the end deliverable should be a test framework with various assertions against the provided endpoints.
How you get there is up to you: we typically use Node.js or Kotlin, but you may use any mainstream language you like.
At a high level we will be looking for:
- Clear instructions for how to set up and run the framework on a reviewer's machine
- Good understanding of the tasks undertaken
- Well-structured and concise code
- Use of relevant design patterns
- Good understanding of errors and how to handle them
Please upload your completed test to a publicly-accessible repository in a hosting service (e.g. GitHub), and send a link to your recruitment contact.
- LTS version of NodeJS, and NPM: https://nodejs.org/
Start the mock API server:
npm install && npm run start
It runs by default on http://localhost:3000
Using the provided API:
- Retrieve all fixtures.
- Assert that there are 3 fixtures within the returned object.
- Assert that each of the 3 fixtures has a fixtureId value.
- Using the model guide in
apiDocs.html
, store a new fixture in the database. To simulate latency within systems, there is an intentional, random delay to store a new fixture on the server.- Bearing the delay in mind, retrieve it as soon as it's available and assert, within the
teams
array, that the first object has ateamId
of 'HOME'.
- Bearing the delay in mind, retrieve it as soon as it's available and assert, within the
- Update a fixture within the database.
- Assert that the relevant attributes in the fixture have changed.
- Delete a fixture.
- Assert that the fixture no longer exists.