Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
activeadmin / spec / unit / helpers / collection_spec.rb
Size: Mime:
require 'rails_helper'

describe ActiveAdmin::Helpers::Collection do

  include ActiveAdmin::Helpers::Collection

  before(:all) do
    Post.delete_all
    Post.create!(title: "A post")
    Post.create!(title: "A post")
    Post.create!(title: "An other post")
  end

  after(:all) do
    Post.delete_all
  end

  describe "#collection_size" do
    it "should return the collection size for an ActiveRecord class" do
      expect(collection_size(Post.where(nil))).to eq 3
    end

    it "should return the collection size for an ActiveRecord::Relation" do
      expect(collection_size(Post.where(title: "A post"))).to eq 2
    end

    it "should return the collection size for a collection with group by" do
      expect(collection_size(Post.group(:title))).to eq 2
    end

    it "should return the collection size for a collection with group by, select and custom order" do
      expect(collection_size(Post.select("title, count(*) as nb_posts").group(:title).order("nb_posts"))).to eq 2
    end

    it "should take the defined collection by default" do
      def collection; Post.where(nil); end

      expect(collection_size).to eq 3

      def collection; Post.where(title: "An other post"); end

      expect(collection_size).to eq 1
    end
  end

  describe "#collection_is_empty?" do
    it "should return true when the collection is empty" do
      expect(collection_is_empty?(Post.where(title: "Non existing post"))).to be_truthy
    end

    it "should return false when the collection is not empty" do
      expect(collection_is_empty?(Post.where(title: "A post"))).to be_falsey
    end

    it "should take the defined collection by default" do
      def collection; Post.where(nil); end

      expect(collection_is_empty?).to be_falsey

      def collection; Post.where(title: "Non existing post"); end

      expect(collection_is_empty?).to be_truthy
    end
  end
end