Sha256: 64a798d8375d13f17ea0244b09271d7d95954cbb8e4384632554eb1027b7ee46

Contents?: true

Size: 1.08 KB

Versions: 5

Compression:

Stored size: 1.08 KB

Contents

require 'rails_helper'

describe Kithe::Asset::SetShrineUploader do
  temporary_class("MyUploaderSubclass") do
    Class.new(Kithe::AssetUploader) do
      add_metadata :uploader_class_name do |io|
        self.class.name
      end
    end
  end

  temporary_class("AssetSubclass") do
    Class.new(Kithe::Asset) do
      set_shrine_uploader(MyUploaderSubclass)
    end
  end

  let(:asset) { AssetSubclass.create!(title: "test") }
  let(:image_path) { Kithe::Engine.root.join("spec/test_support/images/1x1_pixel.jpg") }

  it "has proper class attacher" do
    expect(AssetSubclass.file_attacher.class).to eq(MyUploaderSubclass::Attacher)
  end

  it "has proper instance attacher" do
    expect(asset.file_attacher.class).to eq(MyUploaderSubclass::Attacher)
  end

  it "can attach file using custom subclass" do
    asset.set_promotion_directives(promote: :inline)
    asset.file = File.open(image_path)
    asset.save!
    asset.reload

    expect(asset.stored?).to eq(true)
    expect(asset.file).to be_present
    expect(asset.file.metadata["uploader_class_name"]).to eq("MyUploaderSubclass")
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
kithe-2.0.2 spec/models/kithe/asset/set_shrine_uploader_spec.rb
kithe-2.0.1 spec/models/kithe/asset/set_shrine_uploader_spec.rb
kithe-2.0.0 spec/models/kithe/asset/set_shrine_uploader_spec.rb
kithe-2.0.0.pre.rc1 spec/models/kithe/asset/set_shrine_uploader_spec.rb
kithe-2.0.0.pre.beta1 spec/models/kithe/asset/set_shrine_uploader_spec.rb