Is your feature request related to a problem? Please describe.
We need a setup script to configure the new develop-postgres branch.
The functionality must be equivalent to the setup script in the develop branch
Describe the solution you'd like
PRs related to setup.ts require a high degree of manual verification by our reviewers and errors are frequent.
We frequently add new configuration parameters to our code base.
The changes mean that the setup.ts file is always being modified.
Most PRs that modify this file introduce various types of failure.
Your job is to make the execution of the setup.ts file be:
foolproof
intuitive to use
easier and simpler to use
A tech novice or new contributor should be able to install the API without issue.
For the successful completion of this issue:
Write code to thoroughly test the setup.ts file without manually inputting responses to prompts, including:
all relevant functions, methods and classes where applicable.
all user prompts
Ensure that running the tests is a part of our existing PR and Husky git commit workflows
This may mean making changes to the setup.ts file.
Describe alternatives you've considered
N/A
Approach to be followed (optional)
This issue may require the refactoring of this script file to make it:
Easier to test
Easier to maintain
Testing must verify that the:
Default values for input are correct:
When a parameter is already configured
When a parameter is not configured
Functionality when parameters are missing from the configuration is maintained
Sequencing of the prompts is maintained
Configuration parameters that rely on any external APIs (eg. database, mail) must be tested.
The tests don't hang when testing these APIs whether or not the API connectivity is validated
Preexisting comments in the test configuration file are maintained when the final configuration is saved
Final configuration isn't saved until the last question is answered. In other words, hitting CTRL-C at any point before the last question will not affect the original configuration.
Wording of the prompts in all scenarios is unchanged
Test database loads without issue
Previously correctly answered questions are not repeated
Correct values are echoed when:
entered,
updated or
previously found in the configuration
Prompts correctly bypass sections that the user doesn't want to configure.
For example, there are multiple SMTP and Redis configuration parameters.
Optional parameter sections: If the person installing the API doesn't want to update SMTP parameters they should be skipped, otherwise prompted
Mandatory parameter sections: If the person installing the API doesn't want to update configured mandatory Redis parameters, they should be skipped, otherwise prompted
Input of mandatory parameters cannot be avoided if they are not previously configured
Plus any other tests that could avoid failure based on the PR comments for the issues below.
Other items to consider include:
The test file must be located in the existing tests/ directory
The test file has good readability
Not making any changes to files in the .github directory
Additional context
These are issues where setup has been modified and in most cases have introduced more errors:
Is your feature request related to a problem? Please describe.
develop-postgres
branch.develop
branchDescribe the solution you'd like
PRs related to
setup.ts
require a high degree of manual verification by our reviewers and errors are frequent.setup.ts
file is always being modified.Your job is to make the execution of the
setup.ts
file be:A tech novice or new contributor should be able to install the API without issue.
For the successful completion of this issue:
setup.ts
file without manually inputting responses to prompts, including:git commit
workflowsThis may mean making changes to the
setup.ts
file.Describe alternatives you've considered
Approach to be followed (optional)
This issue may require the refactoring of this script file to make it:
Testing must verify that the:
Plus any other tests that could avoid failure based on the PR comments for the issues below.
Other items to consider include:
tests/
directory.github
directoryAdditional context
These are issues where setup has been modified and in most cases have introduced more errors:
Potential internship candidates Please read this if you are planning to apply for a Palisadoes Foundation internship