require_relative '../../test_helper' class SimplificatorInfrastructure::ErrorSummaryTest < ActiveSupport::TestCase setup do I18n.available_locales = [:de, :fr] I18n.default_locale = :de end # test 'extracts exception from env' do # exception = RuntimeError.new # summary = SimplificatorInfrastructure::ErrorSummary.new('action_dispatch.exception' => exception) # assert_equal exception, summary.exception # end # test 'extracts params from env' do # params = {a: 1, b: 2} # summary = SimplificatorInfrastructure::ErrorSummary.new('action_dispatch.request.parameters' => params) # assert_equal params, summary.params # end # test 'determines status_code from exception' do # exception = ActionController::RoutingError.new("howdy") # summary = SimplificatorInfrastructure::ErrorSummary.new('action_dispatch.exception' => exception) # assert_equal 404, summary.status_code # end # test 'locale: check path' do # summary = SimplificatorInfrastructure::ErrorSummary.new( # 'REQUEST_PATH' => '/fr/bli' # ) # assert_equal :fr, summary.locale # end test 'locale: check params if not in path' do summary = SimplificatorInfrastructure::ErrorSummary.new( 'REQUEST_PATH' => '/xx/bli', 'action_dispatch.request.parameters' => { 'locale' => 'fr' } ) assert_equal :fr, summary.locale end # test 'locale: check accept header if not in path or params' do # summary = SimplificatorInfrastructure::ErrorSummary.new( # 'REQUEST_PATH' => '/xx/bli', # 'action_dispatch.request.parameters' => { # 'locale' => 'xx', # }, # 'HTTP_ACCEPT_LANGUAGE' => 'fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4' # ) # assert_equal :fr, summary.locale # end # test 'locale: use default if not in path or params or accept header' do # summary = SimplificatorInfrastructure::ErrorSummary.new( # 'REQUEST_PATH' => '/xx/bli', # 'action_dispatch.request.parameters' => { # 'locale' => 'xx', # }, # 'HTTP_ACCEPT_LANGUAGE' => 'xx-FR,fr;q=0.8,xx-US;q=0.6,xx;q=0.4' # ) # assert_equal :de, summary.locale # end end