# Forgejo end-to-end tests A series of tests scenarios and assertions covering [Forgejo](https://codeberg.org/forgejo/forgejo) and the [Forgejo runner](https://code.forgejo.org/forgejo/runner). They partially rely on [Forgejo actions](https://code.forgejo.org/actions) developped specifically for testing such as [setup-forgejo](https://code.forgejo.org/actions/setup-forgejo). They are designed to run using Forgejo releases and development versions compiled from designated repositories. ## Hacking ### Local testing To run and debug workflows from `actions/example-*`, from the root of the source directory, with docker and forgejo-curl.sh installed, mimic what `.forgejo/workflows/actions.yml` does. There may be some manual tweaking (such as creating temporary directories) because the tests run as root, but they do not need to run as root. * `forgejo-curl.sh logout` * `forgejo.sh setup root admin1234 codeberg.org/forgejo/forgejo 1.21` * `firefox http://$(cat forgejo-ip):3000` * `forgejo-runner.sh setup` * `export example=pull-request` * `export EXAMPLE_DIR=$(pwd)/actions/example-$example` * `$EXAMPLE_DIR/setup.sh` # if it exists * `$EXAMPLE_DIR/run.sh` or * `forgejo-test-helper.sh run_workflow actions/example-$example http://root:admin1234@$(cat forgejo-ip):3000 root example-$example setup-forgejo $(cat forgejo-token)` * `forgejo-runner.sh teardown` * `forgejo.sh teardown` ### Remote testing To reduce the runtime the following variables can be set to control the number of cases run by the [actions](.forgejo/workflows/actions.yml) tests. If set to **none** they are not run at all for that version of Forgejo. If it does not exist, all tests are run. * `V1_21_TESTS` * `V1_20_TESTS`