Sha256: 310817871221b33e98425ef7b6f241801da56e5e1f3af725db923c58b1173590

Contents?: true

Size: 1.15 KB

Versions: 6

Compression:

Stored size: 1.15 KB

Contents

require 'spec_helper'

RSpec.describe Spree::Order::NumberGenerator do
  subject { described_class.new.generate }

  it { is_expected.to be_a(String) }

  describe 'length' do
    let(:default_length) do
      Spree::Order::ORDER_NUMBER_LENGTH + Spree::Order::ORDER_NUMBER_PREFIX.length
    end

    it { expect(subject.length).to eq default_length }

    context "when length option is 5" do
      let(:option_length) { 5 + Spree::Order::ORDER_NUMBER_PREFIX.length }

      subject { described_class.new(length: 5).generate }

      it "should be 5 plus default prefix length" do
        expect(subject.length).to eq option_length
      end
    end
  end

  context "when letters option is true" do
    subject { described_class.new(letters: true).generate }

    it "generates order number including letters" do
      is_expected.to match /[A-Z]/
    end
  end

  describe 'prefix' do
    it { is_expected.to match /^#{Spree::Order::ORDER_NUMBER_PREFIX}/ }

    context "when prefix option is 'P'" do
      subject { described_class.new(prefix: 'P').generate }

      it "generates order number prefixed with 'P'" do
        is_expected.to match /^P/
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
solidus_core-2.3.1 spec/models/spree/order/number_generator_spec.rb
solidus_core-2.3.0 spec/models/spree/order/number_generator_spec.rb
solidus_core-2.3.0.rc3 spec/models/spree/order/number_generator_spec.rb
solidus_core-2.3.0.rc2 spec/models/spree/order/number_generator_spec.rb
solidus_core-2.3.0.rc1 spec/models/spree/order/number_generator_spec.rb
solidus_core-2.3.0.beta1 spec/models/spree/order/number_generator_spec.rb