From cfdfd82d9ab0a80b06b3a10adcfcc963b0a232ee Mon Sep 17 00:00:00 2001 From: Luis Ramos Date: Mon, 31 Aug 2020 17:05:51 +0100 Subject: [PATCH] Replace api controller test helpers with easier existing alternatives --- lib/spree/api/testing_support/setup.rb | 37 ------------------- .../api/product_images_controller_spec.rb | 3 +- .../api/variants_controller_spec.rb | 4 +- spec/spec_helper.rb | 2 - 4 files changed, 3 insertions(+), 43 deletions(-) delete mode 100644 lib/spree/api/testing_support/setup.rb diff --git a/lib/spree/api/testing_support/setup.rb b/lib/spree/api/testing_support/setup.rb deleted file mode 100644 index 666b673c23..0000000000 --- a/lib/spree/api/testing_support/setup.rb +++ /dev/null @@ -1,37 +0,0 @@ -module Spree - module Api - module TestingSupport - module Setup - # enterprises is an array of variable names of let defines - # eg. - # let(:enterprise) { ... } - # sign_in_as_enterprise_user! [:enterprise] - def sign_in_as_enterprise_user!(enterprises) - let!(:current_api_user) do - user = create(:user) - user.spree_roles = [] - enterprises.each do |enterprise| - user.enterprise_roles.create(enterprise: public_send(enterprise)) - end - user.save! - user - end - end - - def sign_in_as_admin! - let!(:current_api_user) do - user = Spree::LegacyUser.new(email: "ofn@example.com") - user.stub(:has_spree_role?).with("admin").and_return(true) - - # Stub enterprises, needed for cancan ability checks - user.stub(:enterprises) { [] } - user.stub(:owned_groups) { [] } - - user.stub(:spree_api_key) { "admin_spree_api_key" } - user - end - end - end - end - end -end diff --git a/spec/controllers/api/product_images_controller_spec.rb b/spec/controllers/api/product_images_controller_spec.rb index 44fb239e38..b5af0ca03c 100644 --- a/spec/controllers/api/product_images_controller_spec.rb +++ b/spec/controllers/api/product_images_controller_spec.rb @@ -14,8 +14,7 @@ module Api let(:image) { Rack::Test::UploadedFile.new(image_path, 'image/png') } let!(:product_without_image) { create(:product) } let!(:product_with_image) { create(:product_with_image) } - - sign_in_as_admin! + let(:current_api_user) { create(:admin_user) } it "saves a new image when none is present" do xhr :post, :update_product_image, product_id: product_without_image.id, file: image, use_route: :product_images diff --git a/spec/controllers/api/variants_controller_spec.rb b/spec/controllers/api/variants_controller_spec.rb index e222382957..b1d658af6d 100644 --- a/spec/controllers/api/variants_controller_spec.rb +++ b/spec/controllers/api/variants_controller_spec.rb @@ -84,7 +84,7 @@ describe Api::VariantsController, type: :controller do end context "as an enterprise user" do - sign_in_as_enterprise_user! [:supplier] + let(:current_api_user) { create(:user, enterprises: [supplier]) } let(:supplier_other) { create(:supplier_enterprise) } let(:product) { create(:product, supplier: supplier) } let(:variant) { product.master } @@ -109,7 +109,7 @@ describe Api::VariantsController, type: :controller do end context "as an administrator" do - sign_in_as_admin! + let(:current_api_user) { create(:admin_user) } let(:product) { create(:product) } let(:variant) { product.master } diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index f1111e7576..3dc3a99210 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -43,7 +43,6 @@ WebMock.disable_net_connect!( # Requires supporting ruby files with custom matchers and macros, etc, # in spec/support/ and its subdirectories. Dir[Rails.root.join("spec/support/**/*.rb")].sort.each { |f| require f } -require 'spree/api/testing_support/setup' require 'support/api_helper' # Capybara config @@ -159,7 +158,6 @@ RSpec.configure do |config| config.include PreferencesHelper config.include ControllerRequestsHelper, type: :controller config.include Devise::TestHelpers, type: :controller - config.extend Spree::Api::TestingSupport::Setup, type: :controller config.include OpenFoodNetwork::ApiHelper, type: :controller config.include OpenFoodNetwork::ControllerHelper, type: :controller config.include Features::DatepickerHelper, type: :feature