
### Description of the change This adds an environment for unit testing our bash scripts, using [BATS](https://github.com/bats-core/bats-core). It implements first tests for `config_environment.sh`. ### Benefits Writing unit tests for bash scripts documents the expected behavior and allows it being a quality gate in our CI. ### Possible drawbacks Not everyone is familiar with this approach and unit testing framework. Me neither, it took me some hours to get into it. ### Applicable issues - Related to #691 where an issue in `config_environment.sh` was detected. It doesn't fixes it yet. This will be a dedicated Pull Request. ### Additional information I've verified that the changes for Renovate are indeed working. You may wonder why there is only one `run $PROJECT_ROOT/scripts/init-containers/config/config_environment.sh` and many `run execute_test_script` calls. Usually, testing a script itself would be executing `run $PROJECT_ROOT/scripts/init-containers/config/config_environment.sh`. You then can assert the exit code and other things. Since the `config_environment.sh` exports environment variables and we are not able to access them from outside a `run` execution, the function `execute_test_script` wraps our script execution between environment comparison. Doing so allows us capture environment variables that were added/removed during script execution. Reviewed-on: https://gitea.com/gitea/helm-chart/pulls/724 Reviewed-by: pat-s <pat-s@noreply.gitea.com> Co-authored-by: justusbunsi <sk.bunsenbrenner@gmail.com> Co-committed-by: justusbunsi <sk.bunsenbrenner@gmail.com>
45 lines
1.8 KiB
Markdown
45 lines
1.8 KiB
Markdown
<!--
|
|
Before you open the request please review the following guidelines and tips to help it be more easily integrated:
|
|
|
|
- Describe the scope of your change - i.e. what the change does.
|
|
- Describe any known limitations with your change.
|
|
- Please run any tests or examples that can exercise your modified code.
|
|
|
|
Thank you for contributing! We will try to review, test and integrate the change as soon as we can.
|
|
-->
|
|
|
|
### Description of the change
|
|
|
|
<!-- Describe the scope of your change - i.e. what the change does. -->
|
|
|
|
### Benefits
|
|
|
|
<!-- What benefits will be realized by the code change? -->
|
|
|
|
### Possible drawbacks
|
|
|
|
<!-- Describe any known limitations with your change -->
|
|
|
|
### Applicable issues
|
|
|
|
<!-- Enter any applicable Issues here (You can reference an issue using #). Please remove this section if there is no referenced issue. -->
|
|
- Fixes #
|
|
|
|
### Additional information
|
|
|
|
<!-- If there's anything else that's important and relevant to your pull request, mention that information here. Please remove this section if it remains empty. -->
|
|
|
|
### ⚠ BREAKING
|
|
|
|
<!-- If there's a breaking change, please shortly describe in which way users are affected and how they can mitigate it. If there are no breakings, please remove this section. -->
|
|
|
|
### Checklist
|
|
|
|
<!-- [Place an '[X]' (no spaces) in all applicable fields. Please remove unrelated fields.] -->
|
|
|
|
- [ ] Parameters are documented in the `values.yaml` and added to the `README.md` using [readme-generator-for-helm](https://github.com/bitnami-labs/readme-generator-for-helm)
|
|
- [ ] Breaking changes are documented in the `README.md`
|
|
- [ ] Helm templating unittests are added (required when changing anything in `templates` folder)
|
|
- [ ] Bash unittests are added (required when changing anything in `scripts` folder)
|
|
- [ ] All added template resources MUST render a namespace in metadata
|