Sha256: a66da553adedaf9bcc9515c1db5cc554d8efe144cea8e6463a19a20b4712c8ef
Contents?: true
Size: 1.93 KB
Versions: 3
Compression:
Stored size: 1.93 KB
Contents
# frozen_string_literal: true require 'grape-entity' describe Grape::Middleware::Error do module ErrorSpec class ErrorEntity < Grape::Entity expose :code expose :static def static 'static text' end end class ErrApp class << self attr_accessor :error, :format def call(_env) throw :error, error end end end end def app opts = options Rack::Builder.app do use Spec::Support::EndpointFaker use Grape::Middleware::Error, **opts run ErrorSpec::ErrApp end end let(:options) { { default_message: 'Aww, hamburgers.' } } it 'sets the status code appropriately' do ErrorSpec::ErrApp.error = { status: 410 } get '/' expect(last_response.status).to eq(410) end it 'sets the status code based on the rack util status code symbol' do ErrorSpec::ErrApp.error = { status: :gone } get '/' expect(last_response.status).to eq(410) end it 'sets the error message appropriately' do ErrorSpec::ErrApp.error = { message: 'Awesome stuff.' } get '/' expect(last_response.body).to eq('Awesome stuff.') end it 'defaults to a 500 status' do ErrorSpec::ErrApp.error = {} get '/' expect(last_response.status).to eq(500) end it 'has a default message' do ErrorSpec::ErrApp.error = {} get '/' expect(last_response.body).to eq('Aww, hamburgers.') end context 'with http code' do let(:options) { { default_message: 'Aww, hamburgers.' } } it 'adds the status code if wanted' do ErrorSpec::ErrApp.error = { message: { code: 200 } } get '/' expect(last_response.body).to eq({ code: 200 }.to_json) end it 'presents an error message' do ErrorSpec::ErrApp.error = { message: { code: 200, with: ErrorSpec::ErrorEntity } } get '/' expect(last_response.body).to eq({ code: 200, static: 'static text' }.to_json) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
grape-1.8.0 | spec/grape/middleware/error_spec.rb |
grape-1.7.1 | spec/grape/middleware/error_spec.rb |
grape-1.7.0 | spec/grape/middleware/error_spec.rb |