๐ชถ wispie
A tiny Gleam library for rendering ๐ง wisp HTTP responses into readable text snapshots. Designed for use with ๐ฆโโฌ birdie snapshot testing, but also handy for debugging and logging.
โจ Features
- Converts
response.Response(wisp.Body)into a nicely formatted string. - Includes status, headers, and body โ all in one view.
- Automatically detects and formats body content:
wisp.Textโ pretty-printed based on content type (application/json,text/html, etc.)wisp.Bytesโ UTF-8 decoded when possible.wisp.Fileโ compact file reference with offset and limit.
- Integrates seamlessly with Birdie snapshot tests.
- Uses
contentyfor robustContent-Typeparsing.
๐งฉ Installation
gleam add wispie@1
๐ Usage
import gleam/http/response
import wisp
import wispie
import birdie
pub fn json_response_snapshot__test() {
let response_body =
"
{
\"id\": \"123\",
\"name\": \"John Doe\"
}
"
let response = wisp.json_response(response_body, 201)
response
|> wispie.response_to_string
|> birdie.snap("json_response")
}
produces a clean snapshot like
201
content-type: application/json
{
"id": "123",
"name": "John Doe"
}
Further documentation can be found at https://hexdocs.pm/wispie.
๐งโ๐ป Development
gleam test # Run the tests
๐งฐ Related
- ๐ง wisp โ A practical web framework for Gleam
- ๐ฆโโฌ birdie โ Snapshot testing in Gleam
- ๐งพ contenty โ HTTP Content-Type parsing in Gleam