Sha256: d278b3fa019c6625b1a8a7cee82d83890f54a139b1d3e5abc129386a58215671

Contents?: true

Size: 1.11 KB

Versions: 10

Compression:

Stored size: 1.11 KB

Contents

require_relative '../test_helper'

class I18nIntegrationTest < ActionDispatch::IntegrationTest

  def collect_combined_keys(hash, ns = nil)
    hash.collect do |k, v|
      keys = [ ]
      keys << collect_combined_keys(v, "#{ns}.#{k}") if v.is_a?(Hash)
      keys << "#{ns}.#{k}"
    end.flatten
  end

  def test_translations
    locales_path = File.expand_path('../../../config/locales', __FILE__)
    locales = Dir.glob("#{locales_path}/*.yml").collect do |file_path|
      File.basename(file_path, '.yml')
    end

    # collecting all locales
    locale_keys = { }
    locales.each do |locale|
      translations = YAML.load_file("#{locales_path}/#{locale}.yml")
      locale_keys[locale] = collect_combined_keys(translations[locale])
    end

    # Using en as reference
    reference = locale_keys[locales.delete('en')]
    assert reference.present?

    locale_keys.each do |locale, keys|
      missing = reference - keys
      assert missing.blank?, "#{locale} locale is missing: #{missing.join(', ')}"
      extra = keys - reference
      assert extra.blank?, "#{locale} locale has extra: #{extra.join(', ')}"
    end
  end
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
comfortable_mexican_sofa-1.12.11 test/integration/i18n_test.rb
comfy_blog-2.0.2 test/integration/i18n_test.rb
comfortable_mexican_sofa-2.0.2 test/integration/i18n_test.rb
comfortable_mexican_sofa-2.0.1 test/integration/i18n_test.rb
comfy_blog-2.0.1 test/integration/i18n_test.rb
comfy_blog-2.0.0 test/integration/i18n_test.rb
comfortable_mexican_sofa-2.0.0 test/integration/i18n_test.rb
comfortable_mexican_sofa-1.12.10 test/integration/i18n_test.rb
comfortable_mexican_sofa-1.12.9 test/integration/i18n_test.rb
comfortable_mexican_sofa-1.12.8 test/integration/i18n_test.rb