1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-12-10 21:24:20 +01:00
fab-manager/test/meta/i18n_test.rb
Nicolas Florentin 043ff6d47e wip
2023-07-20 16:55:22 +02:00

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