Sha256: eb9c734c10d4545bc374b69b4157fd63b56b1db0391a48149c5fdb3ee6003177

Contents?: true

Size: 1.65 KB

Versions: 31

Compression:

Stored size: 1.65 KB

Contents

require 'spec_helper'
require 'spree/testing_support/factories/state_factory'

RSpec.describe 'state factory' do
  let(:factory_class) { Spree::State }

  describe 'plain state' do
    let(:factory) { :state }

    it_behaves_like 'a working factory'

    it 'is Alabama' do
      expect(build(factory).abbr).to eq('AL')
      expect(build(factory).name).to eq('Alabama')
    end
  end

  describe 'when given a country iso code' do
    let(:state) { build(:state, country_iso: "DE") }

    it 'creates the first state for that country it finds in carmen' do
      expect(state.abbr).to eq("BW")
      expect(state.name).to eq("Baden-Württemberg")
    end

    context 'of an existing country' do
      let!(:country){ create(:country, iso: "DE") }
      it 'uses the existing country in the database' do
        expect(state.country).to eq(country)
        expect(Spree::Country.count).to eq(1)
      end
    end
  end

  describe 'when given a country record' do
    let(:country) { build(:country, iso: "DE") }
    let(:state) { build(:state, country: country) }
    it 'creates the first state for that country it finds in carmen' do
      expect(state.abbr).to eq("BW")
      expect(state.name).to eq("Baden-Württemberg")
    end
  end

  describe 'when given an invalid country iso code' do
    it 'raises a helpful message' do
      expect{ build(:state, country_iso: "ZZ") }.to raise_error(RuntimeError, 'Unknown country iso code: "ZZ"')
    end
  end

  context 'with a country that does not have subregions' do
    it 'raises an exception' do
      expect {
        create(:state, country_iso: 'HK')
      }.to raise_error('Country HK has no subregions')
    end
  end
end

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
solidus_core-2.3.1 spec/lib/spree/core/testing_support/factories/state_factory_spec.rb
solidus_core-2.2.2 spec/lib/spree/core/testing_support/factories/state_factory_spec.rb
solidus_core-2.1.1 spec/lib/spree/core/testing_support/factories/state_factory_spec.rb
solidus_core-2.0.3 spec/lib/spree/core/testing_support/factories/state_factory_spec.rb
solidus_core-1.4.2 spec/lib/spree/core/testing_support/factories/state_factory_spec.rb
solidus_core-1.3.2 spec/lib/spree/core/testing_support/factories/state_factory_spec.rb
solidus_core-2.3.0 spec/lib/spree/core/testing_support/factories/state_factory_spec.rb
solidus_core-2.3.0.rc3 spec/lib/spree/core/testing_support/factories/state_factory_spec.rb
solidus_core-2.3.0.rc2 spec/lib/spree/core/testing_support/factories/state_factory_spec.rb
solidus_core-2.3.0.rc1 spec/lib/spree/core/testing_support/factories/state_factory_spec.rb
solidus_core-2.3.0.beta1 spec/lib/spree/core/testing_support/factories/state_factory_spec.rb
solidus_core-2.0.2 spec/lib/spree/core/testing_support/factories/state_factory_spec.rb
solidus_core-1.4.1 spec/lib/spree/core/testing_support/factories/state_factory_spec.rb
solidus_core-2.2.1 spec/lib/spree/core/testing_support/factories/state_factory_spec.rb
solidus_core-2.2.0 spec/lib/spree/core/testing_support/factories/state_factory_spec.rb
solidus_core-2.2.0.rc1 spec/lib/spree/core/testing_support/factories/state_factory_spec.rb
solidus_core-2.2.0.beta1 spec/lib/spree/core/testing_support/factories/state_factory_spec.rb
solidus_core-2.1.0 spec/lib/spree/core/testing_support/factories/state_factory_spec.rb
solidus_core-2.1.0.rc1 spec/lib/spree/core/testing_support/factories/state_factory_spec.rb
solidus_core-2.0.1 spec/lib/spree/core/testing_support/factories/state_factory_spec.rb