Sha256: 00d373e4b753b7e0bc336a0f888cdb16022fc1e38c473a913105b4115122d2e5

Contents?: true

Size: 1.42 KB

Versions: 45

Compression:

Stored size: 1.42 KB

Contents

require_relative "spec_helper"

describe "Sequel::Plugins::SplitValues" do
  before do
    @c = Class.new(Sequel::Model(:a))
    @c.columns :id, :x
    @c.plugin :split_values
  end

  it "stores non-columns in a separate hash" do
    @c.dataset = @c.dataset.with_fetch(:id=>1, :x=>2, :y=>3)
    o = @c.first
    @c.db.reset

    o.must_equal @c.load(:id=>1, :x=>2)
    o[:id].must_equal 1
    o[:x].must_equal 2
    o[:y].must_equal 3
    {@c.load(:id=>1, :x=>2)=>4}[o].must_equal 4
    o.values.must_equal(:id=>1, :x=>2)

    o.save
    @c.db.sqls.must_equal ["UPDATE a SET x = 2 WHERE (id = 1)"]
  end

  it "handles false values" do
    @c.dataset = @c.dataset.with_fetch(:id=>1, :x=>false, :y=>3)
    o = @c.first
    @c.db.reset

    o.must_equal @c.load(:id=>1, :x=>false)
    o[:id].must_equal 1
    o[:x].must_equal false
    o[:y].must_equal 3
    {@c.load(:id=>1, :x=>false)=>4}[o].must_equal 4
    o.values.must_equal(:id=>1, :x=>false)

    o.save
    @c.db.sqls.must_equal ["UPDATE a SET x = 'f' WHERE (id = 1)"]
  end

  it "handles nil values" do
    @c.dataset = @c.dataset.with_fetch(:id=>1, :x=>nil, :y=>3)
    o = @c.first
    @c.db.reset

    o.must_equal @c.load(:id=>1, :x=>nil)
    o[:id].must_equal 1
    o[:x].must_be_nil
    o[:y].must_equal 3
    {@c.load(:id=>1, :x=>nil)=>4}[o].must_equal 4
    o.values.must_equal(:id=>1, :x=>nil)

    o.save
    @c.db.sqls.must_equal ["UPDATE a SET x = NULL WHERE (id = 1)"]
  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/split_values_spec.rb
tdiary-5.1.1 vendor/bundle/ruby/2.7.0/gems/sequel-5.29.0/spec/extensions/split_values_spec.rb
tdiary-5.1.1 vendor/bundle/ruby/2.6.0/gems/sequel-5.26.0/spec/extensions/split_values_spec.rb
sequel-5.29.0 spec/extensions/split_values_spec.rb
sequel-5.28.0 spec/extensions/split_values_spec.rb
sequel-5.27.0 spec/extensions/split_values_spec.rb
tdiary-5.1.0 vendor/bundle/gems/sequel-5.26.0/spec/extensions/split_values_spec.rb
sequel-5.26.0 spec/extensions/split_values_spec.rb
sequel-5.25.0 spec/extensions/split_values_spec.rb
sequel-5.24.0 spec/extensions/split_values_spec.rb
sequel-5.23.0 spec/extensions/split_values_spec.rb
sequel-5.22.0 spec/extensions/split_values_spec.rb
sequel-5.21.0 spec/extensions/split_values_spec.rb
sequel-5.20.0 spec/extensions/split_values_spec.rb
tdiary-5.0.13 vendor/bundle/gems/sequel-5.18.0/spec/extensions/split_values_spec.rb
sequel-5.19.0 spec/extensions/split_values_spec.rb
tdiary-5.0.12.1 vendor/bundle/gems/sequel-5.18.0/spec/extensions/split_values_spec.rb
sequel-5.18.0 spec/extensions/split_values_spec.rb
sequel-5.17.0 spec/extensions/split_values_spec.rb
sequel-5.16.0 spec/extensions/split_values_spec.rb