Sha256: 4d0815b14b30b47aacf56d7b731c2ee68480e43cf8eaca8dbf12c6b4355b6163

Contents?: true

Size: 1.23 KB

Versions: 3

Compression:

Stored size: 1.23 KB

Contents

describe FeaturedWork, type: :model do
  let(:feature) { described_class.create(work_id: "99") }

  it "has a file" do
    expect(feature.work_id).to eq "99"
  end

  it "does not allow six features" do
    5.times do |n|
      expect(described_class.create(work_id: n.to_s)).to_not be_new_record
    end
    described_class.create(work_id: "6").tap do |sixth|
      expect(sixth).to be_new_record
      expect(sixth.errors.full_messages).to eq ["Limited to 5 featured works."]
    end
    expect(described_class.count).to eq 5
  end

  describe "can_create_another?" do
    subject { described_class }
    context "when none exist" do
      describe '#can_create_another?' do
        subject { super().can_create_another? }
        it { is_expected.to be true }
      end
    end
    context "when five exist" do
      before do
        5.times do |n|
          described_class.create(work_id: n.to_s)
        end
      end

      describe '#can_create_another?' do
        subject { super().can_create_another? }
        it { is_expected.to be false }
      end
    end
  end

  describe "#order" do
    subject { described_class.new(order: 5) }

    describe '#order' do
      subject { super().order }
      it { is_expected.to eq 5 }
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sufia-7.0.0.beta3 spec/models/featured_work_spec.rb
sufia-7.0.0.beta2 spec/models/featured_work_spec.rb
sufia-7.0.0.beta1 spec/models/featured_work_spec.rb