Sha256: c491c9cd74701207ed430bd1e4c90ad51ef6265277fa9f5367ce04dacae5ae84

Contents?: true

Size: 1.82 KB

Versions: 10

Compression:

Stored size: 1.82 KB

Contents

describe Hyrax::Statistics::Depositors::Summary do
  let(:user1) { create(:user) }
  let(:user2) { create(:user) }
  let!(:old_work) { create(:work, user: user1) }
  let(:two_days_ago_date) { Time.zone.now - 2.days }

  let(:start_date) { nil }
  let(:end_date) { nil }
  let!(:work1) { create(:work, user: user1) }
  let!(:work2) { create(:work, user: user2) }
  let!(:collection1) { create(:public_collection, user: user1) }

  before do
    allow(old_work).to receive(:create_date).and_return(two_days_ago_date.to_datetime)
    old_work.update_index
  end

  let(:service) { described_class.new(start_date, end_date) }

  describe "#depositors" do
    subject { service.depositors }

    context "when dates are empty" do
      it "gathers user deposits" do
        expect(subject).to eq [{ key: user1.user_key, deposits: 2, user: user1 },
                               { key: user2.user_key, deposits: 1, user: user2 }]
      end
    end

    context "when dates are present" do
      let(:start_date) { 1.day.ago.beginning_of_day }
      let(:end_date) { 0.days.ago.end_of_day }
      it "gathers user deposits during a date range" do
        expect(subject).to match_array [{ key: user1.user_key, deposits: 1, user: user1 },
                                        { key: user2.user_key, deposits: 1, user: user2 }]
      end
    end

    context "when a depositor is not found" do
      before do
        allow(service).to receive(:results).and_return('bob' => '')
      end

      it "raises an error" do
        expect { subject }.to raise_error "Unable to find user 'bob'\nResults was: {\"bob\"=>\"\"}"
      end
    end
  end

  describe "#query" do
    subject { service.send(:query) }

    it "sets facet.limit to the number of users" do
      allow(User).to receive(:count).and_return(14)
      expect(subject['facet.limit']).to eq 14
    end
  end
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
hyrax-1.1.1 spec/services/hyrax/statistics/depositors/summary_spec.rb
hyrax-1.1.0 spec/services/hyrax/statistics/depositors/summary_spec.rb
hyrax-1.0.5 spec/services/hyrax/statistics/depositors/summary_spec.rb
hyrax-1.0.4 spec/services/hyrax/statistics/depositors/summary_spec.rb
hyrax-1.0.3 spec/services/hyrax/statistics/depositors/summary_spec.rb
hyrax-1.0.2 spec/services/hyrax/statistics/depositors/summary_spec.rb
hyrax-1.0.1 spec/services/hyrax/statistics/depositors/summary_spec.rb
hyrax-1.0.0.rc2 spec/services/hyrax/statistics/depositors/summary_spec.rb
hyrax-1.0.0.rc1 spec/services/hyrax/statistics/depositors/summary_spec.rb
test_hyrax-0.0.1.alpha spec/services/hyrax/statistics/depositors/summary_spec.rb