mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
Replace api controller test helpers with easier existing alternatives
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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 }
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user