spec/callbacks_spec.rb in asset_cloud-2.7.1 vs spec/callbacks_spec.rb in asset_cloud-2.7.2
- old
+ new
@@ -1,11 +1,13 @@
# frozen_string_literal: true
-require 'spec_helper'
+require "spec_helper"
class AfterStoreCallback
- def self.after_store(*args); end
+ class << self
+ def after_store(*args); end
+ end
end
class CallbackAsset < AssetCloud::Asset
before_store :callback_before_store
before_delete :callback_before_delete
@@ -19,19 +21,19 @@
private
def callback_before_delete(*args); end
def make_value_valid
- self.value = 'valid'
+ self.value = "valid"
end
def add_spice
- self.value += ' spice'
+ self.value += " spice"
end
def valid_value
- add_error('value is not "valid"') unless value == 'valid'
+ add_error('value is not "valid"') unless value == "valid"
end
end
class BasicCloud < AssetCloud::Base
bucket :callback_assets, AssetCloud::MemoryBucket, asset_class: CallbackAsset
@@ -57,108 +59,108 @@
bucket :tmp, AssetCloud::MemoryBucket
before_write :callback_before_write
after_write :callback_before_write
- def method_missing(method, *_args)
- @run_callbacks << method.to_sym
+ def callback_before_write(*)
+ @run_callbacks << __method__
end
end
describe CallbackCloud do
before do
- @fs = CallbackCloud.new(File.dirname(__FILE__) + '/files', 'http://assets/')
- @fs.write('tmp/file.txt', 'foo')
+ @fs = CallbackCloud.new(File.dirname(__FILE__) + "/files", "http://assets/")
+ @fs.write("tmp/file.txt", "foo")
end
it "should invoke callbacks after store" do
- expect(@fs).to(receive(:callback_before_write).with('tmp/file.txt', 'text').and_return(true))
- expect(@fs).to(receive(:callback_after_write).with('tmp/file.txt', 'text').and_return(true))
+ expect(@fs).to(receive(:callback_before_write).with("tmp/file.txt", "text").and_return(true))
+ expect(@fs).to(receive(:callback_after_write).with("tmp/file.txt", "text").and_return(true))
- expect(@fs.write('tmp/file.txt', 'text')).to(eq(true))
- expect(@fs.read('tmp/file.txt')).to(eq('text'))
+ expect(@fs.write("tmp/file.txt", "text")).to(eq(true))
+ expect(@fs.read("tmp/file.txt")).to(eq("text"))
end
it "should invoke callbacks after delete" do
- expect(@fs).to(receive(:callback_before_delete).with('tmp/file.txt').and_return(true))
- expect(@fs).to(receive(:callback_after_delete).with('tmp/file.txt').and_return(true))
+ expect(@fs).to(receive(:callback_before_delete).with("tmp/file.txt").and_return(true))
+ expect(@fs).to(receive(:callback_after_delete).with("tmp/file.txt").and_return(true))
- expect(@fs.delete('tmp/file.txt')).to(eq('foo'))
+ expect(@fs.delete("tmp/file.txt")).to(eq("foo"))
end
it "should not invoke other callbacks when a before_ filter returns false" do
expect(@fs).to(receive(:callback_before_delete)
- .with('tmp/file.txt')
+ .with("tmp/file.txt")
.and_return(false))
expect(@fs).not_to(receive(:callback_after_delete))
- expect(@fs.delete('tmp/file.txt')).to(eq(nil))
+ expect(@fs.delete("tmp/file.txt")).to(eq(nil))
end
it "should invoke callbacks even when constructing a new asset" do
- expect(@fs).to(receive(:callback_before_write).with('tmp/file.txt', 'hello').and_return(true))
- expect(@fs).to(receive(:callback_after_write).with('tmp/file.txt', 'hello').and_return(true))
+ expect(@fs).to(receive(:callback_before_write).with("tmp/file.txt", "hello").and_return(true))
+ expect(@fs).to(receive(:callback_after_write).with("tmp/file.txt", "hello").and_return(true))
- asset = @fs.build('tmp/file.txt')
- asset.value = 'hello'
+ asset = @fs.build("tmp/file.txt")
+ asset.value = "hello"
expect(asset.store).to(eq(true))
end
end
describe MethodRecordingCloud do
before do
- @fs = MethodRecordingCloud.new(File.dirname(__FILE__) + '/files', 'http://assets/')
+ @fs = MethodRecordingCloud.new(File.dirname(__FILE__) + "/files", "http://assets/")
@fs.run_callbacks = []
end
- it 'should record event when invoked' do
- @fs.write('tmp/file.txt', 'random data')
+ it "should record event when invoked" do
+ @fs.write("tmp/file.txt", "random data")
expect(@fs.run_callbacks).to(eq([:callback_before_write, :callback_before_write]))
end
- it 'should record event when assignment operator is used' do
- @fs['tmp/file.txt'] = 'random data'
+ it "should record event when assignment operator is used" do
+ @fs["tmp/file.txt"] = "random data"
expect(@fs.run_callbacks).to(eq([:callback_before_write, :callback_before_write]))
end
end
describe CallbackAsset do
before(:each) do
- @fs = BasicCloud.new(File.dirname(__FILE__) + '/files', 'http://assets/')
- @fs.write('callback_assets/foo', 'bar')
- @asset = @fs.asset_at('callback_assets/foo')
+ @fs = BasicCloud.new(File.dirname(__FILE__) + "/files", "http://assets/")
+ @fs.write("callback_assets/foo", "bar")
+ @asset = @fs.asset_at("callback_assets/foo")
end
it "should run before_validate, then validate, then after validate, then before_store, then store" do
expect(@asset).to(receive(:callback_before_store).and_return(true))
expect(@asset).not_to(receive(:callback_after_delete))
- @asset.value = 'foo'
+ @asset.value = "foo"
expect(@asset.store).to(eq(true))
- expect(@asset.value).to(eq('valid spice'))
+ expect(@asset.value).to(eq("valid spice"))
end
it "should run its after_delete callback after delete is called" do
expect(@asset).not_to(receive(:callback_before_store))
expect(@asset).to(receive(:callback_after_delete).and_return(true))
- expect(@asset.delete).to(eq('bar'))
+ expect(@asset.delete).to(eq("bar"))
end
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')
-
+ 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(AfterStoreCallback).to(receive(:after_store))
+
expect(local_asset.store).to(eq(true))
end
end