Sha256: 6347b34c0759f16567bec5ba92b86e2aaac9f7978478ee091dc3172bacfb5a5a

Contents?: true

Size: 1.85 KB

Versions: 4

Compression:

Stored size: 1.85 KB

Contents

require 'rails_helper'

RSpec.describe MediaScrubber do
  let(:path) { File.expand_path('../../uploads', __FILE__) }
  let(:image) { File.open("#{path}/cat.jpg") }

  it 'takes a file as an argument' do
    something = double('some_document')
    MediaScrubber.new(file: something)
  end

  context '#infer_media_type' do
    it 'returns an Image if the file type is an image' do
      allow(image).to receive(:content_type).and_return('image/jpg')
      m = MediaScrubber.new(file: image)
      expect(m.infer_media_type.class).to be(AtomicCms::Image)
    end

    it 'returns nil if not supported' do
      something_else = double('some_document', content_type: 'rando')
      m = MediaScrubber.new(file: something_else)
      expect(m.infer_media_type).to be_nil
    end
  end

  context '#valid?' do
    before(:each) do
      allow(image).to receive(:content_type).and_return('image/jpg')
    end

    it 'returns false if not filtered' do
      m = MediaScrubber.new(file: image)
      m.filtered = nil

      expect(m.valid?).to be(false)
    end

    it 'passes the valid call onto the underlying Object if filtered' do
      m = MediaScrubber.new(file: image)
      m.filtered = spy('underlying_asset')
      allow(m.filtered).to receive(:valid?).and_return(:true)

      m.valid?

      expect(m.filtered).to have_received(:valid?)
    end
  end

  context '#save' do
    before(:each) do
      allow(image).to receive(:content_type).and_return('image/jpg')
    end

    it 'returns false if not valid' do
      m = MediaScrubber.new(file: image)
      m.filtered = nil
      expect(m.save).to be(false)
    end

    it 'passes the save call onto the underlying Object' do
      m = MediaScrubber.new(file: image)
      m.filtered = spy('underlying_asset')
      allow(m.filtered).to receive(:save)

      m.save

      expect(m.filtered).to have_received(:save)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
atomic_cms-0.2.5 spec/controllers/media_scrubber_spec.rb
atomic_cms-0.2.3 spec/controllers/media_scrubber_spec.rb
atomic_cms-0.2.2 spec/controllers/media_scrubber_spec.rb
atomic_cms-0.2.1 spec/controllers/media_scrubber_spec.rb