rustypaste/fixtures/README.md

55 lines
1.3 KiB
Markdown

## Fixtures
This directory contains the [test fixtures](https://en.wikipedia.org/wiki/Test_fixture) and a simple testing framework for `rustypaste`.
### Running fixtures
1. Build the project in debug mode: `cargo build`
2. Execute the runner script in this directory: `./test-fixtures.sh`
On `macOS` you need to have [coreutils](https://www.gnu.org/software/coreutils/) installed to run the script.
The simplest way is to install it via [Homebrew](https://brew.sh/): `brew install coreutils`
### Adding new fixtures
Create an appropriately named directory for the test fixture you want to add. e.g. `test-file-upload`
Each fixture directory should contain the following files:
```
test-file-upload/
├── config.toml
└── test.sh
```
- `config.toml`: Contains the `rustypaste` configuration. See [the default configuration](../config.toml).
- `test.sh`: Contains the helper functions for testing. The file format is the following:
```sh
#!/usr/bin/env bash
setup() {
# preparation
}
run_test() {
# assertions
}
teardown() {
# cleanup
}
```
These functions are executed in the order defined above.
See the [test-file-upload](./test-file-upload/test.sh) fixture for an example.
### Debugging
Set the `DEBUG` environment variable to `true` while executing the runner script:
```sh
$ DEBUG=true ./test-fixtures.sh
```