Validating I18n Implementation and Key Management in maybe-finance
This test suite validates internationalization (i18n) functionality in a Ruby application using the i18n-tasks gem. It ensures proper management of translation keys, file normalization, and consistent string interpolations across the application.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
maybe-finance/maybe
test/i18n_test.rb
require "i18n/tasks"
class I18nTest < ActiveSupport::TestCase
def setup
@i18n = I18n::Tasks::BaseTask.new
end
def test_no_missing_keys
missing_keys = @i18n.missing_keys(locales: [ :en ])
assert_empty missing_keys,
"Missing #{missing_keys.leaves.count} i18n keys, run `i18n-tasks missing' to show them"
end
def test_no_unused_keys
unused_keys = @i18n.unused_keys(locales: [ :en ])
assert_empty unused_keys,
"#{unused_keys.leaves.count} unused i18n keys, run `i18n-tasks unused' to show them"
end
def test_files_are_normalized
skip "Skipping file normalization test"
non_normalized = @i18n.non_normalized_paths(locales: [ :en ])
error_message = "The following files need to be normalized:
" \
"#{non_normalized.map { |path| " #{path}" }.join("
")}
" \
"Please run `i18n-tasks normalize' to fix"
assert_empty non_normalized, error_message
end
def test_no_inconsistent_interpolations
inconsistent_interpolations = @i18n.inconsistent_interpolations(locales: [ :en ])
error_message = "#{inconsistent_interpolations.leaves.count} i18n keys have inconsistent interpolations.
" \
"Please run `i18n-tasks check-consistent-interpolations' to show them"
assert_empty inconsistent_interpolations, error_message
end
end