Files
openfoodnetwork/spec/lib/i18n_digests_spec.rb
2024-05-09 12:24:41 +10:00

45 lines
1.3 KiB
Ruby

# frozen_string_literal: true
require 'spec_helper'
RSpec.describe I18nDigests do
describe "#build_digests" do
let(:available_locales) { ["en", "es"] }
let(:md5_hex_regex) { /([a-f0-9]){10}/ }
around do |example|
original = Rails.application.config.x.i18n_digests
example.run
Rails.application.config.x.i18n_digests = original
end
it "computes and stores digests for each locale file" do
Rails.application.config.x.i18n_digests = {}
I18nDigests.build_digests(available_locales)
expect(Rails.application.config.x.i18n_digests.keys).to eq [:en, :es]
expect(Rails.application.config.x.i18n_digests.values).to all match(md5_hex_regex)
expect(
Rails.application.config.x.i18n_digests[:en]
).to eq(Digest::MD5.hexdigest(Rails.root.join("config/locales/en.yml").read))
expect(
Rails.application.config.x.i18n_digests[:es]
).to eq(Digest::MD5.hexdigest(Rails.root.join("config/locales/es.yml").read))
end
end
describe "#for_locale" do
let(:digests) { { en: "as8d7a9sdh", es: "iausyd9asdh" } }
before do
allow(Rails).to receive_message_chain(:application, :config, :x, :i18n_digests) { digests }
end
it "returns the digest for a given locale" do
expect(I18nDigests.for_locale("en")).to eq "as8d7a9sdh"
end
end
end