Sha256: a1006ccc26fef0ff44c66a391d6049fe7385c5776a6201ec3fe427c6deb52ba5

Contents?: true

Size: 1.85 KB

Versions: 18

Compression:

Stored size: 1.85 KB

Contents

# frozen_string_literal: true

RSpec.describe Search do
  let(:user) { User.create! email: 'xyz@example.com', password: 'xyz12345' }

  describe "query_params" do
    before do
      @search = described_class.new(user: user)
      @query_params = { q: "query", f: "facet" }
    end

    it "can save and retrieve the hash" do
      @search.query_params = @query_params
      @search.save!
      expect(described_class.find(@search.id).query_params).to eq @query_params
    end
  end

  describe "saved?" do
    it "is true when user_id is not NULL and greater than 0" do
      @search = described_class.new(user: user)
      @search.save!

      expect(@search).to be_saved
    end
    it "is false when user_id is NULL or less than 1" do
      @search = described_class.create
      expect(@search).not_to be_saved
    end
  end

  describe "delete_old_searches" do
    it "throws an ArgumentError if days_old is not a number" do
      expect { described_class.delete_old_searches("blah") }.to raise_error(ArgumentError)
    end

    it "throws an ArgumentError if days_old is equal to 0" do
      expect { described_class.delete_old_searches(0) }.to raise_error(ArgumentError)
    end

    it "throws an ArgumentError if days_old is less than 0" do
      expect { described_class.delete_old_searches(-1) }.to raise_error(ArgumentError)
    end

    it "destroy searches with no user_id that are older than X days" do
      described_class.destroy_all
      days_old = 7
      described_class.create!(created_at: Date.today)
      described_class.create!(created_at: Date.today - (days_old + 1).days)
      described_class.create!(user: user, created_at: Date.today)
      described_class.create!(user: user, created_at: Date.today - (days_old + 1).days)

      expect do
        described_class.delete_old_searches(days_old)
      end.to change(described_class, :count).by(-1)
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
blacklight-7.10.0 spec/models/search_spec.rb
blacklight-7.9.0 spec/models/search_spec.rb
blacklight-7.8.1 spec/models/search_spec.rb
blacklight-7.8.0 spec/models/search_spec.rb
blacklight-7.7.0 spec/models/search_spec.rb
blacklight-7.6.0 spec/models/search_spec.rb
blacklight-7.5.1 spec/models/search_spec.rb
blacklight-7.5.0 spec/models/search_spec.rb
blacklight-7.4.2 spec/models/search_spec.rb
blacklight-7.4.1 spec/models/search_spec.rb
blacklight-7.4.0 spec/models/search_spec.rb
blacklight-7.3.0 spec/models/search_spec.rb
blacklight-7.2.0 spec/models/search_spec.rb
blacklight-7.1.0 spec/models/search_spec.rb
blacklight-7.1.0.alpha spec/models/search_spec.rb
blacklight-7.0.1 spec/models/search_spec.rb
blacklight-7.0.0 spec/models/search_spec.rb
blacklight-7.0.0.rc2 spec/models/search_spec.rb