diff --git a/spec/controllers/spree/admin/products_controller_spec.rb b/spec/controllers/spree/admin/products_controller_spec.rb index aee2b6df56..f05be2bb69 100644 --- a/spec/controllers/spree/admin/products_controller_spec.rb +++ b/spec/controllers/spree/admin/products_controller_spec.rb @@ -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 \ No newline at end of file +end diff --git a/spec/controllers/spree/admin/reports_controller_spec.rb b/spec/controllers/spree/admin/reports_controller_spec.rb index 0afe63c634..432bc4e67f 100644 --- a/spec/controllers/spree/admin/reports_controller_spec.rb +++ b/spec/controllers/spree/admin/reports_controller_spec.rb @@ -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 diff --git a/spec/support/controller_helper.rb b/spec/support/controller_helper.rb index 79cb94e005..de0720283a 100644 --- a/spec/support/controller_helper.rb +++ b/spec/support/controller_helper.rb @@ -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