In order to assess our candidates competencies, we ask that they complete this coding test and submit us the results.
If you've stumbled accross this repository and would like to apply for a role in the Io Finnet test team, then please reach out to [email protected]
with your completed submission and CV.
- Show your experience with implementing a basic testing framework from scratch
- Implement either integration tests, or end-2-end tests for testing that the lambdas correctly pass information from the API to the database.
You can deploy this stack either locally or on AWS directly. Everything in this test can be run for within the Free tier of AWS
** Everything in this test can be run for within the Free tier of AWS **
-
We hope you'll already have an AWS account. If not, you can open one for free. We assume you have administration rights so we have not provided a list of IAM permissions needed to deploy all the resources of this test.
-
Fork and clone this repository and install the dependencies locally.
-
Deploy the stack with serverless to AWS. Ensure you have AWS API credentials saved locally or inject them as a CLI variables. To deploy, simply type
npx sls deploy --stage test
. This will create the following resources:
- Custom Eventbridge (to not use the default)
- HTTP V2 API Gateway
- 3 Lambdas
- POST /events API to create events
- GET /events API to retrieve a list of events
- A lambda attached to the EventBridge listening to events added to the bridge
- Fork and clone this repository and install the dependencies locally.
- Initiate the dynamodb install
npx sls dynamodb install
- Run the stack with
npx sls offline start
- Note this will run Dynamodb in memory mode. This will reset the data on each restart.
curl --location --request POST 'http://localhost:3000/events' \
--header 'Content-Type: application/json' \
--data-raw '[
{
"name": "blue",
"amount": 123,
"size": "small"
},
{
"name": "green",
"amount": 5643,
"size": "medium"
}
]'
curl --location --request GET 'http://localhost:3000/events'