mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2024-12-10 21:24:20 +01:00
45 lines
1.2 KiB
Ruby
45 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'test_helper'
|
|
|
|
class I18nTest < ActiveSupport::TestCase
|
|
# Do not use I18n.default_locale, reference locale can be different
|
|
REFERENCE_LOCALE = :fr
|
|
LOCALES_TO_CHECK = [:en]
|
|
|
|
SKIP_FILES = %w[
|
|
devise
|
|
rails
|
|
].freeze
|
|
|
|
FILE_IDS = Rails.root.glob("config/locales/*.#{REFERENCE_LOCALE}.yml")
|
|
.map { File.basename(_1) }
|
|
.map { _1.split(".")[0..-3].join(".") } # view.admin.fr.yml -> view.admin
|
|
.reject { SKIP_FILES.include?(_1) }
|
|
|
|
LOCALES_TO_CHECK.each do |locale|
|
|
FILE_IDS.each do |file_id|
|
|
test "#{file_id}.#{locale}.yml have same keys as #{file_id}.#{REFERENCE_LOCALE}.yml" do
|
|
reference_keys = read_keys(REFERENCE_LOCALE, file_id)
|
|
locale_keys = read_keys(locale, file_id)
|
|
|
|
reference_keys.each_with_index do |reference_key, index|
|
|
next if index.zero?
|
|
|
|
unless reference_key[0] == "#"
|
|
assert_equal reference_key, locale_keys[index], "invalid key at line #{index + 1}"
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
def read_keys(locale, file_id)
|
|
file = Rails.root.join("config/locales/#{file_id}.#{locale}.yml")
|
|
|
|
File.read(file)
|
|
.split("\n")
|
|
.map { _1.split(":", 2).first.to_s.strip }
|
|
end
|
|
end
|