spec/mongoid/fields/localized_spec.rb in mongoid-6.0.2 vs spec/mongoid/fields/localized_spec.rb in mongoid-6.0.3
- old
+ new
@@ -428,8 +428,99 @@
it "returns the string in the set locale" do
expect(value).to eq({ "de" => 100 })
end
end
+
+ context 'when the type is Boolean' do
+
+ before do
+ I18n.enforce_available_locales = false
+ ::I18n.locale = :de
+ end
+
+ after do
+ ::I18n.locale = :en
+ end
+
+ context "when the value is false" do
+
+ let(:field) do
+ described_class.new(:boolean_value, localize: true, type: Boolean)
+ end
+
+ let(:value) do
+ field.demongoize({ "de" => false })
+ end
+
+ it "returns the boolean value from the set locale" do
+ expect(value).to eq(false)
+ end
+ end
+
+ context "when the value is true" do
+
+ let(:field) do
+ described_class.new(:boolean_value, localize: true, type: Boolean)
+ end
+
+ let(:value) do
+ field.demongoize({"de" => true})
+ end
+
+ it "returns the boolean value from the set locale" do
+ expect(value).to eq(true)
+ end
+ end
+
+ context "when fallbacks are defined" do
+
+ before(:all) do
+ require "i18n/backend/fallbacks"
+ I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)
+ end
+
+ context "when the lookup does not need to use fallbacks" do
+
+ context "when the value is false" do
+
+ before do
+ ::I18n.fallbacks[:de] = [:en, :es]
+ end
+
+ let(:field) do
+ described_class.new(:boolean_value, localize: true, type: Boolean)
+ end
+
+ let(:value) do
+ field.demongoize({"de" => false})
+ end
+
+ it "returns the boolean value from the set locale" do
+ expect(value).to eq(false)
+ end
+ end
+
+ context "when the value is true" do
+
+ before do
+ ::I18n.fallbacks[:de] = [:en, :es]
+ end
+
+ let(:field) do
+ described_class.new(:boolean_value, localize: true, type: Boolean)
+ end
+
+ let(:value) do
+ field.demongoize({"de" => true})
+ end
+
+ it "returns the boolean value from the set locale" do
+ expect(value).to eq(true)
+ end
+ end
+ end
+ end
+ end
end
end
end