Sha256: 0e09e56d565be437ec3aac895ff694ca5e6ded5e9852544b4c3151a2c29f2343

Contents?: true

Size: 1.23 KB

Versions: 16

Compression:

Stored size: 1.23 KB

Contents

require 'spec_helper'

describe Spree::ZoneMember, type: :model do
  let(:country) { create(:country) }
  let(:state) { create(:state) }
  let(:zone) { create(:zone, kind: 'country') }
  let(:zone_member) { create(:zone_member, zone: zone, zoneable: country) }

  describe 'associations' do
    it { is_expected.to belong_to(:zoneable) }
    it { is_expected.to belong_to(:zone).counter_cache(true).inverse_of(:zone_members) }
  end

  describe 'validations' do
    it { is_expected.to validate_presence_of(:zone) }
    it { is_expected.to validate_presence_of(:zoneable) }
  end

  describe 'scopes' do
    describe '.defunct_without_kind' do
      let(:defunct_without_kind) { Spree::ZoneMember.defunct_without_kind('country') }

      context 'zoneable is present and is of defunct kind' do
        it { expect(defunct_without_kind).to_not include(zone_member) }
      end

      context 'zoneable is not of defunct kind' do
        before { zone_member.update(zoneable: state) }
        it { expect(defunct_without_kind).to include(zone_member) }
      end

      context 'zoneable is absent' do
        before { zone_member.update_column(:zoneable_id, nil) }
        it { expect(defunct_without_kind).to include(zone_member) }
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
spree_core-3.3.0.rc1 spec/models/spree/zone_member_spec.rb
spree_core-3.1.5 spec/models/spree/zone_member_spec.rb
spree_core-3.2.1 spec/models/spree/zone_member_spec.rb
spree_core-3.2.0 spec/models/spree/zone_member_spec.rb
spree_core-3.1.4 spec/models/spree/zone_member_spec.rb
spree_core-3.2.0.rc3 spec/models/spree/zone_member_spec.rb
spree_core-3.2.0.rc2 spec/models/spree/zone_member_spec.rb
spree_core-3.2.0.rc1 spec/models/spree/zone_member_spec.rb
spree_core-3.1.3 spec/models/spree/zone_member_spec.rb
spree_core-3.1.2 spec/models/spree/zone_member_spec.rb
spree_core-3.1.1 spec/models/spree/zone_member_spec.rb
spree_core-3.1.0 spec/models/spree/zone_member_spec.rb
spree_core-3.1.0.rc4 spec/models/spree/zone_member_spec.rb
spree_core-3.1.0.rc3 spec/models/spree/zone_member_spec.rb
spree_core-3.1.0.rc2 spec/models/spree/zone_member_spec.rb
spree_core-3.1.0.rc1 spec/models/spree/zone_member_spec.rb