File: gaffe_spec.rb

package info (click to toggle)
ruby-gaffe 1.2.0-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 204 kB
  • sloc: ruby: 221; makefile: 7
file content (34 lines) | stat: -rw-r--r-- 1,121 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
require 'spec_helper'

describe Gaffe do
  describe :ClassMethods do
    describe :configure do
      let(:configuration) { Gaffe.configuration }
      before do
        Gaffe.configure do |config|
          config.foo = :bar
          config.bar = :foo
        end
      end

      it { expect(configuration.foo).to eql :bar }
      it { expect(configuration.bar).to eql :foo }
    end

    describe :enable! do
      let(:env) { test_request.env }
      let(:action_double) { double(call: proc { [400, {}, 'SOMETHING WENT WRONG.'] }) }
      before { Gaffe.enable! }

      specify do
        expect(Gaffe).to receive(:errors_controller_for_request).with(env).and_call_original
        expect(Gaffe::ErrorsController).to receive(:action).with(:show).and_return(action_double)
        expect(action_double).to receive(:call).with(env)

        # This is the line Rails itself calls
        # https://github.com/rails/rails/blob/fee49a10492efc99409c03f7096d5bd3377b0bbc/actionpack/lib/action_dispatch/middleware/show_exceptions.rb#L43
        Rails.application.config.exceptions_app.call(env)
      end
    end
  end
end