Sha256: cd334e7e167e9a906ae8fb77da9974387669ef268f83a6461baab2913145587f

Contents?: true

Size: 1.09 KB

Versions: 30

Compression:

Stored size: 1.09 KB

Contents

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

describe "Sequel::Plugins::BeforeAfterSave" do
  before do
    @db = Sequel.mock(:numrows=>1, :fetch=>{:id=>1, :name=>'b'})
    @c = Class.new(Sequel::Model(@db[:test]))
    @ds = @c.dataset
    @c.columns :id, :name
    @c.plugin :before_after_save
    @c.plugin :instance_hooks
    @o = @c.new
    @db.sqls
  end

  it "should reset modified flag before calling after hooks" do
    a = []
    @o.after_create_hook{@o.modified?.must_equal false; a << 1}
    @o.after_save_hook{@o.modified?.must_equal false; a << 2}

    @o.modified!
    @o.save
    a.must_equal [1, 2]

    @o.after_save_hook{@o.modified?.must_equal false; a << 2}
    @o.after_update_hook{@o.modified?.must_equal false; a << 3}
    a = []
    @o.modified!
    @o.save
    a.must_equal [3, 2]
  end

  it "should refresh the instance before calling after hooks" do
    a = []
    @o.after_create_hook{@o.values.must_equal(:id=>1, :name=>'b'); a << 1}
    @o.after_save_hook{@o.values.must_equal(:id=>1, :name=>'b'); a << 2}

    @o.save
    a.must_equal [1, 2]
  end
end

Version data entries

30 entries across 28 versions & 2 rubygems

Version Path
sequel-4.49.0 spec/extensions/before_after_save_spec.rb
sequel-4.48.0 spec/extensions/before_after_save_spec.rb
tdiary-5.0.5 vendor/bundle/gems/tdiary-5.0.4/vendor/bundle/gems/sequel-4.44.0/spec/extensions/before_after_save_spec.rb
tdiary-5.0.5 vendor/bundle/gems/sequel-4.47.0/spec/extensions/before_after_save_spec.rb
tdiary-5.0.5 vendor/bundle/gems/sequel-4.44.0/spec/extensions/before_after_save_spec.rb
sequel-4.47.0 spec/extensions/before_after_save_spec.rb
sequel-4.46.0 spec/extensions/before_after_save_spec.rb
sequel-4.45.0 spec/extensions/before_after_save_spec.rb
tdiary-5.0.4 vendor/bundle/gems/sequel-4.44.0/spec/extensions/before_after_save_spec.rb
sequel-4.44.0 spec/extensions/before_after_save_spec.rb
sequel-4.43.0 spec/extensions/before_after_save_spec.rb
sequel-4.42.1 spec/extensions/before_after_save_spec.rb
sequel-4.42.0 spec/extensions/before_after_save_spec.rb
sequel-4.41.0 spec/extensions/before_after_save_spec.rb
sequel-4.40.0 spec/extensions/before_after_save_spec.rb
sequel-4.39.0 spec/extensions/before_after_save_spec.rb
tdiary-5.0.2 vendor/bundle/gems/sequel-4.37.0/spec/extensions/before_after_save_spec.rb
sequel-4.38.0 spec/extensions/before_after_save_spec.rb
sequel-4.37.0 spec/extensions/before_after_save_spec.rb
sequel-4.36.0 spec/extensions/before_after_save_spec.rb