Sha256: 6a5404717420e7095d31e515e02a6a271ea073e7687f1f1f484868b58b3f6906

Contents?: true

Size: 1.43 KB

Versions: 26

Compression:

Stored size: 1.43 KB

Contents

require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper")

describe "Dataset#select_remove" do
  before do
    @d = Sequel.mock.from(:test).extension(:select_remove)
    @d.columns :a, :b, :c
  end
  
  specify "should remove columns from the selected columns" do
    @d.sql.should == 'SELECT * FROM test'
    @d.select_remove(:a).sql.should == 'SELECT b, c FROM test'
    @d.select_remove(:b).sql.should == 'SELECT a, c FROM test'
    @d.select_remove(:c).sql.should == 'SELECT a, b FROM test'
  end

  specify "should work correctly if there are already columns selected" do
    d = @d.select(:a, :b, :c)
    d.columns :a, :b, :c
    d.select_remove(:c).sql.should == 'SELECT a, b FROM test'
  end

  specify "should have no effect if the columns given are not currently selected" do
    @d.select_remove(:d).sql.should == 'SELECT a, b, c FROM test'
  end

  specify "should handle expressions where Sequel can't determine the alias by itself" do
    d = @d.select(:a, Sequel.function(:b), Sequel.as(:c, :b))
    d.columns :a, :"b()", :b
    d.select_remove(:"b()").sql.should == 'SELECT a, c AS b FROM test'
  end

  specify "should remove expressions if given exact expressions" do
    d = @d.select(:a, Sequel.function(:b), Sequel.as(:c, :b))
    d.columns :a, :"b()", :b
    d.select_remove(Sequel.function(:b)).sql.should == 'SELECT a, c AS b FROM test'
    d.select_remove(Sequel.as(:c, :b)).sql.should == 'SELECT a, b() FROM test'
  end
end

Version data entries

26 entries across 26 versions & 2 rubygems

Version Path
sequel-4.22.0 spec/extensions/select_remove_spec.rb
sequel-4.21.0 spec/extensions/select_remove_spec.rb
sequel-4.20.0 spec/extensions/select_remove_spec.rb
sequel-4.19.0 spec/extensions/select_remove_spec.rb
sequel-4.18.0 spec/extensions/select_remove_spec.rb
sequel-4.17.0 spec/extensions/select_remove_spec.rb
sequel-4.16.0 spec/extensions/select_remove_spec.rb
asana2flowdock-1.0.0 vendor/bundle/ruby/1.9.1/gems/sequel-4.15.0/spec/extensions/select_remove_spec.rb
sequel-4.15.0 spec/extensions/select_remove_spec.rb
sequel-4.14.0 spec/extensions/select_remove_spec.rb
sequel-4.13.0 spec/extensions/select_remove_spec.rb
sequel-4.12.0 spec/extensions/select_remove_spec.rb
sequel-4.11.0 spec/extensions/select_remove_spec.rb
sequel-4.10.0 spec/extensions/select_remove_spec.rb
sequel-4.9.0 spec/extensions/select_remove_spec.rb
sequel-4.8.0 spec/extensions/select_remove_spec.rb
sequel-4.7.0 spec/extensions/select_remove_spec.rb
sequel-4.6.0 spec/extensions/select_remove_spec.rb
sequel-4.5.0 spec/extensions/select_remove_spec.rb
sequel-4.4.0 spec/extensions/select_remove_spec.rb