spec/models/archangel/field_spec.rb in archangel-0.0.5 vs spec/models/archangel/field_spec.rb in archangel-0.0.6
- old
+ new
@@ -3,27 +3,38 @@
require "rails_helper"
module Archangel
RSpec.describe Field, type: :model do
context "validations" do
- it { expect(subject).to validate_presence_of(:classification) }
- it { expect(subject).to validate_presence_of(:collection_id).on(:update) }
- it { expect(subject).to validate_presence_of(:label) }
- it { expect(subject).to validate_presence_of(:slug) }
+ it { is_expected.to validate_presence_of(:classification) }
+ it { is_expected.to validate_presence_of(:collection_id).on(:update) }
+ it { is_expected.to validate_presence_of(:label) }
+ it { is_expected.to validate_presence_of(:slug) }
- it { expect(subject).to allow_value(true).for(:required) }
- it { expect(subject).to allow_value(false).for(:required) }
- it { expect(subject).not_to allow_value(nil).for(:required) }
+ it { is_expected.to allow_value(true).for(:required) }
+ it { is_expected.to allow_value(1).for(:required) }
+ it { is_expected.to allow_value(false).for(:required) }
+ it { is_expected.to allow_value(0).for(:required) }
- it do
+ it { is_expected.to_not allow_value(nil).for(:required) }
+
+ it "allows certain classifications" do
expect(subject).to(
validate_inclusion_of(:classification)
- .in_array(%w[string text boolean])
+ .in_array(Archangel::Field::CLASSIFICATIONS)
)
end
+
+ it "has a unique slug scoped to Collection" do
+ resource = build(:field)
+
+ expect(resource).to(
+ validate_uniqueness_of(:slug).scoped_to(:collection_id)
+ )
+ end
end
context "associations" do
- it { expect(subject).to belong_to(:collection) }
+ it { is_expected.to belong_to(:collection) }
end
end
end