From 7c3968b64ee5c53c98b393a1d7a2c93ce63dbdf2 Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Fri, 23 Sep 2016 15:05:46 +1000 Subject: [PATCH] Hide guest checkout if deactivated --- app/helpers/checkout_helper.rb | 4 ++++ app/views/checkout/_authentication.html.haml | 21 ++++++++++++-------- spec/helpers/checkout_helper_spec.rb | 10 ++++++++++ 3 files changed, 27 insertions(+), 8 deletions(-) diff --git a/app/helpers/checkout_helper.rb b/app/helpers/checkout_helper.rb index 6359cb01bd..57cbfd7b73 100644 --- a/app/helpers/checkout_helper.rb +++ b/app/helpers/checkout_helper.rb @@ -1,4 +1,8 @@ module CheckoutHelper + def guest_checkout_allowed? + current_order.distributor.allow_guest_orders? + end + def checkout_adjustments_for(order, opts={}) adjustments = order.adjustments.eligible exclude = opts[:exclude] || {} diff --git a/app/views/checkout/_authentication.html.haml b/app/views/checkout/_authentication.html.haml index 1c3b06e63b..45d977d8e3 100644 --- a/app/views/checkout/_authentication.html.haml +++ b/app/views/checkout/_authentication.html.haml @@ -4,11 +4,16 @@ %h3.pad-top = t :checkout_headline .row.pad-top - .small-5.columns.text-center - %button.primary.expand{"auth" => "login"} - = t :label_login - .small-2.columns.text-center - %p.pad-top= "-#{t :action_or}-" - .small-5.columns.text-center - %button.neutral-btn.dark.expand{"ng-click" => "enabled = true"} - = t :checkout_as_guest + -if guest_checkout_allowed? + .small-5.columns.text-center + %button.primary.expand{"auth" => "login"} + = t :label_login + .small-2.columns.text-center + %p.pad-top= "-#{t :action_or}-" + .small-5.columns.text-center + %button.neutral-btn.dark.expand{"ng-click" => "enabled = true"} + = t :checkout_as_guest + -else + .small-6.columns.small-centered + %button.primary.expand{"auth" => "login"} + = t :label_login diff --git a/spec/helpers/checkout_helper_spec.rb b/spec/helpers/checkout_helper_spec.rb index e47a5e8c51..880f37520b 100644 --- a/spec/helpers/checkout_helper_spec.rb +++ b/spec/helpers/checkout_helper_spec.rb @@ -20,4 +20,14 @@ describe CheckoutHelper do helper.display_checkout_tax_total(order).should == Spree::Money.new(123.45, currency: 'AUD') end end + + it "knows if guests can checkout" do + distributor = create(:distributor_enterprise) + order = create(:order, distributor: distributor) + helper.stub(:current_order) { order } + expect(helper.guest_checkout_allowed?).to be true + + order.distributor.allow_guest_orders = false + expect(helper.guest_checkout_allowed?).to be false + end end