diff --git a/lib/administrate/field/polymorphic.rb b/lib/administrate/field/polymorphic.rb index db8452a0450d9971d414a32ea4ba1345b5d5891c..22294b5e9586fcfeae2071c8e94020f13d44116f 100644 --- a/lib/administrate/field/polymorphic.rb +++ b/lib/administrate/field/polymorphic.rb @@ -30,7 +30,7 @@ module Administrate end def classes - options.fetch(:classes) || [] + options.fetch(:classes, []) end private diff --git a/spec/lib/fields/polymorphic_spec.rb b/spec/lib/fields/polymorphic_spec.rb index d17056cc4324fdf366253cc1fe5d7e60646cc470..a1b5a280e8cb141949e532a70f5d06a606b0d5f3 100644 --- a/spec/lib/fields/polymorphic_spec.rb +++ b/spec/lib/fields/polymorphic_spec.rb @@ -51,4 +51,25 @@ describe Administrate::Field::Polymorphic do expect(field.selected_global_id).to eq(nil) end end + + describe "#classes" do + let(:field) { Administrate::Field::Polymorphic.new(:foo, "hello", :show) } + + context "not present in options" do + it "returns an empty array" do + allow(field).to receive(:options).and_return({}) + + expect(field.send(:classes)).to eq([]) + end + end + + context "present in options" do + it "returns an present value" do + classes = ["one", "two", "three"] + allow(field).to receive(:options).and_return(classes: classes) + + expect(field.send(:classes)).to eq(classes) + end + end + end end