Sha256: a5c51ce096e7c176acf023ec3f1c3729563fd266130c64e0d7179761e40c7dcc

Contents?: true

Size: 1.21 KB

Versions: 55

Compression:

Stored size: 1.21 KB

Contents

require 'rails_helper'

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

  describe 'scopes' do
    before(:each) do
      @a = create(klass, marked_as_spam: nil)
      @b = create(klass, marked_as_spam: false)
      @c = create(klass, marked_as_spam: true)
    end

    it(:spam) { expect(model.spam).to eq [@c] }
    it(:not_spam) { expect(model.not_spam).to eq [@a, @b] }
  end

  describe 'defaults' do
    it 'not set' do
      expect(build(klass)).not_to be_marked_as_spam
    end

    describe 'set' do
      it :true do
        expect(build(klass, marked_as_spam: true)).to be_marked_as_spam
      end

      it :false do
        expect(build(klass, marked_as_spam: false)).not_to be_marked_as_spam
      end
    end
  end

  it '#mark_as_spam!' do
    object = build(klass)
    object.mark_as_spam!
    expect(object).to be_marked_as_spam
  end

  it '#unmark_as_spam!' do
    object = build(klass, marked_as_spam: true)
    object.unmark_as_spam!
    expect(object).not_to be_marked_as_spam
  end

  it '.respond_to?' do
    expect(model).to respond_to(:spam, :not_spam)
  end

  it '#respond_to?' do
    expect(model.new).to respond_to(:mark_as_spam!)
  end
end

Version data entries

55 entries across 55 versions & 1 rubygems

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