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