Create test suite based on test plan
License and Copyright Notice
By submitting this issue or commenting on this issue, or contributing any content to this issue, you certify under the Developer Certificate of Origin that the content you post may be licensed under GPLv3 (for code) or CC-BY-SA 4.0 International (for non-code content).
What is the goal or the problem, and why is it important?
The goal of this issue is to create a solidified test suite. In a previous issue we decided on using bash scripts to curl the necessary endpoints to make sure they work.
How are you going to achieve the goal or solve the problem?
I am going to add a run_unit_test executable file to the project that will run a series of bash test scripts. These test scripts will be in a folder called unit_tests that will test the different components of the auth system. This is not meant to be a comprehensive test suite, I do not expect to hit every use case. This is an issue set up the framework, other members of the team will go back later to add the necessary tests.
What will be produced as a result of this effort and where will it live on GitLab?
a folder called unit_tests, a run_unit_test executable file, a successful run of the unit_tests.
Give a justification of weight or due date.
8 - This will take me some time to write sample tests and make sure they work with the auth system.
Who will do it, and what will they do?
@andyrewco will complete this entire task.
What was the outcome?
There is now a tests directory that contains two files. One file is an executable bash script that has a series of test suites that test the demo server. There is a function for asserting the equality and another for collecting errors. I used the sample script referenced in my resources as a baseline. I tested it on the server and successfully ran the test suite. Like I mentioned in the scope of the problem, this is not a finished test suite, we still need to add tests for the username and login (or more properly, bearer token) to see if it will log you in. But after doing research (see issue #31 (closed)), I realized it is going to take some time and is way over the scope of where we are currently. The configurations that need to happen are very complex and we've barely scratched the surface. Plus the documentation for keycloak and its services is limited and the resources for fixing bugs are almost nonexistent. I foresee keycloak being a problem in the future, especially considering that for our problem scope, we do not need the plethora of features that keycloak includes.