https://github.com/yb66/rack-test-accepts
Helpers for rack-test for the HTTP_ACCEPT header.
https://github.com/yb66/rack-test-accepts
mime mime-types rack ruby spec testing
Last synced: 2 months ago
JSON representation
Helpers for rack-test for the HTTP_ACCEPT header.
- Host: GitHub
- URL: https://github.com/yb66/rack-test-accepts
- Owner: yb66
- License: mit
- Created: 2013-02-27T13:03:13.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2017-12-13T02:35:26.000Z (over 8 years ago)
- Last Synced: 2025-03-22T14:05:14.064Z (over 1 year ago)
- Topics: mime, mime-types, rack, ruby, spec, testing
- Language: Ruby
- Homepage:
- Size: 12.7 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
Awesome Lists containing this project
README
# Rack::Test::Accepts
Helpers for rack-test that mean I don't need to remember the accept header syntax, or whether to prepend HTTP to them.
### Build status ###
Master branch:
[](https://travis-ci.org/yb66/rack-test-accepts)
## Why? ##
Just to make life a bit easier.
## Installation
Add this line to your application's Gemfile:
gem 'rack-test-accepts'
And then execute:
$ bundle
Or install it yourself as:
$ gem install rack-test-accepts
## Usage
It's easy to add this in where it's needed by including it via the RSpec config:
require 'rack/test/accepts'
RSpec.configure do |config|
config.include Rack::Test::Accepts, :type => :request
then:
describe "My route", :type => :request do
let(:body) { { :key => "abcdef" }.to_json }
before do
post '/channel/create', body, env(:accepts_json)
end
It will work for any of the mime types listed in [Rack::Mime::MIME_TYPES](https://github.com/rack/rack/blob/master/lib/rack/mime.rb#L54) e.g.
get "/", {}, env(:accepts_zip)
put "/", {}, env(:accepts_xml)
delete "/", {}, env(:accepts_asm)
or whichever crazy format your routes want to accept.
### XHR ###
It also detects XHR in either of two ways.
get "/", {}, env(:accepts_xhr)
get "/", {}, env(:via_xhr)
There's no difference.
## Contributing
1. Fork it
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 new Pull Request