diff options
Diffstat (limited to 'docs/en/developers/03_Running_tests.md')
| -rw-r--r-- | docs/en/developers/03_Running_tests.md | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/docs/en/developers/03_Running_tests.md b/docs/en/developers/03_Running_tests.md index 197a01057..be2414d80 100644 --- a/docs/en/developers/03_Running_tests.md +++ b/docs/en/developers/03_Running_tests.md @@ -34,3 +34,43 @@ They are performed with [GitHub Actions](https://github.com/FreshRSS/FreshRSS/ac This ensures your code will not introduce some kind of regression. We will not merge a PR if tests fail so we will ask you to fix any bugs before reviewing your code. If you are interested, you can take a look at [the configuration file](https://github.com/FreshRSS/FreshRSS/blob/edge/.github/workflows/tests.yml). + +## Using feed snapshots + +As feed data is volatile, it’s better to work with snapshots when debugging some issues. +You can find the description to retrieve a snapshot [here](06_Reporting_Bugs.md#how-to-provide-feed-data). + +To serve those snapshots, you can use a mock server. +Here we will demonstrate how to work with [WireMock](https://wiremock.org/) but other solutions exist. +Here are the steps to start using the WireMock mock server: + +1. Go to the mock server home folder. +If you do not have one, you need to create one. +1. Inside the mock server home folder, create the ___file_ and _mappings_ folders. +1. Copy or move your snapshots in the ___file_ folder. +1. Create the _feed.json_ file in the _mappings_ folder with the following content: + ```js + { + "request": { + "method": "GET", + "urlPathPattern": "/.*" + }, + "response": { + "status": 200, + "bodyFileName": "{{request.pathSegments.[0]}}", + "transformers": ["response-template"], + "headers": { + "Content-Type": "application/rss+xml" + } + } + } + ``` +1. Launch the containerized server with the following command: + ```bash + # <PORT> is the port used on the host to communicate with the server + # <NETWORK> is the name of the docker network used (by default, it’s freshrss-network) + docker run -it --rm -p <PORT>:8080 --name wiremock --network <NETWORK> -v $PWD:/home/wiremock wiremock/wiremock:latest-alpine --local-response-templating + ``` +1. You can access the `<RSS>` mock file directly: + * from the host by sending a GET request to `http://localhost:<PORT>/<RSS>`, + * from any container connected on the same network by sending a GET request to `http://wiremock:8080/<RSS>`. |
