Adds locale switcher js code + feature tests
This commit is contained in:
19
app/assets/javascripts/locale_switcher.js.coffee
Normal file
19
app/assets/javascripts/locale_switcher.js.coffee
Normal file
@@ -0,0 +1,19 @@
|
||||
App.LocaleSwitcher =
|
||||
|
||||
href_with_params: (query_params) ->
|
||||
loc = window.location
|
||||
|
||||
loc.protocol + "//" + loc.hostname +
|
||||
(if loc.port then ':' + loc.port else '') +
|
||||
loc.pathname +
|
||||
loc.hash +
|
||||
'?' + $.param(query_params)
|
||||
|
||||
initialize: ->
|
||||
$('.js-locale-switcher').on 'change', ->
|
||||
query_params = window.getQueryParameters()
|
||||
query_params['locale'] = $(this).val()
|
||||
window.location.assign(App.LocaleSwitcher.href_with_params(query_params))
|
||||
|
||||
|
||||
|
||||
29
spec/features/locale_switcher_spec.rb
Normal file
29
spec/features/locale_switcher_spec.rb
Normal file
@@ -0,0 +1,29 @@
|
||||
require 'rails_helper'
|
||||
|
||||
feature 'Locale Switcher' do
|
||||
|
||||
scenario 'Available locales appear in the locale switcher' do
|
||||
visit '/'
|
||||
|
||||
within('.js-locale-switcher') 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('Site language')
|
||||
|
||||
select('Español', from: 'locale-switcher')
|
||||
expect(page).to have_content('Idioma de la página')
|
||||
expect(page).to_not have_content('Site language')
|
||||
expect(page).to have_select('locale-switcher', selected: 'Español')
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user