From d0d3b73257ddaf17f306132f1df4dc0a13f76af6 Mon Sep 17 00:00:00 2001 From: Andy Brett Date: Wed, 24 Mar 2021 13:17:09 -0700 Subject: [PATCH] add specs --- .../subscriptions/summarizer_spec.rb | 11 ++++++++++ .../subscriptions/summary_spec.rb | 20 +++++++++++++++++++ spec/jobs/subscription_placement_job_spec.rb | 12 +++++++++++ 3 files changed, 43 insertions(+) diff --git a/engines/order_management/spec/services/order_management/subscriptions/summarizer_spec.rb b/engines/order_management/spec/services/order_management/subscriptions/summarizer_spec.rb index 0c47277e47..f80b27e85f 100644 --- a/engines/order_management/spec/services/order_management/subscriptions/summarizer_spec.rb +++ b/engines/order_management/spec/services/order_management/subscriptions/summarizer_spec.rb @@ -94,6 +94,17 @@ module OrderManagement end end end + + describe "#record_subscription_issue" do + let(:subscription) { double(:subscription, shop_id: 1) } + + before { allow(summarizer).to receive(:summary_for_shop_id).with(subscription.shop_id) { summary } } + + it "records a subscription issue" do + expect(summary).to receive(:record_subscription_issue).with(subscription).once + summarizer.record_subscription_issue(subscription) + end + end end describe "#send_placement_summary_emails" do diff --git a/engines/order_management/spec/services/order_management/subscriptions/summary_spec.rb b/engines/order_management/spec/services/order_management/subscriptions/summary_spec.rb index 454e2e5ba3..731a123d17 100644 --- a/engines/order_management/spec/services/order_management/subscriptions/summary_spec.rb +++ b/engines/order_management/spec/services/order_management/subscriptions/summary_spec.rb @@ -56,6 +56,15 @@ module OrderManagement end end + describe "record_subscription_issue" do + let(:subscription) { double(:subscription, id: 101) } + + it "stores a new subscription issue" do + summary.record_subscription_issue(subscription) + expect(summary.subscription_issues).to eq [101] + end + end + describe "#order_count" do let(:order_ids) { [1, 2, 3, 4, 5, 6, 7] } it "counts the number of items in the order_ids instance_variable" do @@ -81,6 +90,17 @@ module OrderManagement summary.instance_variable_set(:@success_ids, success_ids) expect(summary.issue_count).to be 2 # 7 & 9 end + + context "when there are also subscription issues" do + let(:subscription_issues) { [101, 212] } + + it "includes subscription issues in the count" do + summary.instance_variable_set(:@order_ids, order_ids) + summary.instance_variable_set(:@success_ids, success_ids) + summary.instance_variable_set(:@subscription_issues, subscription_issues) + expect(summary.issue_count).to eq 4 # 7, 9, 101, 212 + end + end end describe "#orders_affected_by" do diff --git a/spec/jobs/subscription_placement_job_spec.rb b/spec/jobs/subscription_placement_job_spec.rb index db88322ffc..bf4b79c59a 100644 --- a/spec/jobs/subscription_placement_job_spec.rb +++ b/spec/jobs/subscription_placement_job_spec.rb @@ -217,6 +217,18 @@ describe SubscriptionPlacementJob do end end end + + context "when the proxy order fails to generate an order" do + before do + allow(proxy_order).to receive(:initialise_order!) { nil } + end + + it "records an error " do + expect(job).to receive(:record_subscription_issue) + expect(job).to_not receive(:place_order) + job.send(:place_proxy_order, proxy_order) + end + end end describe "#send_placement_email" do