require 'spec_helper' describe 'setting locale', :type => :feature do def with_locale(locale) I18n.locale = locale Spree::Frontend::Config[:locale] = locale yield I18n.locale = I18n.default_locale Spree::Frontend::Config[:locale] = 'en' end context 'shopping cart link and page' do before do I18n.backend.store_translations(:fr, :spree => { :cart => 'Panier', :shopping_cart => 'Panier' }) end it 'should be in french' do with_locale('fr') do visit spree.root_path click_link 'Panier' expect(page).to have_content('Panier') end end end context 'checkout form validation messages' do include_context 'checkout setup' let(:error_messages) do { 'en' => 'This field is required.', 'fr' => 'Ce champ est obligatoire.', 'de' => 'Dieses Feld ist ein Pflichtfeld.', } end def check_error_text(text) %w(firstname lastname address1 city).each do |attr| expect(find(".field#b#{attr} label.error").text).to eq(text) end end it 'shows translated jquery.validate error messages', js: true do visit spree.root_path click_link mug.name click_button 'add-to-cart-button' error_messages.each do |locale, message| with_locale(locale) do visit '/checkout/address' find('.form-buttons input[type=submit]').click check_error_text message end end end end end