Skip to content

Commit 1e2488a

Browse files
committed
add spec for css request
1 parent c27421f commit 1e2488a

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

Gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@ group :development, :test do
1010
gem "debug"
1111
gem "rake"
1212
gem "rspec"
13+
gem "ruby-lsp-rspec", require: false
1314
end

spec/with_rails/exceptions_app_spec.rb

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,32 @@
22

33
require "action_controller"
44
require "i18n"
5+
require "json"
56
require "spec_helper"
67

78
RSpec.describe "exceptions_app" do
89
include Rack::Test::Methods
910
def app = RestfulError::ExceptionsApp.new
1011

12+
let(:body) { request; last_response.body }
13+
1114
shared_context "html" do
1215
let(:request) { get "/#{status_code}", {}, 'HTTP_ACCEPT' => 'text/html' }
13-
let(:body) { request; last_response.body }
1416
end
1517
shared_context "json" do
1618
let(:request) { get "/#{status_code}", {}, 'HTTP_ACCEPT' => 'application/json' }
17-
let(:json) { request; JSON.parse(last_response.body) }
19+
let(:json) { JSON.parse(body) }
1820
end
1921

2022
before do
2123
env "action_dispatch.exception", exception
2224
end
2325
describe RestfulError[404] do
2426
let(:status_code) { 404 }
27+
let(:exception) { described_class.new }
2528
context 'html' do
2629
include_context "html"
2730
context 'default message' do
28-
let(:exception) { described_class.new }
2931
it do
3032
expect(body).to include "<p>Page not found</p>"
3133
# expect(body).to include "</html>" # layout is rendered
@@ -36,7 +38,6 @@ def app = RestfulError::ExceptionsApp.new
3638
context 'json' do
3739
include_context "json"
3840
context 'default message' do
39-
let(:exception) { described_class.new }
4041
it do
4142
expect(json).to eq({status_code: 404, reason_phrase: "Not Found", response_message: 'Page not found'}.stringify_keys)
4243
expect(last_response.status).to eq status_code
@@ -55,6 +56,14 @@ def response_message = "custom message"
5556
end
5657
end
5758
end
59+
context 'css' do
60+
let(:request) { get "/#{status_code}", {}, 'HTTP_ACCEPT' => 'text/css' }
61+
62+
it do
63+
expect(body).not_to include "<p>"
64+
expect(last_response.status).to eq status_code
65+
end
66+
end
5867
end
5968
context ActionController::RoutingError do
6069
let(:exception) { described_class.new("no route") }

0 commit comments

Comments
 (0)