Module: TranslationHelpers
- Defined in:
- lib/decidim/dev/test/rspec_support/translation_helpers.rb
Overview
A collection of methods to help dealing with translated attributes.
Instance Method Summary collapse
-
#fill_in_editor(locator, params = {}) ⇒ Object
Handles how to fill a WYSIWYG editor.
-
#fill_in_i18n(field, tab_selector, localized_values) ⇒ Object
Handles how to fill in i18n form fields.
-
#fill_in_i18n_editor(field, tab_selector, localized_values) ⇒ Object
Handles how to fill in i18n form fields which uses a WYSIWYG editor.
-
#have_i18n_content(field, upcase: false, strip_tags: false) ⇒ Object
Checks that the current page has some translated content.
-
#have_no_i18n_content(field, upcase: false) ⇒ Object
Checks that the current page doesn’t have some translated content.
-
#t(key, scope: nil) ⇒ Object
Allows using the ‘t` shortcut inside specs just like in views.
-
#translated(field, locale: I18n.locale) ⇒ Object
Gives the localized version of the attribute for the given locale.
Instance Method Details
#fill_in_editor(locator, params = {}) ⇒ Object
Handles how to fill a WYSIWYG editor.
locator - The input field ID. The DOM element is selected using jQuery. params - A Hash of options
:with - A String value that will be entered in the form field. (required)
74 75 76 77 78 79 80 81 |
# File 'lib/decidim/dev/test/rspec_support/translation_helpers.rb', line 74 def fill_in_editor(locator, params = {}) raise ArgumentError if params[:with].blank? page.execute_script <<-SCRIPT $('##{locator}').siblings('.editor-container').find('.ql-editor')[0].innerHTML = "#{params[:with]}"; $('##{locator}').val("#{params[:with]}") SCRIPT end |
#fill_in_i18n(field, tab_selector, localized_values) ⇒ Object
Handles how to fill in i18n form fields.
field - the name of the field that should be filled, without the
locale-related part (e.g. `:participatory_process_title`)
tab_selector - a String representing the ID of the HTML element that holds
the tabs for this input. It ususally is `"#<attribute_name>-tabs" (e.g.
"#title-tabs")
localized_values - a Hash where the keys are the locales IDs and the values
are the values that will be entered in the form field.
48 49 50 51 52 |
# File 'lib/decidim/dev/test/rspec_support/translation_helpers.rb', line 48 def fill_in_i18n(field, tab_selector, localized_values) fill_in_i18n_fields(field, tab_selector, localized_values) do |locator, value| fill_in locator, with: value end end |
#fill_in_i18n_editor(field, tab_selector, localized_values) ⇒ Object
Handles how to fill in i18n form fields which uses a WYSIWYG editor.
field - the name of the field that should be filled, without the
locale-related part (e.g. `:participatory_process_title`)
tab_selector - a String representing the ID of the HTML element that holds
the tabs for this input. It ususally is `"#<attribute_name>-tabs" (e.g.
"#title-tabs")
localized_values - a Hash where the keys are the locales IDs and the values
are the values that will be entered in the form field.
63 64 65 66 67 |
# File 'lib/decidim/dev/test/rspec_support/translation_helpers.rb', line 63 def fill_in_i18n_editor(field, tab_selector, localized_values) fill_in_i18n_fields(field, tab_selector, localized_values) do |locator, value| fill_in_editor locator, with: value end end |
#have_i18n_content(field, upcase: false, strip_tags: false) ⇒ Object
Checks that the current page has some translated content. It strips the HTML tags from the field (in case there are any).
field - the field that holds the translations upcase - a boolean to indicate whether the string must be checked upcased or not.
26 27 28 |
# File 'lib/decidim/dev/test/rspec_support/translation_helpers.rb', line 26 def have_i18n_content(field, upcase: false, strip_tags: false) have_content(i18n_content(field, upcase: upcase, strip_tags: )) end |
#have_no_i18n_content(field, upcase: false) ⇒ Object
Checks that the current page doesn’t have some translated content. It strips the HTML tags from the field (in case there are any).
field - the field that holds the translations upcase - a boolean to indicate whether the string must be checked upcased or not.
35 36 37 |
# File 'lib/decidim/dev/test/rspec_support/translation_helpers.rb', line 35 def have_no_i18n_content(field, upcase: false) have_no_content(i18n_content(field, upcase: upcase)) end |
#t(key, scope: nil) ⇒ Object
Allows using the ‘t` shortcut inside specs just like in views
6 7 8 |
# File 'lib/decidim/dev/test/rspec_support/translation_helpers.rb', line 6 def t(key, scope: nil) I18n.t(key, scope: scope, raise: true) end |
#translated(field, locale: I18n.locale) ⇒ Object
Gives the localized version of the attribute for the given locale. The locale defaults to the application’s default one.
It is intended to be used to avoid the implementation details, so that the translated attributes implementation can change more easily.
15 16 17 18 19 |
# File 'lib/decidim/dev/test/rspec_support/translation_helpers.rb', line 15 def translated(field, locale: I18n.locale) return field if field.is_a?(String) field.try(:[], locale.to_s) end |