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
-
Add the dependency to your
shard.yml
:dependencies: hot_topic: github: jgaskins/hot_topic
-
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 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
:
require "http"
class MyApp
include HTTP::Handler
def call(context)
# ...
end
end
In your test, you can instantiate HotTopic
with an instance of MyApp
:
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
:
response = client.get("/")
# do things with the response
Contributing
- Fork it (https://github.com/jgaskins/hot_topic/fork)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
Contributors
- Jamie Gaskins - creator and maintainer