Sha256: 6275b65e0bda95d8e558e368f567f3b923ecbecc205085ac36d0e6c9a93cd02e

Contents?: true

Size: 1.48 KB

Versions: 13

Compression:

Stored size: 1.48 KB

Contents

require 'rails_helper'

shared_examples_for :taggable do
  let(:klass) { described_class.to_s.underscore.to_sym }
  subject { create(klass) }

  it '#tags' do
    tag = create(:tag, locale: :nl, name: 'foo', seo_slug: 'foo')
    subject.tagged_items.create!(tag: tag)
    expect(subject.tags(:nl)).to eq [tag]
  end

  it '#tags_string' do
    tag1 = create(:tag, locale: :nl, name: 'foo', seo_slug: 'foo')
    tag2 = create(:tag, locale: :nl, name: 'bar', seo_slug: 'bar')
    subject.tagged_items.create!(tag: tag1)
    subject.tagged_items.create!(tag: tag2)
    expect(subject.tags_string(:nl)).to eq 'foo,bar'
  end

  describe '#related' do
    let(:second) { create(klass) }
    let(:tag1) { create(:tag, locale: :nl, name: 'foo', seo_slug: 'foo') }
    let(:tag2) { create(:tag, locale: :nl, name: 'bar', seo_slug: 'bar') }

    it :blank do
      subject.tagged_items.create!(tag: tag1)
      second.tagged_items.create!(tag: tag2)
      expect(subject.related(:nl)).to eq []
    end

    it :results do
      subject.tagged_items.create!(tag: tag1)
      subject.tagged_items.create!(tag: tag2)
      second.tagged_items.create!(tag: tag1)
      second.tagged_items.create!(tag: tag2)
      expect(subject.related(:nl)).to eq [second]
      expect(second.related(:nl)).to eq [subject]
    end
  end

  it '#taggable?' do
    expect(subject).to be_taggable
  end

  it '#respond_to?' do
    expect(described_class.new).to respond_to(:tagged_items, :related, :tags, :tags_string, :taggable?)
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
udongo-7.9.0 spec/support/concerns/taggable.rb
udongo-7.8.1 spec/support/concerns/taggable.rb
udongo-7.8.0 spec/support/concerns/taggable.rb
udongo-7.7.2 spec/support/concerns/taggable.rb
udongo-7.7.1 spec/support/concerns/taggable.rb
udongo-7.7.0 spec/support/concerns/taggable.rb
udongo-7.6.2 spec/support/concerns/taggable.rb
udongo-7.6.1 spec/support/concerns/taggable.rb
udongo-7.6.0 spec/support/concerns/taggable.rb
udongo-7.5.1 spec/support/concerns/taggable.rb
udongo-7.5.0 spec/support/concerns/taggable.rb
udongo-7.4.2 spec/support/concerns/taggable.rb
udongo-7.4.1 spec/support/concerns/taggable.rb