Sha256: 5b32e721495201fb24f303a331c23fa7648bf3ed855931a9838a7a68c700adcb

Contents?: true

Size: 1.78 KB

Versions: 48

Compression:

Stored size: 1.78 KB

Contents

# frozen_string_literal: true

require 'spec_helper'

RSpec.describe Spree::LocaleController, type: :controller do
  include_context "fr locale"

  context 'switch_to_locale specified' do
    context "available locale" do
      it 'sets locale and redirects' do
        get :set, params: { switch_to_locale: 'fr' }
        expect(I18n.locale).to eq :fr
        expect(response).to redirect_to('/')
        expect(session[:locale]).to eq('fr')
        expect(flash[:notice]).to eq(I18n.t("spree.locale_changed"))
      end
    end

    context "unavailable locale" do
      it 'does not change locale and redirects' do
        get :set, params: { switch_to_locale: 'klingon' }
        expect(I18n.locale).to eq :en
        expect(response).to redirect_to('/')
        expect(flash[:error]).to eq(I18n.t("spree.locale_not_changed"))
      end
    end
  end

  context 'locale specified' do
    context "available locale" do
      it 'sets locale and redirects' do
        get :set, params: { locale: 'fr' }
        expect(I18n.locale).to eq :fr
        expect(response).to redirect_to('/')
        expect(flash[:notice]).to eq(I18n.t("spree.locale_changed"))
      end
    end

    context "unavailable locale" do
      it 'does not change locale and redirects' do
        get :set, params: { locale: 'klingon' }
        expect(I18n.locale).to eq :en
        expect(response).to redirect_to('/')
        expect(flash[:error]).to eq(I18n.t("spree.locale_not_changed"))
      end
    end
  end

  context 'both locale and switch_to_locale specified' do
    it 'uses switch_to_locale value' do
      get :set, params: { locale: 'en', switch_to_locale: 'fr' }
      expect(I18n.locale).to eq :fr
      expect(response).to redirect_to('/')
      expect(flash[:notice]).to eq(I18n.t("spree.locale_changed"))
    end
  end
end

Version data entries

48 entries across 48 versions & 3 rubygems

Version Path
solidus_frontend-2.10.5 spec/controllers/locale_controller_spec.rb
solidus_frontend-2.10.3 spec/controllers/locale_controller_spec.rb
solidus_starter_frontend-0.1.0 spec/controllers/locale_controller_spec.rb
solidus_frontend-2.10.2 spec/controllers/locale_controller_spec.rb
solidus_frontend-2.9.6 spec/controllers/locale_controller_spec.rb
solidus_frontend-2.8.6 spec/controllers/locale_controller_spec.rb
solidus_frontend-2.10.1 spec/controllers/locale_controller_spec.rb
solidus_frontend-2.9.5 spec/controllers/locale_controller_spec.rb
solidus_frontend-2.10.0 spec/controllers/locale_controller_spec.rb
solidus_frontend-2.9.4 spec/controllers/locale_controller_spec.rb
solidus_frontend-2.6.6 spec/controllers/locale_controller_spec.rb
solidus_frontend-2.7.4 spec/controllers/locale_controller_spec.rb
solidus_frontend-2.8.5 spec/controllers/locale_controller_spec.rb
solidus_frontend-2.9.3 spec/controllers/locale_controller_spec.rb
solidus_frontend-2.9.2 spec/controllers/locale_controller_spec.rb
solidus_frontend-2.10.0.beta1 spec/controllers/locale_controller_spec.rb
solidus_frontend-2.7.3 spec/controllers/locale_controller_spec.rb
solidus_frontend-2.6.5 spec/controllers/locale_controller_spec.rb
solidus_frontend-2.9.1 spec/controllers/locale_controller_spec.rb
solidus_frontend-2.9.0 spec/controllers/locale_controller_spec.rb