From c0b4bb67ebe2a4e79ab0efe56feb1c20e4c3988a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sen=C3=A9n=20Rodero=20Rodr=C3=ADguez?= Date: Fri, 31 May 2019 20:26:16 +0200 Subject: [PATCH] Adapt shared specs to new translations interface --- spec/shared/features/edit_translatable.rb | 67 +++++++++++------------ spec/shared/features/new_translatable.rb | 16 +++--- 2 files changed, 39 insertions(+), 44 deletions(-) diff --git a/spec/shared/features/edit_translatable.rb b/spec/shared/features/edit_translatable.rb index 6aff7408d..64cb30fd4 100644 --- a/spec/shared/features/edit_translatable.rb +++ b/spec/shared/features/edit_translatable.rb @@ -126,7 +126,7 @@ shared_examples "edit_translatable" do |factory_name, path_name, input_fields, t scenario "Add a translation", :js do visit path - select "Français", from: "translation_locale" + select "Français", from: :add_language fields.each { |field| fill_in_field field, :fr, with: text_for(field, :fr) } click_button update_button_text @@ -135,10 +135,10 @@ shared_examples "edit_translatable" do |factory_name, path_name, input_fields, t expect_page_to_have_translatable_field field, :en, with: text_for(field, :en) - click_link "Español" + select "Español", from: :select_language expect_page_to_have_translatable_field field, :es, with: text_for(field, :es) - click_link "Français" + select "Français", from: :select_language expect_page_to_have_translatable_field field, :fr, with: text_for(field, :fr) end @@ -149,13 +149,13 @@ shared_examples "edit_translatable" do |factory_name, path_name, input_fields, t visit path - select "Français", from: "translation_locale" + select "Français", from: :add_language fill_in_field field, :fr, with: "" click_button update_button_text expect(page).to have_css "#error_explanation" - click_link "Français" + select "Français", from: :select_language expect_page_to_have_translatable_field field, :fr, with: "" end @@ -163,7 +163,7 @@ shared_examples "edit_translatable" do |factory_name, path_name, input_fields, t scenario "Update a translation", :js do visit path - click_link "Español" + select "Español", from: :select_language field = fields.sample updated_text = "Corrección de #{text_for(field, :es)}" @@ -186,7 +186,7 @@ shared_examples "edit_translatable" do |factory_name, path_name, input_fields, t field = required_fields.sample visit path - click_link "Español" + select "Español", from: :select_language expect_page_to_have_translatable_field field, :es, with: text_for(field, :es) @@ -195,22 +195,21 @@ shared_examples "edit_translatable" do |factory_name, path_name, input_fields, t expect(page).to have_css "#error_explanation" - click_link "Español" + select "Español", from: :select_language expect_page_to_have_translatable_field field, :es, with: "" end scenario "Update a translation not having the current locale", :js do translatable.translations.destroy_all - translatable.translations.create( fields.map { |field| [field, text_for(field, :fr)] }.to_h.merge(locale: :fr) ) visit path - expect(page).not_to have_link "English" - expect(page).to have_link "Français" + expect_to_have_language_selected "Français" + expect_not_to_have_language "English" click_button update_button_text @@ -219,22 +218,22 @@ shared_examples "edit_translatable" do |factory_name, path_name, input_fields, t path = updated_path_for(translatable) visit path - expect(page).not_to have_link "English" - expect(page).to have_link "Français" + expect_to_have_language_selected "Français" + expect_not_to_have_language "English" end scenario "Remove a translation", :js do visit path - click_link "Español" + select "Español", from: :select_language click_link "Remove language" - expect(page).not_to have_link "Español" + expect_not_to_have_language "Español" click_button update_button_text visit path - expect(page).not_to have_link "Español" + expect_not_to_have_language "Español" end scenario "Remove a translation with invalid data", :js do @@ -244,19 +243,20 @@ shared_examples "edit_translatable" do |factory_name, path_name, input_fields, t visit path - click_link "Español" + select "Español", from: :select_language click_link "Remove language" - click_link "English" + select "English", from: :select_language fill_in_field field, :en, with: "" click_button update_button_text expect(page).to have_css "#error_explanation" expect_page_to_have_translatable_field field, :en, with: "" - expect(page).not_to have_link "Español" + expect_to_have_language_selected "English" + expect_not_to_have_language "Español" visit path - click_link "Español" + select "Español", from: :select_language expect_page_to_have_translatable_field field, :es, with: text_for(field, :es) end @@ -279,7 +279,7 @@ shared_examples "edit_translatable" do |factory_name, path_name, input_fields, t scenario "Add a translation for a locale with non-underscored name", :js do visit path - select "Português brasileiro", from: "translation_locale" + select "Português brasileiro", from: :add_language fields.each { |field| fill_in_field field, :"pt-BR", with: text_for(field, :"pt-BR") } click_button update_button_text @@ -293,24 +293,22 @@ shared_examples "edit_translatable" do |factory_name, path_name, input_fields, t end context "Globalize javascript interface" do - scenario "Highlight current locale", :js do + scenario "Select current locale when its translation exists", :js do visit path - expect(find("a.js-globalize-locale-link.is-active")).to have_content "English" + expect_to_have_language_selected "English" select("Español", from: "locale-switcher") - expect(find("a.js-globalize-locale-link.is-active")).to have_content "Español" + expect_to_have_language_selected "Español" end - scenario "Highlight selected locale", :js do + scenario "Select first locale of existing translations when current locale translation + does not exists", :js do + translatable.translations.where(locale: :en).destroy_all visit path - expect(find("a.js-globalize-locale-link.is-active")).to have_content "English" - - click_link "Español" - - expect(find("a.js-globalize-locale-link.is-active")).to have_content "Español" + expect_to_have_language_selected "Español" end scenario "Show selected locale form", :js do @@ -319,7 +317,7 @@ shared_examples "edit_translatable" do |factory_name, path_name, input_fields, t expect_page_to_have_translatable_field field, :en, with: text_for(field, :en) - click_link "Español" + select "Español", from: :select_language expect_page_to_have_translatable_field field, :es, with: text_for(field, :es) end @@ -327,12 +325,9 @@ shared_examples "edit_translatable" do |factory_name, path_name, input_fields, t scenario "Select a locale and add it to the form", :js do visit path - select "Français", from: "translation_locale" - - expect(page).to have_link "Français" - - click_link "Français" + select "Français", from: :add_language + expect_to_have_language_selected "Français" expect_page_to_have_translatable_field fields.sample, :fr, with: "" end diff --git a/spec/shared/features/new_translatable.rb b/spec/shared/features/new_translatable.rb index 2d30308b9..c96063a86 100644 --- a/spec/shared/features/new_translatable.rb +++ b/spec/shared/features/new_translatable.rb @@ -71,7 +71,7 @@ shared_examples "new_translatable" do |factory_name, path_name, input_fields, te visit new_translatable_path fill_in_new_translatable_form :en - select "Français", from: "translation_locale" + select "Français", from: :add_language fill_in_new_translatable_form :fr click_button create_button_text @@ -81,7 +81,7 @@ shared_examples "new_translatable" do |factory_name, path_name, input_fields, te scenario "Add only single translation at once not having the current locale", :js do visit new_translatable_path click_link "Remove language" - select "Français", from: "translation_locale" + select "Français", from: :add_language fill_in_new_translatable_form :fr click_button create_button_text @@ -92,7 +92,7 @@ shared_examples "new_translatable" do |factory_name, path_name, input_fields, te scenario "Add a translation for a locale with non-underscored name", :js do visit new_translatable_path click_link "Remove language" - select "Português brasileiro", from: "translation_locale" + select "Português brasileiro", from: :add_language fill_in_new_translatable_form :"pt-BR" click_button create_button_text @@ -127,7 +127,7 @@ shared_examples "new_translatable" do |factory_name, path_name, input_fields, te scenario "Highlight current locale", :js do visit new_translatable_path - expect(find("a.js-globalize-locale-link.is-active")).to have_content "English" + expect_to_have_language_selected "English" end scenario "Highlight new locale added", :js do @@ -135,24 +135,24 @@ shared_examples "new_translatable" do |factory_name, path_name, input_fields, te select("Español", from: "locale-switcher") - expect(find("a.js-globalize-locale-link.is-active")).to have_content "Español" + expect_to_have_language_selected "Español" end scenario "Select a locale and add it to the form", :js do visit new_translatable_path - select "Français", from: "translation_locale" + select "Français", from: :add_language - expect(find("a.js-globalize-locale-link.is-active")).to have_content "Français" expect_page_to_have_translatable_field fields.sample, :fr, with: "" end scenario "Remove a translation", :js do visit new_translatable_path + expect(find("#select_language").value).to eq "en" click_link "Remove language" - expect(page).not_to have_link "English" + expect_not_to_have_language("English") end context "Languages in use" do