hot_topic
Version, currently main branch1 version
- main branchlatestJun 16, 2025
github.com/jgaskins/hot_topic
A fake HTTP client for making requests to your HTTP::Handler classes
15 stars
2 dependents
License: MIT
Installation
# Add this to your shard.yml
dependencies:
hot_topic:
github: jgaskins/hot_topic
branch: mainmain is a branch, not a release, so this tracks it rather than pinning a version.
Then run:
shards installshard.yml
- Crystal
1.2.0- License
- MIT
- Author
- Jamie Gaskins <jgaskins@hey.com>
Dependencies
This version declares no dependencies.
README
# HotTopic
Stubbing HTTP operations
## Srsly why did you name it this?
Hotmail is HTML with extra letters, and HotTopic is HTTP with extra letters. Also, it makes me laugh.
## Installation
1. Add the dependency to your `shard.yml`:
```yaml
dependencies:
hot_topic:
github: jgaskins/hot_topic
```
2. Run `shards install`
## Usage
In your test, instantiate a `HotTopic` client with an `HTTP::Handler` entrypoint (could be middleware or the specific route handler), call [any `HTTP::Client` method](https://crystal-lang.org/api/1.2.2/HTTP/Client.html) on it to get a response back as if you had made the request over HTTP.
Let's say you have an `HTTP::Handler` called `MyApp`:
```crystal
require "http"
class MyApp
include HTTP::Handler
def call(context)
# ...
end
end
```
In your test, you can instantiate `HotTopic` with an instance of `MyApp`:
```crystal
require "hot_topic"
client = HotTopic.new(MyApp.new)
```
Then you can operate on `client` as if it were a real HTTP client as if it were an `HTTP::Client` request to a remote server. It even returns an actual [`HTTP::Client::Response`](https://crystal-lang.org/api/1.2.2/HTTP/Client/Response.html):
```crystal
response = client.get("/")
# do things with the response
```
## Contributing
1. Fork it (<https://github.com/jgaskins/hot_topic/fork>)
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request
## Contributors
- [Jamie Gaskins](https://github.com/jgaskins) - creator and maintainer
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This branch
- Branch
main- Seen
- Jun 16, 2025
- Crystal
1.2.0- Indexed
- yes
Dependents
Repository
github.com/jgaskins/hot_topic
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 12, 2026
- Synced
- Aug 12, 2026
- Versions
- 1