diff --git a/spec/support/system_helpers.rb b/spec/support/system_helpers.rb index ffbba177b3..44bbc64a59 100644 --- a/spec/support/system_helpers.rb +++ b/spec/support/system_helpers.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true module SystemHelpers + FRONTEND_TRANSLATIONS = JSON.parse Rails.root.join('app', 'javascript', 'mastodon', 'locales', 'en.json').read + def submit_button I18n.t('generic.save_changes') end @@ -16,4 +18,8 @@ module SystemHelpers def css_id(record) "##{dom_id(record)}" end + + def frontend_translations(key) + FRONTEND_TRANSLATIONS[key] + end end diff --git a/spec/system/account_notes_spec.rb b/spec/system/account_notes_spec.rb index c4054f204e..1d125e1984 100644 --- a/spec/system/account_notes_spec.rb +++ b/spec/system/account_notes_spec.rb @@ -18,7 +18,7 @@ RSpec.describe 'Account notes', :inline_jobs, :js, :streaming do visit_profile(other_account) note_text = 'This is a personal note' - fill_in 'Click to add note', with: note_text + fill_in frontend_translations('account_note.placeholder'), with: note_text # This is a bit awkward since there is no button to save the change # The easiest way is to send ctrl+enter ourselves diff --git a/spec/system/log_out_spec.rb b/spec/system/log_out_spec.rb index 2e52254ca0..ebbf5a5772 100644 --- a/spec/system/log_out_spec.rb +++ b/spec/system/log_out_spec.rb @@ -17,8 +17,9 @@ RSpec.describe 'Log out' do click_on 'Logout' end - expect(page).to have_title(I18n.t('auth.login')) - expect(page).to have_current_path('/auth/sign_in') + expect(page) + .to have_title(I18n.t('auth.login')) + .and have_current_path('/auth/sign_in') end end @@ -28,6 +29,8 @@ RSpec.describe 'Log out' do ignore_js_error(/Failed to load resource: the server responded with a status of 422/) visit root_path + expect(page) + .to have_css('body', class: 'app-body') within '.navigation-bar' do click_on 'Menu' @@ -39,8 +42,9 @@ RSpec.describe 'Log out' do click_on 'Log out' - expect(page).to have_title(I18n.t('auth.login')) - expect(page).to have_current_path('/auth/sign_in') + expect(page) + .to have_title(I18n.t('auth.login')) + .and have_current_path('/auth/sign_in') end end end diff --git a/spec/system/new_statuses_spec.rb b/spec/system/new_statuses_spec.rb index 480c77cf87..d14bcc0058 100644 --- a/spec/system/new_statuses_spec.rb +++ b/spec/system/new_statuses_spec.rb @@ -17,20 +17,7 @@ RSpec.describe 'NewStatuses', :inline_jobs, :js, :streaming do status_text = 'This is a new status!' within('.compose-form') do - fill_in "What's on your mind?", with: status_text - click_on 'Post' - end - - expect(page) - .to have_css('.status__content__text', text: status_text) - end - - it 'can be posted again' do - visit_homepage - status_text = 'This is a second status!' - - within('.compose-form') do - fill_in "What's on your mind?", with: status_text + fill_in frontend_translations('compose_form.placeholder'), with: status_text click_on 'Post' end diff --git a/spec/system/share_entrypoint_spec.rb b/spec/system/share_entrypoint_spec.rb index 7ccfee599a..b55ea31657 100644 --- a/spec/system/share_entrypoint_spec.rb +++ b/spec/system/share_entrypoint_spec.rb @@ -23,24 +23,14 @@ RSpec.describe 'Share page', :js, :streaming do fill_in_form expect(page) - .to have_css('.notification-bar-message', text: translations['compose.published.body']) + .to have_css('.notification-bar-message', text: frontend_translations('compose.published.body')) end def fill_in_form within('.compose-form') do - fill_in translations['compose_form.placeholder'], + fill_in frontend_translations('compose_form.placeholder'), with: 'This is a new status!' - click_on translations['compose_form.publish'] + click_on frontend_translations('compose_form.publish') end end - - def translations - # TODO: Extract to system spec helper for re-use? - JSON.parse( - Rails - .root - .join('app', 'javascript', 'mastodon', 'locales', 'en.json') - .read - ) - end end