aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test/application/middleware/flash_test.rb
blob: f5d459c695ce84efb13f1bc80fb9264bd1e7846e (plain) (blame)
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
35
36
37
38
39
40
41
42
43
44
45
46
require 'isolation/abstract_unit'
require 'rack/test'

module ApplicationTests
  class FlashTest < ActiveSupport::TestCase
    include ActiveSupport::Testing::Isolation
    include Rack::Test::Methods

    def setup
      build_app
      boot_rails
    end

    def teardown
      teardown_app
    end

    test 'calling reset_session on request does not trigger an error for API apps' do
      add_to_config 'config.api_only = true'

      controller :test, <<-RUBY
        class TestController < ApplicationController
          def dump_flash
            request.reset_session
            render plain: 'It worked!'
          end
        end
      RUBY

      app_file 'config/routes.rb', <<-RUBY
        Rails.application.routes.draw do
          get '/dump_flash' => "test#dump_flash"
        end
      RUBY

      app 'development'

      get '/dump_flash'

      assert_equal 200, last_response.status
      assert_equal 'It worked!', last_response.body

      refute Rails.application.middleware.include?(ActionDispatch::Flash)
    end
  end
end