Sha256: b0aa6766627c109ae2f8daa093cfd38f97c62886bd493f1dcbe9d8122db08846

Contents?: true

Size: 1.47 KB

Versions: 2

Compression:

Stored size: 1.47 KB

Contents

require 'spec_helper'

describe LostInTranslations::ActiveRecord do

  describe '.translate' do

    context "when translating a field" do
      before do
        @user_class = Class.new(ActiveRecord::Base) do
          self.table_name = 'users'

          include LostInTranslations::ActiveRecord

          translate :title, :first_name

          def translation_data
            {
              en: { first_name: 'Jon', last_name: 'Snow' },
              fr: { first_name: 'Jean', last_name: 'Neige' }
            }
          end
        end

        @user_class.create title: 'Cavaleiro', first_name: 'Joao', last_name: 'Neve'
        @user = @user_class.first
      end
      after { @user.destroy }

      it_behaves_like "a proper translator"
    end

    context "when a particular field is not translated" do
      before do
        @user_class = Class.new(ActiveRecord::Base) do
          self.table_name = 'users'

          include LostInTranslations::ActiveRecord

          translate :title, :first_name

          def translation_data
            {
              en: { first_name: 'Jon', last_name: 'Snow' },
              fr: { first_name: 'Jean', last_name: 'Neige' }
            }
          end
        end

        @user = @user_class.new title: 'Cavaleiro', first_name: 'Joao', last_name: 'Neve'
      end

      it "#field must return the original data" do
        I18n.with_locale(:en) do
          expect(@user.last_name).to eq 'Neve'
        end
      end
    end

  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
lost_in_translations-1.3.0 spec/lost_in_translations/active_record_spec.rb
lost_in_translations-1.2.0 spec/lost_in_translations/active_record_spec.rb