Sha256: 3e6e18ac283a1e71184c661ed01c63f11d9bc0183cd7b05b2c6b29535549f722

Contents?: true

Size: 1.83 KB

Versions: 55

Compression:

Stored size: 1.83 KB

Contents

require 'rails_helper'

shared_examples_for :translatable do
  let(:model) { described_class }
  let(:klass) { model.to_s.underscore.to_sym }

  describe '#locales' do
    it 'defaults to an empty array' do
      expect(build(klass).locales.class).to eq Array
    end

    it 'updates when a translation is added' do
      object = create(klass)
      field = model.translatable_fields_list.first
      object.translation(:nl).send("#{field}=", 'foo')
      object.save

      # 13/01 - if this is done with eq instead of include, the searchable spec
      # fails because of the following in app/models/concerns/searchable.rb:
      #
      #   Udongo.config.i18n.app.locales.each do |locale|
      #     value = translation(locale.to_sym).send(key) <---
      #     ...
      #   end
      expect(object.locales).to include 'nl'
    end
  end

  it '#translatable?' do
    expect(build(klass)).to be_translatable
  end

  describe 'scopes' do
    describe '.with_locale' do
      it 'no results' do
        expect(model.with_locale(:nl)).to eq []
      end

      it 'dutch only' do
        field = model.translatable_fields_list.first

        object = create(klass)
        object.translation(:nl).send("#{field}=", 'foo')
        object.save

        expect(model.with_locale(:nl)).to eq [object]
      end

      it 'dutch and english' do
        field = model.translatable_fields_list.first

        object = create(klass)
        object.translation(:nl).send("#{field}=", 'foo')
        object.translation(:en).send("#{field}=", 'foo')
        object.save

        expect(model.with_locale(:nl)).to eq [object]
      end
    end
  end

  it '#respond_to?' do
    expect(build(klass)).to respond_to(:translation, :translatable?)
  end

  it '.respond_to?' do
    expect(model).to respond_to(
      :translatable_field, :translatable_fields, :with_locale
    )
  end
end

Version data entries

55 entries across 55 versions & 1 rubygems

Version Path
udongo-7.9.0 spec/support/concerns/translatable.rb
udongo-7.8.1 spec/support/concerns/translatable.rb
udongo-7.8.0 spec/support/concerns/translatable.rb
udongo-7.7.2 spec/support/concerns/translatable.rb
udongo-7.7.1 spec/support/concerns/translatable.rb
udongo-7.7.0 spec/support/concerns/translatable.rb
udongo-7.6.2 spec/support/concerns/translatable.rb
udongo-7.6.1 spec/support/concerns/translatable.rb
udongo-7.6.0 spec/support/concerns/translatable.rb
udongo-7.5.1 spec/support/concerns/translatable.rb
udongo-7.5.0 spec/support/concerns/translatable.rb
udongo-7.4.2 spec/support/concerns/translatable.rb
udongo-7.4.1 spec/support/concerns/translatable.rb
udongo-7.4.0 spec/support/concerns/translatable.rb
udongo-7.3.5 spec/support/concerns/translatable.rb
udongo-7.3.4 spec/support/concerns/translatable.rb
udongo-7.3.3 spec/support/concerns/translatable.rb
udongo-7.3.2 spec/support/concerns/translatable.rb
udongo-7.3.1 spec/support/concerns/translatable.rb
udongo-7.2.1 spec/support/concerns/translatable.rb