mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
45 lines
1.3 KiB
Ruby
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
|