Sha256: 52526c5dfea893012d7e5d8c5dfcce3efb9101187232225ec298296370538aa3

Contents?: true

Size: 1.42 KB

Versions: 48

Compression:

Stored size: 1.42 KB

Contents

# frozen_string_literal: true

require "rails_helper"

RSpec.describe Spree::PromotionCodeBatch, type: :model do
  subject do
    described_class.create!(
      promotion_id: create(:promotion).id,
      base_code: "abc",
      number_of_codes: 1,
      error: nil,
      email: "test@email.com"
    )
  end

  describe "#process" do
    context "with a pending code batch" do
      it "should call the worker" do
        expect { subject.process }
          .to have_enqueued_job(Spree::PromotionCodeBatchJob)
      end

      it "should update the state to processing" do
        subject.process

        expect(subject.state).to eq("processing")
      end
    end

    context "with a processing batch" do
      before { subject.update_attribute(:state, "processing") }

      it "should raise an error" do
        expect{ subject.process }.to raise_error Spree::PromotionCodeBatch::CantProcessStartedBatch
      end
    end

    context "with a completed batch" do
      before { subject.update_attribute(:state, "completed") }

      it "should raise an error" do
        expect{ subject.process }.to raise_error Spree::PromotionCodeBatch::CantProcessStartedBatch
      end
    end

    context "with a failed batch" do
      before { subject.update_attribute(:state, "failed") }

      it "should raise an error" do
        expect{ subject.process }.to raise_error Spree::PromotionCodeBatch::CantProcessStartedBatch
      end
    end
  end
end

Version data entries

48 entries across 48 versions & 2 rubygems

Version Path
solidus_core-2.10.5 spec/models/spree/promotion_code_batch_spec.rb
solidus_core-2.10.3 spec/models/spree/promotion_code_batch_spec.rb
solidus_core-2.10.2 spec/models/spree/promotion_code_batch_spec.rb
solidus_core-2.9.6 spec/models/spree/promotion_code_batch_spec.rb
solidus_core-2.8.6 spec/models/spree/promotion_code_batch_spec.rb
solidus_core-2.10.1 spec/models/spree/promotion_code_batch_spec.rb
solidus_core-2.9.5 spec/models/spree/promotion_code_batch_spec.rb
solidus_core-2.10.0 spec/models/spree/promotion_code_batch_spec.rb
solidus_core-2.9.4 spec/models/spree/promotion_code_batch_spec.rb
solidus_core-2.6.6 spec/models/spree/promotion_code_batch_spec.rb
solidus_core-2.7.4 spec/models/spree/promotion_code_batch_spec.rb
solidus_core-2.8.5 spec/models/spree/promotion_code_batch_spec.rb
solidus_core-2.9.3 spec/models/spree/promotion_code_batch_spec.rb
solidus_core-2.9.2 spec/models/spree/promotion_code_batch_spec.rb
solidus_core-2.10.0.beta1 spec/models/spree/promotion_code_batch_spec.rb
solidus_core-2.7.3 spec/models/spree/promotion_code_batch_spec.rb
solidus_core-2.6.5 spec/models/spree/promotion_code_batch_spec.rb
solidus_core-2.9.1 spec/models/spree/promotion_code_batch_spec.rb
solidus_core-2.9.0 spec/models/spree/promotion_code_batch_spec.rb
solidus_core-2.9.0.rc.1 spec/models/spree/promotion_code_batch_spec.rb