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