Orign Take-Home Assignment
Important parts of this application were intentionally deleted.
Before that, it allowed users to type a car's VIN number and see it's make
, model
, vehicle type
and year of production
. We want you to rewrite the deleted parts so that the application works again and all it's tests pass.
The VIN Service is broken since all functions in that file were removed, but we kept its type signatures to make it easier for you.
It's a simple TDD problem: find a VIN API you like, build an integration with it, run the unit tests for that service and make all failing ones green again. Naturally, hardcoded functions with test data won't be accepted.
The response converter
test suit is skipped
since we accept any VIN API integration, but you have to write similar tests for your integration. That's the only test suite that you are required to write: we care about testing and want to be sure that you know how to write them.
The styling for the react components were also removed, so that we can test your ability to write it again just from these commited screenshots.
We are aware that styling is not what makes you a great programmer, so you don't have to show advanced CSS tricks: just make sure the images Cypress automatically generates when you run the end to end tests (in /cypress/screenshots/App.spec.ts/
) are indistinguishable from the originals.
We love functional programming, but relax: we won't force you to write any Monads here. Though this project uses redux-loop
, the command integration from our reducer was removed.
Your last task is to fix that command usage and the checkVinCmd
implementation.
Use the npm run test:unit
and npm run test:e2e
to run all the application's tests and check what parts of the application are broken.
OBS: to run the end to end tests you need the application to be started before. And don't forget to install the dependencies first!