spec/callbacks_spec.rb in asset_cloud-2.7.0 vs spec/callbacks_spec.rb in asset_cloud-2.7.1

- old
+ new

@@ -1,16 +1,23 @@ # frozen_string_literal: true require 'spec_helper' + +class AfterStoreCallback + def self.after_store(*args); end +end + class CallbackAsset < AssetCloud::Asset before_store :callback_before_store before_delete :callback_before_delete after_delete :callback_after_delete before_validate :make_value_valid after_validate :add_spice validate :valid_value + after_store ::AfterStoreCallback + private def callback_before_delete(*args); end def make_value_valid @@ -140,7 +147,18 @@ it "not invoke other callbacks when a before_ filter returns false" do expect(@asset).to(receive(:callback_before_delete).and_return(false)) expect(@asset).not_to(receive(:callback_after_delete)) expect(@asset.delete).to(eq(nil)) + end + + it "should invoke after_store callback defined in separate class" do + local_fs = BasicCloud.new(File.dirname(__FILE__) + '/files', 'http://assets/') + local_fs.write('callback_assets/foo', 'bar') + local_asset = local_fs.asset_at('callback_assets/foo') + + expect(local_asset).to(receive(:callback_before_store).and_return(true)) + expect(::AfterStoreCallback).to(receive(:after_store)) + + expect(local_asset.store).to(eq(true)) end end