Sha256: 3058dbc94a87bb432abd8aaf0df3dd500d61d397b3ba4ca16015a502f5e29502

Contents?: true

Size: 1.78 KB

Versions: 31

Compression:

Stored size: 1.78 KB

Contents

require "datagrid"

#TODO: refactor this experimental shit
shared_examples_for "Datagrid" do
  describe "as Datagrid" do

    it "should have at least one entry if assets" do
      subject.assets.should_not be_empty
    end

    its(:data) {should_not be_empty}

    described_class.columns(:data => true).each do |column|
      describe "column ##{column.name}" do

        it "should has value in #data_hash" do
          subject.data_hash.first.should have_key(column.name)
        end

        it "should support order" do
          subject.order = column.name
          subject.assets.first.should_not be_nil
        end

        it "should support descending order" do
          subject.descending = true
          subject.assets.first.should_not be_nil
        end
      end

    end

    described_class.filters.each do |filter|
      describe "filter ##{filter.name}" do

        let(:filter_value) do
          
          case Datagrid::Filters::FILTER_TYPES.invert[filter.class]
          when :default, :string
            "text"
          when :date
            1.day.ago
          when :eboolean
            Datagrid::Filters::BooleanEnumFilter::YES
          when :boolean
            true
          when :integer
            1
          when :enum
            select = filter.select
            select = select.call(subject)  if select.respond_to?(:call)
            select.first.try(:last)
          else
            raise "unknown filter type: #{filter.class}"
          end.to_s
        end

        before(:each) do
          subject.attributes = {filter.name => filter_value}
          subject.send(filter.name).should_not be_nil
        end

        it "should be supported" do
          subject.assets.should_not be_nil 
          #TODO: better matcher.
        end
      end
    end

  end
end

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
datagrid-1.2.2 lib/datagrid/rspec.rb
datagrid-1.2.1 lib/datagrid/rspec.rb
datagrid-1.2.0 lib/datagrid/rspec.rb
datagrid-1.1.2 lib/datagrid/rspec.rb
datagrid-1.1.1 lib/datagrid/rspec.rb
datagrid-1.1.0 lib/datagrid/rspec.rb
datagrid-1.0.5 lib/datagrid/rspec.rb
datagrid-1.0.4 lib/datagrid/rspec.rb
datagrid-1.0.3 lib/datagrid/rspec.rb
datagrid-1.0.2 lib/datagrid/rspec.rb
datagrid-1.0.1 lib/datagrid/rspec.rb
datagrid-1.0.0 lib/datagrid/rspec.rb
datagrid-0.9.3 lib/datagrid/rspec.rb
datagrid-0.9.2 lib/datagrid/rspec.rb
datagrid-0.9.0 lib/datagrid/rspec.rb
datagrid-0.8.4 lib/datagrid/rspec.rb
datagrid-0.8.3 lib/datagrid/rspec.rb
datagrid-0.8.2 lib/datagrid/rspec.rb
datagrid-0.8.1 lib/datagrid/rspec.rb
datagrid-0.8.0 lib/datagrid/rspec.rb