spec/orm/sequel_spec.rb in carrierwave-0.2.1 vs spec/orm/sequel_spec.rb in carrierwave-0.2.3

- old
+ new

@@ -5,13 +5,11 @@ DB = Sequel.sqlite describe CarrierWave::Sequel do def setup_variables_for_class(klass) - uploader = Class.new do - include CarrierWave::Uploader - end + uploader = Class.new(CarrierWave::Uploader::Base) klass.mount_uploader(:image, uploader) model = klass.new [klass, uploader, model] end @@ -36,18 +34,18 @@ end describe '#image' do it "should return nil when nothing has been assigned" do - @event.image.should be_nil + @event.image.should be_blank end it "should return nil when an empty string has been assigned" do @event[:image] = '' @event.save @event.reload - @event.image.should be_nil + @event.image.should be_blank end it "should retrieve a file from the storage if a value is stored in the database" do @event[:image] = 'test.jpeg' @event.save @@ -80,25 +78,25 @@ @event.image.current_path.should =~ /^#{public_path('uploads/tmp')}/ end it "should do nothing when nil is assigned" do @event.image = nil - @event.image.should be_nil + @event.image.should be_blank end it "should do nothing when an empty string is assigned" do @event.image = '' - @event.image.should be_nil + @event.image.should be_blank end end describe '#save' do it "should do nothing when no file has been assigned" do @event.save.should be_true - @event.image.should be_nil + @event.image.should be_blank end it "should copy the file to the upload directory when a file has been assigned" do @event.image = stub_file('test.jpeg') @event.save.should be_true @@ -107,42 +105,57 @@ end describe 'with validation' do before do - @class.class_eval do - validates_each :image do |object, attribute, value| - object.errors[attribute] << 'FAIL!' + # Add validations + if CarrierWave::Sequel.new_sequel? + @class.class_eval do + def validate + errors.add(:image, 'FAIL!') + end end + else + @class.class_eval do + validates_each(:image) do |o,a,v| + o.errors.add(a, 'FAIL!') + end + end end + # Turn off raising the exceptions on save + @event.raise_on_save_failure = false end it "should do nothing when a validation fails" do - pending "I don't understand how this is supposed to work :S" do - @event.image = stub_file('test.jpeg') - @event.save.should be_false - @event.image.should be_an_instance_of(@uploader) - @event.image.current_path.should =~ /^#{public_path('uploads/tmp')}/ - end + @event.image = stub_file('test.jpeg') + @event.should_not be_valid + @event.save + @event.should be_new + @event.image.should be_an_instance_of(@uploader) + @event.image.current_path.should =~ /^#{public_path('uploads/tmp')}/ end end it "should assign the filename to the database" do - @event.image = stub_file('test.jpeg') - @event.save.should be_true - @event.reload - @event[:image].should == 'test.jpeg' + pending "Sequel support is currently broken" do + @event.image = stub_file('test.jpeg') + @event.save.should be_true + @event.reload + @event[:image].should == 'test.jpeg' + end end it "should remove the image if remove_image? returns true" do - @event.image = stub_file('test.jpeg') - @event.save - @event.remove_image = true - @event.save - @event.reload - @event.image.should be_nil - @event[:image].should == '' + pending "Sequel support is currently broken" do + @event.image = stub_file('test.jpeg') + @event.save + @event.remove_image = true + @event.save + @event.reload + @event.image.should be_blank + @event[:image].should == '' + end end end describe 'with overriddent filename' do @@ -163,13 +176,15 @@ @event.image.should be_an_instance_of(@uploader) @event.image.current_path.should == public_path('uploads/jonas.jpeg') end it "should assign an overridden filename to the database" do - @event.image = stub_file('test.jpeg') - @event.save.should be_true - @event.reload - @event[:image].should == 'jonas.jpeg' + pending "Sequel support is currently broken" do + @event.image = stub_file('test.jpeg') + @event.save.should be_true + @event.reload + @event[:image].should == 'jonas.jpeg' + end end end end