Challenge Overview
Note - This challenge has shorter review and appeals phases
The Role-Based Curriculum App (RBC App) is a tool created to automate the processes of role-based curriculum checklist management. The Role-Based Curriculum App is utilized to track the overall proficiency and capabilities of associates to perform role-based tasks.
We've launched multiple backend, frontend and integration challenges to build this app. In this challenge, we are looking to implement the missing backend tests for various entities. The earlier backend tests challenge focused on Users, Teams, Checklists and Scores. Please run the existing tests to familiarise yourself.
In this challenge we will implement tests that primarily test the following:
-
Does the endpoint perform the required actions (functional) - for each of the endpoints in scope we need tests that verify the endpoint makes the correct changes to the database and return the correct data in response.
-
Does it respect role based access and restrictions - we have six roles in the app (User, RoleMentor, Learning Catalyst, Manager, Admin, App Admin) and each of them can call different endpoints. For example both Manager and admin roles can add users to a team, but manager can do that only for teams that he is manager of, while admin can do it for all teams. We have a roles matrix in the attached document - a table detailing what each of the roles can and can not do in the system. Tests should cover success/failure tests for each role. If there are bugs in the current code that cause these tests to fail, fixing them is in scope (it's just simple role checks).
Scope
Endpoints in scope for this challenge are
- Heatmap
- Calendar
- Training plan
- RBC Request
- Score type,
- Lookup
Guidelines
. Using Spring TestContext framework is mandatory and annotation based configuration is preferred over xml
. Make sure all your tests are well documented
. Create separate tests for various error conditions as needed
. Make sure to cover various roles in your tests
. In general, please follow the existing tests as a convention
Provided Artefacts
- Backend code
- Swagger & API mapping document for various pages
- Frontend code frontend repo (please see forums for how to access) - just for reference
- RBC App Business Requirements - document containing the role matrix
Final Submission Guidelines
Submit a deployment/verification guide
Submit a brief video showing how to run your tests