Origin Energy coding assignment Isaac Johnson [email protected]
yarn
yarn start
This will also generate a instanbul coverage report in the terminal as well as a coverage report in the ./nyc_output directory
yarn test
yarn test:ci
- This package script could be ran as a git hook on the CI/CD build pipeline
- This will output a mocha-junit-reporter xml file
Task 1 is the only mandatory task. Tasks 2 and 3 can be completed to demonstrate skills in those areas if you have them. The output of the assignment tasks should be uploaded to a personal github repo and the link to the repo provided by email for assessment.
Create a unique application using industry best practice in the React framework using typescript.
- The application should simply present a table of data from a simple data source
- The application should save the state of the table using Redux
- The application should allow the user a cell within the table
- The application should persist the changed state to Redux
- Use mocha and chai to create a BDD/TDD approach to unit testing Task 1
- The unit test should demonstrate code coverage of Task 1
- Demonstrate how the unit test could be automated as part of a CI/CD pipeline.
- Extend Task1 with a React button to call a REST API
- Implement the API using AWS API gateway and a Lambda function
- Provide Cloud Formation or Terraform template for deployment of API
- The Lambda function should return the region of AWS it is deployed in and the runtime version used for the lambda
- The React application should display the results of the API call.
The assessment will be conducted on the contents of the repo you provide. The assessment will guide Origin in the selection process. We encourage you to present only your own work as a follow up interview may ask you about your assignment task.
- Task 1 should take no longer than 1 hour to complete.
- Task 2 should take no longer than 1 hour to complete.
- Task 3 should take no longer than 2 hours to complete.
Please submit assignments to your recruitment agency or service provider company via email.