Files
openfoodnetwork/spec/features/admin/enterprise_user_spec.rb
Rohan Mitchell 0e6cd30e7e Edit for clarity
2014-08-19 13:27:45 +10:00

94 lines
2.6 KiB
Ruby

require "spec_helper"
feature %q{
As a Super User
I want to setup users to manage an enterprise
} do
include AuthenticationWorkflow
include WebHelper
let!(:user) { create_enterprise_user }
let!(:supplier1) { create(:supplier_enterprise, name: 'Supplier 1') }
let!(:supplier2) { create(:supplier_enterprise, name: 'Supplier 2') }
let!(:distributor1) { create(:distributor_enterprise, name: 'Distributor 3') }
let!(:distributor2) { create(:distributor_enterprise, name: 'Distributor 4') }
describe "creating an enterprise user" do
context "with no enterprises managed" do
it "assigns an enterprise to a user" do
login_to_admin_section
click_link 'Users'
click_link user.email
click_link 'Edit'
check supplier2.name
click_button 'Update'
user.enterprises.count.should == 1
user.enterprises.first.name.should == supplier2.name
end
end
context "with existing enterprises managed" do
before do
user.enterprise_roles.create!(enterprise: supplier1)
user.enterprise_roles.create!(enterprise: distributor1)
end
it "can remove and add enterprise management for a user" do
login_to_admin_section
click_link 'Users'
click_link user.email
click_link 'Edit'
uncheck distributor1.name # remove
check distributor2.name # add
click_button 'Update'
user.enterprises.count.should == 2
user.enterprises.should include supplier1
user.enterprises.should include distributor2
end
end
end
describe "product management" do
describe "managing supplied products" do
before do
user.enterprise_roles.create!(enterprise: supplier1)
product1 = create(:product, name: 'Green eggs', supplier: supplier1)
product2 = create(:product, name: 'Ham', supplier: supplier2)
login_to_admin_as user
end
it "can manage products that I supply" do
visit spree.admin_products_path
within '#listing_products' do
page.should have_content 'Green eggs'
page.should_not have_content 'Ham'
end
end
end
end
describe "system management lockdown" do
before do
user.enterprise_roles.create!(enterprise: supplier1)
login_to_admin_as user
end
scenario "should not be able to see system configuration" do
visit spree.edit_admin_general_settings_path
page.should have_content 'Unauthorized'
end
scenario "should not be able to see user management" do
visit spree.admin_users_path
page.should have_content 'Unauthorized'
end
end
end