Sha256: 3731269f828ff2f31caee29c896fc5a4f4235ef04139b29ad70ea626aac09cd4

Contents?: true

Size: 1.84 KB

Versions: 4

Compression:

Stored size: 1.84 KB

Contents

require 'spec_helper'

describe Worthwhile::LeaseService do

  before { GenericWork.destroy_all }

  let(:future_date) { 2.days.from_now }
  let(:past_date) { 2.days.ago }

  let!(:work_with_expired_lease1) do
    build(:generic_work, lease_expiration_date: past_date.to_s).tap do |work|
      work.save(validate: false)
    end
  end

  let!(:work_with_expired_lease2) do
    build(:generic_work, lease_expiration_date: past_date.to_s).tap do |work|
      work.save(validate: false)
    end
  end

  let!(:work_with_lease_in_effect) { create(:generic_work, lease_expiration_date: future_date.to_s)}
  let!(:work_without_lease) { create(:generic_work)}

  describe "#assets_with_expired_leases" do
    it "returns an array of assets with expired lease" do
      returned_pids = subject.assets_with_expired_leases.map(&:pid)
      expect(returned_pids).to include work_with_expired_lease1.pid,work_with_expired_lease2.pid
      expect(returned_pids).to_not include work_with_lease_in_effect.pid,work_without_lease.pid
    end
  end

  describe "#assets_under_lease" do
    it "returns an array of assets with active leases" do
      returned_pids = subject.assets_under_lease.map(&:pid)
      expect(returned_pids).to include work_with_expired_lease1.pid,work_with_expired_lease2.pid,work_with_lease_in_effect.pid
      expect(returned_pids).to_not include work_without_lease.pid
    end
  end

  describe "#assets_with_deactivated_leases" do
    before do
      work_with_expired_lease1.deactivate_lease!
      work_with_expired_lease1.save!
      work_with_lease_in_effect.deactivate_lease!
      work_with_lease_in_effect.save!
    end
    it "returns an array of assets with deactivated leases" do
      returned_pids = subject.assets_with_deactivated_leases.map(&:pid)
      expect(returned_pids).to eq [work_with_expired_lease1.id, work_with_lease_in_effect.id ]
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
worthwhile-0.1.2 spec/services/lease_service_spec.rb
worthwhile-0.1.1 spec/services/lease_service_spec.rb
worthwhile-0.1.0 spec/services/lease_service_spec.rb
worthwhile-0.0.3 spec/services/lease_service_spec.rb