Sha256: 0d4c3aea1a04afbec8e3240a4e3e714aef1b20c5bd8925464d93bebbae3d15c0

Contents?: true

Size: 1.12 KB

Versions: 6

Compression:

Stored size: 1.12 KB

Contents

require 'spec_helper'

describe "halt processor behavior" do
  before { allow(Saviour::Config).to receive(:storage).and_return(Saviour::LocalStorage.new(local_prefix: @tmpdir, public_url_prefix: "http://domain.com")) }

  let(:uploader) {
    Class.new(Saviour::BaseUploader) do
      store_dir { "/store/dir" }
      process { |_contents, _name| halt_process }
    end
  }

  let(:klass) {
    klass = Class.new(Test) {
      include Saviour::Model
    }
    klass.attach_file :file, uploader
    klass
  }

  it "does not write the file" do
    a = klass.create!

    expect(Saviour::Config.storage).to_not receive(:write)

    a.update! file: StringIO.new("contents")
    expect(a.reload.read_attribute(:file)).to be_nil
  end

  it "is considered as not persisted after save" do
    a = klass.new
    a.file = StringIO.new("contents")
    expect(a.file.persisted?).to be_falsey
    a.save
    expect(a.file.persisted?).to be_falsey
  end

  it "is considered as not dirty after save" do
    a = klass.new
    a.file = StringIO.new("contents")
    expect(a.file.changed?).to be_truthy
    a.save
    expect(a.file.changed?).to be_falsey
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
saviour-0.6.10 spec/feature/halt_processor_spec.rb
saviour-0.6.9 spec/feature/halt_processor_spec.rb
saviour-0.6.8 spec/feature/halt_processor_spec.rb
saviour-0.6.7 spec/feature/halt_processor_spec.rb
saviour-0.6.6 spec/feature/halt_processor_spec.rb
saviour-0.6.5 spec/feature/halt_processor_spec.rb