diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 6f3bbb554b..1013c35643 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -931,7 +931,6 @@ Style/FrozenStringLiteralComment: - 'app/helpers/spree/admin/base_helper.rb' - 'app/helpers/spree/admin/general_settings_helper.rb' - 'app/helpers/spree/admin/orders_helper.rb' - - 'app/helpers/spree/admin/payments_helper.rb' - 'app/helpers/spree/admin/taxons_helper.rb' - 'app/helpers/spree/admin/zones_helper.rb' - 'app/helpers/spree/orders_helper.rb' diff --git a/Gemfile b/Gemfile index a4a9aa0de4..4ac3cfdd4a 100644 --- a/Gemfile +++ b/Gemfile @@ -4,7 +4,7 @@ source 'https://rubygems.org' ruby "2.5.8" git_source(:github) { |repo_name| "https://github.com/#{repo_name}.git" } -gem 'rails', '~> 5.0.0' +gem 'rails', '~> 5.2' gem 'activemerchant', '>= 1.78.0' gem 'angular-rails-templates', '>= 0.3.0' @@ -75,6 +75,7 @@ gem 'dalli' gem 'figaro' gem 'geocoder' gem 'gmaps4rails' +gem 'mimemagic', '> 0.3.5' gem 'paper_trail', '~> 10.3.1' gem 'paperclip', '~> 3.4.1' gem 'rack-rewrite' diff --git a/Gemfile.lock b/Gemfile.lock index 93f376884c..6d6685037b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -47,47 +47,47 @@ PATH GEM remote: https://rubygems.org/ specs: - actioncable (5.0.7.2) - actionpack (= 5.0.7.2) - nio4r (>= 1.2, < 3.0) - websocket-driver (~> 0.6.1) - actionmailer (5.0.7.2) - actionpack (= 5.0.7.2) - actionview (= 5.0.7.2) - activejob (= 5.0.7.2) + actioncable (5.2.4.5) + actionpack (= 5.2.4.5) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + actionmailer (5.2.4.5) + actionpack (= 5.2.4.5) + actionview (= 5.2.4.5) + activejob (= 5.2.4.5) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (5.0.7.2) - actionview (= 5.0.7.2) - activesupport (= 5.0.7.2) - rack (~> 2.0) - rack-test (~> 0.6.3) + actionpack (5.2.4.5) + actionview (= 5.2.4.5) + activesupport (= 5.2.4.5) + rack (~> 2.0, >= 2.0.8) + rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.2) actionpack-action_caching (1.2.1) actionpack (>= 4.0.0) - actionview (5.0.7.2) - activesupport (= 5.0.7.2) + actionview (5.2.4.5) + activesupport (= 5.2.4.5) builder (~> 3.1) - erubis (~> 2.7.0) + erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.3) active_model_serializers (0.8.4) activemodel (>= 3.0) - activejob (5.0.7.2) - activesupport (= 5.0.7.2) + activejob (5.2.4.5) + activesupport (= 5.2.4.5) globalid (>= 0.3.6) activemerchant (1.119.0) activesupport (>= 4.2) builder (>= 2.1.2, < 4.0.0) i18n (>= 0.6.9) nokogiri (~> 1.4) - activemodel (5.0.7.2) - activesupport (= 5.0.7.2) - activerecord (5.0.7.2) - activemodel (= 5.0.7.2) - activesupport (= 5.0.7.2) - arel (~> 7.0) + activemodel (5.2.4.5) + activesupport (= 5.2.4.5) + activerecord (5.2.4.5) + activemodel (= 5.2.4.5) + activesupport (= 5.2.4.5) + arel (>= 9.0) activerecord-import (1.0.8) activerecord (>= 3.2) activerecord-postgresql-adapter (0.0.1) @@ -98,7 +98,11 @@ GEM multi_json (~> 1.11, >= 1.11.2) rack (>= 1.5.2, < 3) railties (>= 4.0) - activesupport (5.0.7.2) + activestorage (5.2.4.5) + actionpack (= 5.2.4.5) + activerecord (= 5.2.4.5) + marcel (~> 0.3.1) + activesupport (5.2.4.5) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) @@ -118,7 +122,7 @@ GEM railties (>= 3, < 7) angularjs-file-upload-rails (2.4.1) angularjs-rails (1.5.5) - arel (7.1.4) + arel (9.0.0) ast (2.4.2) atomic (1.1.101) awesome_nested_set (3.4.0) @@ -216,7 +220,6 @@ GEM diff-lcs (1.4.4) docile (1.3.5) erubi (1.10.0) - erubis (2.7.0) eventmachine (1.2.7) excon (0.79.0) execjs (2.7.0) @@ -328,10 +331,15 @@ GEM nokogiri (>= 1.5.9) mail (2.7.1) mini_mime (>= 0.1.1) + marcel (0.3.3) + mimemagic (~> 0.3.2) method_source (1.0.0) mime-types (3.3.1) mime-types-data (~> 3.2015) mime-types-data (3.2020.1104) + mimemagic (0.3.10) + nokogiri (~> 1) + rake mini_mime (1.0.3) mini_portile2 (2.5.1) mini_racer (0.4.0) @@ -347,7 +355,7 @@ GEM multipart-post (2.1.1) mustermann (1.1.1) ruby2_keywords (~> 0.0.1) - nio4r (2.5.2) + nio4r (2.5.7) nokogiri (1.11.3) mini_portile2 (~> 2.5.0) racc (~> 1.4) @@ -397,19 +405,20 @@ GEM rack-rewrite (1.5.1) rack-ssl (1.4.1) rack - rack-test (0.6.3) - rack (>= 1.0) - rails (5.0.7.2) - actioncable (= 5.0.7.2) - actionmailer (= 5.0.7.2) - actionpack (= 5.0.7.2) - actionview (= 5.0.7.2) - activejob (= 5.0.7.2) - activemodel (= 5.0.7.2) - activerecord (= 5.0.7.2) - activesupport (= 5.0.7.2) + rack-test (1.1.0) + rack (>= 1.0, < 3) + rails (5.2.4.5) + actioncable (= 5.2.4.5) + actionmailer (= 5.2.4.5) + actionpack (= 5.2.4.5) + actionview (= 5.2.4.5) + activejob (= 5.2.4.5) + activemodel (= 5.2.4.5) + activerecord (= 5.2.4.5) + activestorage (= 5.2.4.5) + activesupport (= 5.2.4.5) bundler (>= 1.3.0) - railties (= 5.0.7.2) + railties (= 5.2.4.5) sprockets-rails (>= 2.0.0) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) @@ -424,12 +433,12 @@ GEM i18n (>= 0.7, < 2) railties (>= 5.0, < 6) rails_safe_tasks (1.0.0) - railties (5.0.7.2) - actionpack (= 5.0.7.2) - activesupport (= 5.0.7.2) + railties (5.2.4.5) + actionpack (= 5.2.4.5) + activesupport (= 5.2.4.5) method_source rake (>= 0.8.7) - thor (>= 0.18.1, < 2.0) + thor (>= 0.19.0, < 2.0) rainbow (3.0.0) raindrops (0.19.1) rake (13.0.3) @@ -551,12 +560,12 @@ GEM activesupport (>= 4.0) sprockets (>= 3.0.0) state_machines (0.5.0) - state_machines-activemodel (0.7.1) - activemodel (>= 4.1) + state_machines-activemodel (0.8.0) + activemodel (>= 5.1) state_machines (>= 0.5.0) - state_machines-activerecord (0.6.0) - activerecord (>= 4.1) - state_machines-activemodel (>= 0.5.0) + state_machines-activerecord (0.8.0) + activerecord (>= 5.1) + state_machines-activemodel (>= 0.8.0) stringex (2.8.5) stripe (5.30.0) temple (0.8.2) @@ -596,7 +605,7 @@ GEM addressable (>= 2.3.6) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) - websocket-driver (0.6.5) + websocket-driver (0.7.3) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) whenever (1.0.0) @@ -680,6 +689,7 @@ DEPENDENCIES kaminari (~> 1.2.1) knapsack letter_opener (>= 1.4.1) + mimemagic (> 0.3.5) mini_racer (= 0.4.0) monetize (~> 1.11) oauth2 (~> 1.4.7) @@ -695,7 +705,7 @@ DEPENDENCIES rack-mini-profiler (< 3.0.0) rack-rewrite rack-ssl - rails (~> 5.0.0) + rails (~> 5.2) rails-controller-testing rails-i18n rails_safe_tasks (~> 1.0) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 399d1ae9e1..fb08a08549 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -13,6 +13,20 @@ class ApplicationController < ActionController::Base self.responder = ApplicationResponder respond_to :html + helper 'spree/base' + helper 'spree/orders' + helper 'spree/payment_methods' + helper 'shared' + helper 'enterprises' + helper 'order_cycles' + helper 'order' + helper 'shop' + helper 'injection' + helper 'markdown' + helper 'footer_links' + helper 'discourse' + helper 'checkout' + protect_from_forgery include Spree::Core::ControllerHelpers::Auth diff --git a/app/controllers/base_controller.rb b/app/controllers/base_controller.rb index 8ea4718cb5..312dee2063 100644 --- a/app/controllers/base_controller.rb +++ b/app/controllers/base_controller.rb @@ -13,8 +13,6 @@ class BaseController < ApplicationController include I18nHelper include OrderCyclesHelper - helper 'spree/base' - before_action :set_locale before_action :check_order_cycle_expiry diff --git a/app/controllers/registration_controller.rb b/app/controllers/registration_controller.rb index 71e621f077..11f37fec13 100644 --- a/app/controllers/registration_controller.rb +++ b/app/controllers/registration_controller.rb @@ -2,9 +2,12 @@ require 'open_food_network/spree_api_key_loader' class RegistrationController < BaseController include OpenFoodNetwork::SpreeApiKeyLoader + + layout 'registration' + helper 'map' + before_action :load_spree_api_key, only: [:index] before_action :check_user, except: :authenticate - layout 'registration' def index @enterprise_attributes = { sells: 'none' } diff --git a/app/controllers/spree/admin/base_controller.rb b/app/controllers/spree/admin/base_controller.rb index 395baa538e..f218fe9f96 100644 --- a/app/controllers/spree/admin/base_controller.rb +++ b/app/controllers/spree/admin/base_controller.rb @@ -3,7 +3,15 @@ module Spree class BaseController < ApplicationController ssl_required + helper 'shared' helper 'spree/admin/navigation' + helper 'spree/admin/orders' + helper 'admin/injection' + helper 'admin/orders' + helper 'admin/enterprises' + helper 'enterprise_fees' + helper 'angular_form' + layout '/spree/layouts/admin' include I18nHelper diff --git a/app/controllers/spree/admin/orders_controller.rb b/app/controllers/spree/admin/orders_controller.rb index bb4e1943d1..3eb0116d46 100644 --- a/app/controllers/spree/admin/orders_controller.rb +++ b/app/controllers/spree/admin/orders_controller.rb @@ -68,14 +68,16 @@ module Spree rescue Spree::Core::GatewayError => e flash[:error] = e.message.to_s ensure - redirect_to :back + redirect_back fallback_location: spree.admin_dashboard_path end def resend Spree::OrderMailer.confirm_email_for_customer(@order.id, true).deliver_later flash[:success] = t('admin.orders.order_email_resent') - respond_with(@order) { |format| format.html { redirect_to :back } } + respond_with(@order) do |format| + format.html { redirect_back(fallback_location: spree.admin_dashboard_path) } + end end def invoice diff --git a/app/controllers/spree/admin/return_authorizations_controller.rb b/app/controllers/spree/admin/return_authorizations_controller.rb index 094dd37d4a..313227f368 100644 --- a/app/controllers/spree/admin/return_authorizations_controller.rb +++ b/app/controllers/spree/admin/return_authorizations_controller.rb @@ -8,7 +8,7 @@ module Spree def fire @return_authorization.public_send("#{params[:e]}!") flash[:success] = Spree.t(:return_authorization_updated) - redirect_to :back + redirect_back fallback_location: spree.admin_dashboard_path end protected diff --git a/app/helpers/spree/admin/payments_helper.rb b/app/helpers/spree/admin/payments_helper.rb deleted file mode 100644 index 529ef90adf..0000000000 --- a/app/helpers/spree/admin/payments_helper.rb +++ /dev/null @@ -1,11 +0,0 @@ -module Spree - module Admin - module PaymentsHelper - def payment_method_name(payment) - # hack to allow us to retrieve the name of a "deleted" payment method - id = payment.payment_method_id - Spree::PaymentMethod.find_with_destroyed(id).name - end - end - end -end diff --git a/app/helpers/spree/payment_methods_helper.rb b/app/helpers/spree/payment_methods_helper.rb new file mode 100644 index 0000000000..00abd77eef --- /dev/null +++ b/app/helpers/spree/payment_methods_helper.rb @@ -0,0 +1,9 @@ +module Spree + module PaymentMethodsHelper + def payment_method_name(payment) + # hack to allow us to retrieve the name of a "deleted" payment method + id = payment.payment_method_id + Spree::PaymentMethod.find_with_destroyed(id).name + end + end +end diff --git a/app/mailers/spree/order_mailer.rb b/app/mailers/spree/order_mailer.rb index 00002715c3..a8056c1778 100644 --- a/app/mailers/spree/order_mailer.rb +++ b/app/mailers/spree/order_mailer.rb @@ -4,7 +4,7 @@ module Spree class OrderMailer < BaseMailer helper 'checkout' helper SpreeCurrencyHelper - helper Spree::Admin::PaymentsHelper + helper Spree::PaymentMethodsHelper helper OrderHelper helper MailerHelper include I18nHelper diff --git a/app/mailers/subscription_mailer.rb b/app/mailers/subscription_mailer.rb index dd20008bfc..90efc9ee40 100644 --- a/app/mailers/subscription_mailer.rb +++ b/app/mailers/subscription_mailer.rb @@ -3,7 +3,7 @@ class SubscriptionMailer < Spree::BaseMailer helper MailerHelper helper ShopMailHelper helper OrderHelper - helper Spree::Admin::PaymentsHelper + helper Spree::PaymentMethodsHelper include I18nHelper def confirmation_email(order) diff --git a/app/models/spree/credit_card.rb b/app/models/spree/credit_card.rb index ef51c4898b..eb31597d5b 100644 --- a/app/models/spree/credit_card.rb +++ b/app/models/spree/credit_card.rb @@ -147,7 +147,7 @@ module Spree end def default_card_needs_updating? - is_default_changed? || gateway_customer_profile_id_changed? + saved_change_to_is_default? || saved_change_to_gateway_customer_profile_id? end def ensure_single_default_card diff --git a/app/models/spree/line_item.rb b/app/models/spree/line_item.rb index 97cd7dd888..61bed0c1d0 100644 --- a/app/models/spree/line_item.rb +++ b/app/models/spree/line_item.rb @@ -226,7 +226,7 @@ module Spree end def update_order - return unless changed? || destroyed? + return unless saved_changes.present? || destroyed? # update the order totals, etc. order.create_tax_charge! diff --git a/app/models/spree/payment.rb b/app/models/spree/payment.rb index e9173d59a1..d16e428922 100644 --- a/app/models/spree/payment.rb +++ b/app/models/spree/payment.rb @@ -201,7 +201,7 @@ module Spree end def update_order - order.reload.update! + order.update! end # Necessary because some payment gateways will refuse payments with diff --git a/app/models/spree/product.rb b/app/models/spree/product.rb index 6bd6cbc3dd..a2ae860d9f 100755 --- a/app/models/spree/product.rb +++ b/app/models/spree/product.rb @@ -433,7 +433,7 @@ module Spree end def update_units - return unless variant_unit_changed? + return unless saved_change_to_variant_unit? option_types.delete self.class.all_variant_unit_option_types option_types << variant_unit_option_type if variant_unit.present? @@ -449,9 +449,9 @@ module Spree end def remove_previous_primary_taxon_from_taxons - return unless primary_taxon_id_changed? && primary_taxon_id_was + return unless saved_change_to_primary_taxon_id? && primary_taxon_id_before_last_save - taxons.destroy(primary_taxon_id_was) + taxons.destroy(primary_taxon_id_before_last_save) end def ensure_standard_variant @@ -465,7 +465,7 @@ module Spree # Spree creates a permalink already but our implementation fixes an edge case. def sanitize_permalink - return unless permalink.blank? || permalink_changed? + return unless permalink.blank? || saved_change_to_permalink? || permalink_changed? requested = permalink.presence || permalink_was.presence || name.presence || 'product' self.permalink = create_unique_permalink(requested.parameterize) diff --git a/app/services/permitted_attributes/order_cycle.rb b/app/services/permitted_attributes/order_cycle.rb index f46a4c63d2..987bd3adf2 100644 --- a/app/services/permitted_attributes/order_cycle.rb +++ b/app/services/permitted_attributes/order_cycle.rb @@ -35,23 +35,8 @@ module PermittedAttributes :tag_list, tags: [:text], enterprise_fee_ids: [], - variants: permitted_variant_ids + variants: {} ] end - - # In rails 5 we will be able to permit random hash keys simply with :variants => {} - # See https://github.com/rails/rails/commit/e86524c0c5a26ceec92895c830d1355ae47a7034 - # - # Until then, we need to create an array of variant IDs in order to permit them - def permitted_variant_ids - variant_ids(@params[:order_cycle][:incoming_exchanges]) + - variant_ids(@params[:order_cycle][:outgoing_exchanges]) - end - - def variant_ids(exchange_params) - return [] unless exchange_params - - exchange_params.map { |exchange| exchange[:variants].map { |key, _value| key } }.flatten - end end end diff --git a/config/application.rb b/config/application.rb index 20fe4aa4b8..45c68a66b3 100644 --- a/config/application.rb +++ b/config/application.rb @@ -198,6 +198,8 @@ module Openfoodnetwork config.active_job.queue_adapter = :delayed_job + config.action_controller.include_all_helpers = false + config.generators.template_engine = :haml end end diff --git a/engines/order_management/spec/controllers/order_management/reports/bulk_coop_controller_spec.rb b/engines/order_management/spec/controllers/order_management/reports/bulk_coop_controller_spec.rb index 4476edd9cf..cc8552dc46 100644 --- a/engines/order_management/spec/controllers/order_management/reports/bulk_coop_controller_spec.rb +++ b/engines/order_management/spec/controllers/order_management/reports/bulk_coop_controller_spec.rb @@ -25,10 +25,12 @@ describe OrderManagement::Reports::BulkCoopController, type: :controller do describe "#create" do context "when the parameters are valid" do it "sends the generated report in the correct format" do - post :create, report: { - start_at: "2018-10-09 07:30:00", - report_type: "bulk_coop_supplier_report" - }, report_format: "csv" + post :create, params: { + report: { + start_at: "2018-10-09 07:30:00", + report_type: "bulk_coop_supplier_report" + }, report_format: "csv" + } expect(response).to be_success expect(response.body).not_to be_blank @@ -38,10 +40,12 @@ describe OrderManagement::Reports::BulkCoopController, type: :controller do context "when the parameters are invalid" do it "renders the report form with an error" do - post :create, report: { - start_at: "invalid_date", - report_type: "bulk_coop_supplier_report" - }, report_format: "csv" + post :create, params: { + report: { + start_at: "invalid_date", + report_type: "bulk_coop_supplier_report" + }, report_format: "csv" + } expect(flash[:error]).to eq(I18n.t("invalid_filter_parameters", scope: i18n_scope)) expect(response).to render_template(new_template_path) @@ -55,10 +59,12 @@ describe OrderManagement::Reports::BulkCoopController, type: :controller do let(:current_user) { distributor.owner } it "renders the report form with an error" do - post :create, report: { - distributor_ids: [other_distributor.id], - report_type: "bulk_coop_supplier_report" - }, report_format: "csv" + post :create, params: { + report: { + distributor_ids: [other_distributor.id], + report_type: "bulk_coop_supplier_report" + }, report_format: "csv" + } expect(flash[:error]).to eq(report_klass::Authorizer.parameter_not_allowed_error_message) expect(response).to render_template(new_template_path) @@ -72,7 +78,7 @@ describe OrderManagement::Reports::BulkCoopController, type: :controller do let(:current_user) { distributor.owner } it "applies permissions to report" do - post :create, report: {}, report_format: "csv" + post :create, params: { report: {}, report_format: "csv" } expect(assigns(:permissions).allowed_distributors.to_a).to eq([distributor]) end diff --git a/engines/order_management/spec/controllers/order_management/reports/enterprise_fee_summaries_controller_spec.rb b/engines/order_management/spec/controllers/order_management/reports/enterprise_fee_summaries_controller_spec.rb index da66c005f4..5008cd65d2 100644 --- a/engines/order_management/spec/controllers/order_management/reports/enterprise_fee_summaries_controller_spec.rb +++ b/engines/order_management/spec/controllers/order_management/reports/enterprise_fee_summaries_controller_spec.rb @@ -25,7 +25,9 @@ describe OrderManagement::Reports::EnterpriseFeeSummariesController, type: :cont describe "#create" do context "when the parameters are valid" do it "sends the generated report in the correct format" do - post :create, report: { start_at: "2018-10-09 07:30:00" }, report_format: "csv" + post :create, params: { + report: { start_at: "2018-10-09 07:30:00" }, report_format: "csv" + } expect(response).to be_success expect(response.body).not_to be_blank @@ -35,7 +37,9 @@ describe OrderManagement::Reports::EnterpriseFeeSummariesController, type: :cont context "when the parameters are invalid" do it "renders the report form with an error" do - post :create, report: { start_at: "invalid date" }, report_format: "csv" + post :create, params: { + report: { start_at: "invalid date" }, report_format: "csv" + } expect(flash[:error]).to eq(I18n.t("invalid_filter_parameters", scope: i18n_scope)) expect(response).to render_template(new_template_path) @@ -49,7 +53,9 @@ describe OrderManagement::Reports::EnterpriseFeeSummariesController, type: :cont let(:current_user) { distributor.owner } it "renders the report form with an error" do - post :create, report: { distributor_ids: [other_distributor.id] }, report_format: "csv" + post :create, params: { + report: { distributor_ids: [other_distributor.id] }, report_format: "csv" + } expect(flash[:error]).to eq(report_klass::Authorizer.parameter_not_allowed_error_message) expect(response).to render_template(new_template_path) @@ -66,7 +72,7 @@ describe OrderManagement::Reports::EnterpriseFeeSummariesController, type: :cont let(:current_user) { distributor.owner } it "applies permissions to report" do - post :create, report: {}, report_format: "csv" + post :create, params: { report: {}, report_format: "csv" } expect(assigns(:permissions).allowed_order_cycles.to_a).to eq([order_cycle]) end diff --git a/spec/features/admin/reports/payments_report_spec.rb b/spec/features/admin/reports/payments_report_spec.rb index 11c828593e..8ed50fcf70 100644 --- a/spec/features/admin/reports/payments_report_spec.rb +++ b/spec/features/admin/reports/payments_report_spec.rb @@ -56,7 +56,7 @@ describe "Payments Reports" do order.ship_total.to_f + other_order.ship_total.to_f, order.outstanding_balance.to_f + other_order.outstanding_balance.to_f, order.total.to_f + other_order.total.to_f - ].join(" ")) + ].compact.join(" ")) end end diff --git a/spec/requests/large_request_spec.rb b/spec/requests/large_request_spec.rb index 5631ef4f05..979b6c941d 100644 --- a/spec/requests/large_request_spec.rb +++ b/spec/requests/large_request_spec.rb @@ -7,7 +7,7 @@ require 'spec_helper' RSpec.describe 'A very large request', type: :request do it 'should not overflow cookies' do - get '/admin', foo: 'x' * ActionDispatch::Cookies::MAX_COOKIE_SIZE + get '/admin', params: { foo: 'x' * ActionDispatch::Cookies::MAX_COOKIE_SIZE } expect(response.status).to eq(302) # HTTP status 302 - Found ## Use the newer syntax if rspec gets upgraded # expect(response).to have_http_status(:redirect) diff --git a/spec/services/bulk_invoice_service_spec.rb b/spec/services/bulk_invoice_service_spec.rb index 78a324f0f2..b145dc8501 100644 --- a/spec/services/bulk_invoice_service_spec.rb +++ b/spec/services/bulk_invoice_service_spec.rb @@ -1,11 +1,11 @@ # frozen_string_literal: false require 'spec_helper' -require 'spree/admin/payments_helper' +require 'spree/payment_methods_helper' describe BulkInvoiceService do include ActiveJob::TestHelper - include Spree::Admin::PaymentsHelper + include Spree::PaymentMethodsHelper let(:service) { BulkInvoiceService.new } diff --git a/spec/services/checkout/stripe_redirect_spec.rb b/spec/services/checkout/stripe_redirect_spec.rb index 05b46dfe25..6d5830e3c9 100644 --- a/spec/services/checkout/stripe_redirect_spec.rb +++ b/spec/services/checkout/stripe_redirect_spec.rb @@ -38,6 +38,8 @@ describe Checkout::StripeRedirect do it "returns the redirect path" do stripe_payment = create(:payment, payment_method_id: payment_method.id) order.payments << stripe_payment + allow(OrderPaymentFinder).to receive_message_chain(:new, :last_pending_payment). + and_return(stripe_payment) allow(stripe_payment).to receive(:authorize!) do # Authorization moves the payment state from checkout/processing to pending stripe_payment.state = 'pending' diff --git a/spec/services/embedded_page_service_spec.rb b/spec/services/embedded_page_service_spec.rb index 1d85ab69c3..20cb156969 100644 --- a/spec/services/embedded_page_service_spec.rb +++ b/spec/services/embedded_page_service_spec.rb @@ -6,7 +6,7 @@ describe EmbeddedPageService do let(:enterprise_slug) { 'test-enterprise' } let(:params) { { controller: 'enterprises', action: 'shop', id: enterprise_slug, embedded_shopfront: true } } let(:session) { {} } - let(:request) { ActionController::TestRequest.new({'HTTP_HOST' => 'ofn-instance.com', 'HTTP_REFERER' => 'https://embedding-enterprise.com'}, nil) } + let(:request) { ActionController::TestRequest.new({'HTTP_HOST' => 'ofn-instance.com', 'HTTP_REFERER' => 'https://embedding-enterprise.com'}, nil, nil) } let(:response) { ActionDispatch::TestResponse.new(200, 'X-Frame-Options' => 'DENY', 'Content-Security-Policy' => "frame-ancestors 'none'") } let(:service) { EmbeddedPageService.new(params, session, request, response) } @@ -63,7 +63,7 @@ describe EmbeddedPageService do end context "when the request's referer is malformed" do - let(:request) { ActionController::TestRequest.new({'HTTP_HOST' => 'ofn-instance.com', 'HTTP_REFERER' => 'hello'}, nil) } + let(:request) { ActionController::TestRequest.new({'HTTP_HOST' => 'ofn-instance.com', 'HTTP_REFERER' => 'hello'}, nil, nil) } before do service.embed! end diff --git a/spec/services/invoice_renderer_spec.rb b/spec/services/invoice_renderer_spec.rb index cb861d2da6..2818ee8926 100644 --- a/spec/services/invoice_renderer_spec.rb +++ b/spec/services/invoice_renderer_spec.rb @@ -1,10 +1,10 @@ # frozen_string_literal: true require 'spec_helper' -require 'spree/admin/payments_helper' +require 'spree/payment_methods_helper' describe InvoiceRenderer do - include Spree::Admin::PaymentsHelper + include Spree::PaymentMethodsHelper let(:service) { described_class.new } let(:order) do diff --git a/spec/views/spree/admin/shared/_order_links.html.haml_spec.rb b/spec/views/spree/admin/shared/_order_links.html.haml_spec.rb index 264a81976b..b15eb93f02 100644 --- a/spec/views/spree/admin/shared/_order_links.html.haml_spec.rb +++ b/spec/views/spree/admin/shared/_order_links.html.haml_spec.rb @@ -4,6 +4,7 @@ require "spec_helper" describe "spree/admin/shared/_order_links.html.haml" do helper Spree::BaseHelper # required to make pretty_time work + helper Spree::Admin::OrdersHelper before do order = create(:order)