From 75c0752340a228e298cba048cb8b0c8b881cd91f Mon Sep 17 00:00:00 2001 From: Gaetan Craig-Riou Date: Wed, 15 Jan 2025 14:33:11 +1100 Subject: [PATCH] Sree::Zone, require at least one member Add validations and specs --- app/models/spree/zone.rb | 2 ++ spec/models/spree/zone_spec.rb | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/app/models/spree/zone.rb b/app/models/spree/zone.rb index b310c2927f..a3deacda4f 100644 --- a/app/models/spree/zone.rb +++ b/app/models/spree/zone.rb @@ -7,6 +7,8 @@ module Spree has_and_belongs_to_many :shipping_methods, join_table: 'spree_shipping_methods_zones' validates :name, presence: true, uniqueness: true + validates :zone_members, presence: true + after_save :remove_defunct_members after_save :remove_previous_default diff --git a/spec/models/spree/zone_spec.rb b/spec/models/spree/zone_spec.rb index 8c1da2906a..fad11796f0 100644 --- a/spec/models/spree/zone_spec.rb +++ b/spec/models/spree/zone_spec.rb @@ -3,6 +3,12 @@ require 'spec_helper' RSpec.describe Spree::Zone do + describe "validations" do + it { is_expected.to validate_presence_of(:name) } + it { is_expected.to validate_uniqueness_of(:name) } + it { is_expected.to validate_presence_of(:zone_members) } + end + describe "#match" do let(:country_zone) { create(:zone, name: 'CountryZone') } let(:country) do