require 'spec_helper' module Spree module Preferences class TestConfiguration < FileConfiguration preference :name, :string include OpenFoodNetwork::Paperclippable preference :logo, :file has_attached_file :logo end describe FileConfiguration do let(:c) { TestConfiguration.new } describe "getting preferences" do it "returns regular preferences" do c.name = 'foo' expect(c.get_preference(:name)).to eq('foo') end it "returns file preferences" do expect(c.get_preference(:logo)).to be_a Paperclip::Attachment end it "returns regular preferences via []" do c.name = 'foo' expect(c[:name]).to eq('foo') end it "returns file preferences via []" do expect(c[:logo]).to be_a Paperclip::Attachment end end describe "getting preference types" do it "returns regular preference types" do expect(c.preference_type(:name)).to eq(:string) end it "returns file preference types" do expect(c.preference_type(:logo)).to eq(:file) end end describe "respond_to?" do it "responds to preference getters" do expect(c.respond_to?(:name)).to be true end it "responds to preference setters" do expect(c.respond_to?(:name=)).to be true end end end end end