Sha256: f9d8eb24058010c222df5b174e5e015c01fa1684905d6369d5602946121db6d6

Contents?: true

Size: 1.37 KB

Versions: 45

Compression:

Stored size: 1.37 KB

Contents

require_relative "spec_helper"

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

  it "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.must_equal 'SELECT a, b FROM test'
  end

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

  it "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.must_equal 'SELECT a, c AS b FROM test'
  end

  it "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.must_equal 'SELECT a, c AS b FROM test'
    d.select_remove(Sequel.as(:c, :b)).sql.must_equal 'SELECT a, b() FROM test'
  end
end

Version data entries

45 entries across 41 versions & 2 rubygems

Version Path
tdiary-5.1.2 vendor/bundle/ruby/2.6.0/gems/sequel-5.26.0/spec/extensions/select_remove_spec.rb
tdiary-5.1.1 vendor/bundle/ruby/2.6.0/gems/sequel-5.26.0/spec/extensions/select_remove_spec.rb
tdiary-5.1.1 vendor/bundle/ruby/2.7.0/gems/sequel-5.29.0/spec/extensions/select_remove_spec.rb
sequel-5.29.0 spec/extensions/select_remove_spec.rb
sequel-5.28.0 spec/extensions/select_remove_spec.rb
sequel-5.27.0 spec/extensions/select_remove_spec.rb
tdiary-5.1.0 vendor/bundle/gems/sequel-5.26.0/spec/extensions/select_remove_spec.rb
sequel-5.26.0 spec/extensions/select_remove_spec.rb
sequel-5.25.0 spec/extensions/select_remove_spec.rb
sequel-5.24.0 spec/extensions/select_remove_spec.rb
sequel-5.23.0 spec/extensions/select_remove_spec.rb
sequel-5.22.0 spec/extensions/select_remove_spec.rb
sequel-5.21.0 spec/extensions/select_remove_spec.rb
sequel-5.20.0 spec/extensions/select_remove_spec.rb
tdiary-5.0.13 vendor/bundle/gems/sequel-5.18.0/spec/extensions/select_remove_spec.rb
sequel-5.19.0 spec/extensions/select_remove_spec.rb
tdiary-5.0.12.1 vendor/bundle/gems/sequel-5.18.0/spec/extensions/select_remove_spec.rb
sequel-5.18.0 spec/extensions/select_remove_spec.rb
sequel-5.17.0 spec/extensions/select_remove_spec.rb
sequel-5.16.0 spec/extensions/select_remove_spec.rb