Files
nairobi/spec/features/localization_spec.rb
Javi Martín 1ffaa680a3 Create correct translation when visiting root page
We set `I18n.locale = :en` before each test, and so creating a new card
will automatically create English translations.

So visiting the Spanish page won't show the card, since no Spanish
translation exists for it. If we visit the klingon page after doing so,
the last used locale (Spanish) will still be used, and so the test will
fail.

Specifically creating Spanish translations instead of the English ones
makes the translations visible when visiting the Spanish homepage.
2018-09-26 16:09:09 +02:00

52 lines
1.5 KiB
Ruby

require 'rails_helper'
feature 'Localization' do
scenario 'Wrong locale' do
Globalize.with_locale(:es) do
create(:widget_card, title: 'Bienvenido a CONSUL',
description: 'Software libre para la participación ciudadana.',
link_text: 'Más información',
link_url: 'http://consulproject.org/',
header: true)
end
visit root_path(locale: :es)
visit root_path(locale: :klingon)
expect(page).to have_text('Bienvenido a CONSUL')
end
scenario 'Available locales appear in the locale switcher' do
visit '/'
within('.locale-form .js-location-changer') do
expect(page).to have_content 'Español'
expect(page).to have_content 'English'
end
end
scenario 'The current locale is selected' do
visit '/'
expect(page).to have_select('locale-switcher', selected: 'English')
end
scenario 'Changing the locale', :js do
visit '/'
expect(page).to have_content('Language')
select('Español', from: 'locale-switcher')
expect(page).to have_content('Idioma')
expect(page).not_to have_content('Language')
expect(page).to have_select('locale-switcher', selected: 'Español')
end
scenario 'Locale switcher not present if only one locale' do
allow(I18n).to receive(:available_locales).and_return([:en])
visit '/'
expect(page).not_to have_content('Language')
expect(page).not_to have_css('div.locale')
end
end