Sha256: 5b4063f0aac2364a05f7d6d75fe756711509fbb69b20b580bb3bb097584a9bd0

Contents?: true

Size: 1.39 KB

Versions: 2

Compression:

Stored size: 1.39 KB

Contents

require 'rspec'
require 'faker'
require 'sequel'

require_relative '../lib/philtre/grinder.rb'
require_relative '../lib/philtre/sequel_extensions.rb'
require_relative '../lib/philtre/core_extensions.rb'

Sequel.extension :blank
Sequel.extension :core_extensions

describe Sequel::Dataset do
  subject do
    Sequel.mock[:t].filter( :name.lieu, :title.lieu ).order( :birth_year.lieu )
  end

  describe '#grind' do
    it 'generates sql' do
      subject.grind.sql.should == 'SELECT * FROM t'
    end

    it 'yields grinder' do
      # predeclare so it survives the lambda
      outer_grr = nil
      subject.grind{|grr| outer_grr = grr }.sql.should == 'SELECT * FROM t'
      outer_grr.should be_a(Philtre::Grinder)
    end
  end

  it 'passes apply_unknown'

  describe '#roller' do
    it 'result has to_dataset' do
      rlr = subject.roller do
        where title: 'Exalted Fromaginess'
      end

      # This depends on Ripar, so it's a bit fragile
      rlr.should respond_to(:__class__)
      rlr.__class__.should == Ripar::Roller

      rlr.should_not respond_to(:datset)
      rlr.should respond_to(:to_dataset)
    end
  end

  describe '#rolled' do
    it 'gives back a rolled dataset' do
      rlr = subject.rolled do
        where title: 'Exalted Fromaginess'
      end
      rlr.should be_a(Sequel::Dataset)
      rlr.should_not respond_to(:datset)
      rlr.should_not respond_to(:to_dataset)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
philtre-0.1.0 spec/dataset_spec.rb
philtre-0.0.1 spec/dataset_spec.rb