Files
gotenberg/test/integration/features/health.feature
2025-03-21 14:09:34 +01:00

107 lines
4.2 KiB
Gherkin

# TODO:
# 1. Check if down for each module.
# 2. Restarting modules do not make health check fail.
Feature: /health
Scenario: GET /health
Given I have a default Gotenberg container
When I make a "GET" request to Gotenberg at the "/health" endpoint
Then the response status code should be 200
Then the response header "Content-Type" should be "application/json; charset=utf-8"
Then the response body should match JSON:
"""
{
"status": "up",
"details": {
"chromium": {
"status": "up",
"timestamp": "ignore"
},
"libreoffice": {
"status": "up",
"timestamp": "ignore"
}
}
}
"""
Then the Gotenberg container should log the following entries:
| "path":"/health" |
Scenario: GET /health (No Logging)
Given I have a Gotenberg container with the following environment variable(s):
| API_DISABLE_HEALTH_CHECK_LOGGING | true |
When I make a "GET" request to Gotenberg at the "/health" endpoint
Then the response status code should be 200
Then the Gotenberg container should NOT log the following entries:
| "path":"/health" |
Scenario: GET /health (Gotenberg Trace)
Given I have a default Gotenberg container
When I make a "GET" request to Gotenberg at the "/health" endpoint with the following header(s):
| Gotenberg-Trace | get_health |
Then the response status code should be 200
Then the response header "Gotenberg-Trace" should be "get_health"
Then the Gotenberg container should log the following entries:
| "trace":"get_health" |
Scenario: GET /health (Basic Auth)
Given I have a Gotenberg container with the following environment variable(s):
| API_ENABLE_BASIC_AUTH | true |
| GOTENBERG_API_BASIC_AUTH_USERNAME | foo |
| GOTENBERG_API_BASIC_AUTH_PASSWORD | bar |
When I make a "GET" request to Gotenberg at the "/health" endpoint
Then the response status code should be 200
Scenario: GET /foo/health (Root Path)
Given I have a Gotenberg container with the following environment variable(s):
| API_ROOT_PATH | /foo/ |
When I make a "GET" request to Gotenberg at the "/foo/health" endpoint
Then the response status code should be 200
Scenario: HEAD /health
Given I have a default Gotenberg container
When I make a "HEAD" request to Gotenberg at the "/health" endpoint
Then the response status code should be 200
Then the response body should match string:
"""
"""
Then the Gotenberg container should log the following entries:
| "path":"/health" |
Scenario: HEAD /health (Gotenberg Trace)
Given I have a default Gotenberg container
When I make a "HEAD" request to Gotenberg at the "/health" endpoint with the following header(s):
| Gotenberg-Trace | head_health |
Then the response status code should be 200
Then the response header "Gotenberg-Trace" should be "head_health"
Then the Gotenberg container should log the following entries:
| "trace":"head_health" |
Scenario: HEAD /health (No Logging)
Given I have a Gotenberg container with the following environment variable(s):
| API_DISABLE_HEALTH_CHECK_LOGGING | true |
When I make a "HEAD" request to Gotenberg at the "/health" endpoint
Then the response status code should be 200
Then the Gotenberg container should NOT log the following entries:
| "path":"/health" |
Scenario: HEAD /health (Basic Auth)
Given I have a Gotenberg container with the following environment variable(s):
| API_ENABLE_BASIC_AUTH | true |
| GOTENBERG_API_BASIC_AUTH_USERNAME | foo |
| GOTENBERG_API_BASIC_AUTH_PASSWORD | bar |
When I make a "HEAD" request to Gotenberg at the "/health" endpoint
Then the response status code should be 200
Scenario: HEAD /foo/health (Root Path)
Given I have a Gotenberg container with the following environment variable(s):
| API_ROOT_PATH | /foo/ |
When I make a "HEAD" request to Gotenberg at the "/foo/health" endpoint
Then the response status code should be 200
# TODO:
# 1. Check if down for each module.
# 2. Restarting modules do not make health check fail.