mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-06 22:36:07 +00:00
Use controller login helpers
This commit is contained in:
@@ -2,14 +2,8 @@ require 'spec_helper'
|
||||
|
||||
describe Spree::Admin::ProductsController do
|
||||
context "Creating a new product" do
|
||||
let(:user) do
|
||||
user = create(:user)
|
||||
user.spree_roles << Spree::Role.find_or_create_by_name!('admin')
|
||||
user
|
||||
end
|
||||
|
||||
before do
|
||||
controller.stub spree_current_user: user
|
||||
login_as_admin
|
||||
end
|
||||
|
||||
it "redirects to bulk_edit when the user hits 'create'" do
|
||||
@@ -52,4 +46,4 @@ describe Spree::Admin::ProductsController do
|
||||
response.should redirect_to "/admin/products/new"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -56,16 +56,7 @@ describe Spree::Admin::ReportsController do
|
||||
|
||||
# As a Distributor Enterprise user for d1
|
||||
context "Distributor Enterprise User" do
|
||||
let(:user) do
|
||||
user = create(:user)
|
||||
user.spree_roles = []
|
||||
d1.enterprise_roles.build(user: user).save
|
||||
user
|
||||
end
|
||||
|
||||
before :each do
|
||||
controller.stub :spree_current_user => user
|
||||
end
|
||||
before { login_as_enterprise_user [d1] }
|
||||
|
||||
describe 'Orders and Distributors' do
|
||||
it "only shows orders that I have access to" do
|
||||
@@ -117,16 +108,7 @@ describe Spree::Admin::ReportsController do
|
||||
|
||||
# As a Supplier Enterprise user for s1
|
||||
context "Supplier" do
|
||||
let(:user) do
|
||||
user = create(:user)
|
||||
user.spree_roles = []
|
||||
s1.enterprise_roles.build(user: user).save
|
||||
user
|
||||
end
|
||||
|
||||
before :each do
|
||||
controller.stub :spree_current_user => user
|
||||
end
|
||||
before { login_as_enterprise_user [s1] }
|
||||
|
||||
describe 'Bulk Coop' do
|
||||
it "only shows product line items that I am supplying" do
|
||||
@@ -157,14 +139,7 @@ describe Spree::Admin::ReportsController do
|
||||
end
|
||||
|
||||
context "Products & Inventory" do
|
||||
let(:user) do
|
||||
user = create(:user)
|
||||
user.spree_roles << Spree::Role.find_or_create_by_name!('admin')
|
||||
user
|
||||
end
|
||||
before do
|
||||
controller.stub spree_current_user: user
|
||||
end
|
||||
before { login_as_admin }
|
||||
|
||||
it "should build distributors for the current user" do
|
||||
spree_get :products_and_inventory
|
||||
@@ -188,24 +163,17 @@ describe Spree::Admin::ReportsController do
|
||||
|
||||
it "creates a ProductAndInventoryReport" do
|
||||
OpenFoodNetwork::ProductsAndInventoryReport.should_receive(:new)
|
||||
.with(user, {"test"=>"foo", "controller"=>"spree/admin/reports", "action"=>"products_and_inventory"})
|
||||
.and_return(report = double(:report))
|
||||
.with(@admin_user, {"test" => "foo", "controller" => "spree/admin/reports", "action" => "products_and_inventory"})
|
||||
.and_return(report = double(:report))
|
||||
report.stub(:header).and_return []
|
||||
report.stub(:table).and_return []
|
||||
spree_get :products_and_inventory, :test => "foo"
|
||||
spree_get :products_and_inventory, test: "foo"
|
||||
assigns(:report).should == report
|
||||
end
|
||||
end
|
||||
|
||||
context "My Customers" do
|
||||
let(:user) do
|
||||
user = create(:user)
|
||||
user.spree_roles << Spree::Role.find_or_create_by_name!('admin')
|
||||
user
|
||||
end
|
||||
before do
|
||||
controller.stub spree_current_user: user
|
||||
end
|
||||
before { login_as_admin }
|
||||
|
||||
it "should have report types for customers" do
|
||||
Spree::Admin::ReportsController::REPORT_TYPES[:customers].should == [
|
||||
@@ -236,13 +204,12 @@ describe Spree::Admin::ReportsController do
|
||||
|
||||
it "creates a CustomersReport" do
|
||||
OpenFoodNetwork::CustomersReport.should_receive(:new)
|
||||
.with(user, {"test"=>"foo", "controller"=>"spree/admin/reports", "action"=>"customers"})
|
||||
.and_return(report = double(:report))
|
||||
.with(@admin_user, {"test" => "foo", "controller" => "spree/admin/reports", "action" => "customers"})
|
||||
.and_return(report = double(:report))
|
||||
report.stub(:header).and_return []
|
||||
report.stub(:table).and_return []
|
||||
spree_get :customers, :test => "foo"
|
||||
spree_get :customers, test: "foo"
|
||||
assigns(:report).should == report
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -2,12 +2,25 @@ module OpenFoodNetwork
|
||||
module ControllerHelper
|
||||
def login_as_admin
|
||||
@admin_user ||= begin
|
||||
user = create(:user)
|
||||
user.spree_roles << Spree::Role.find_or_create_by_name!('admin')
|
||||
user
|
||||
end
|
||||
user = create(:user)
|
||||
user.spree_roles << Spree::Role.find_or_create_by_name!('admin')
|
||||
user
|
||||
end
|
||||
|
||||
controller.stub spree_current_user: @admin_user
|
||||
end
|
||||
|
||||
def login_as_enterprise_user(enterprises)
|
||||
@enterprise_user ||= begin
|
||||
user = create(:user)
|
||||
user.spree_roles = []
|
||||
enterprises.each do |enterprise|
|
||||
enterprise.enterprise_roles.create!(user: user)
|
||||
end
|
||||
user
|
||||
end
|
||||
|
||||
controller.stub spree_current_user: @enterprise_user
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user