Sha256: a6eda1bf3a07a50f7c134e197972517174865017c667d470989dd43c4990e450

Contents?: true

Size: 1.91 KB

Versions: 16

Compression:

Stored size: 1.91 KB

Contents

require 'spec_helper'

describe Widget do
  before(:all) do
    CapabilityType.create(:internal_identifier => 'test_type', :description => 'Test Type')
    Widget.create(:internal_identifier => "test_widget")
  end

  it "can add capabilities" do
    widget = Widget.find_by_internal_identifier('test_widget')
    admin_user = User.create(:username => 'admin_test', :email => 'admin@gmail.com')
    admin_user.add_role('admin')

    widget.add_capability(:test_type, 'Note', 'admin')
    admin_user.has_capability?(widget, :test_type, 'Note').should eq true
  end

  it "should limit access by capabilites" do
    widget = Widget.find_by_internal_identifier('test_widget')
    employee_user = User.create(:username => 'employee_test', :email => 'employee@gmail.com')
    admin_user = User.create(:username => 'admin_test', :email => 'admin@gmail.com')
    admin_user.add_role('admin')

    widget.add_capability(:test_type, 'Note', 'admin')

    admin_user.has_capability?(widget, :test_type, 'Note').should eq true
    employee_user.has_capability?(widget, 'test_type', 'Note').should eq false
  end

  it "can remove capabilities" do
    widget = Widget.find_by_internal_identifier('test_widget')
    admin_user = User.create(:username => 'admin_test', :email => 'admin@gmail.com')
    admin_user.add_role('admin')
    
    widget.add_capability(:test_type, 'Note', 'admin')

    admin_user.has_capability?(widget, :test_type, 'Note').should eq true
    widget.remove_capability('test_type', 'Note')
    lambda { admin_user.has_capability?(widget, :test_type, 'Note') }.should raise_error ErpTechSvcs::Utils::CompassAccessNegotiator::Errors::CapabilityDoesNotExist, "Capability does not exist."
  end

  after(:all) do
    Widget.destroy_all("internal_identifier = 'test_widget'")
    User.destroy_all("username = 'admin_test'")
    User.destroy_all("username = 'employee_test'")
    CapabilityType.destroy_all("internal_identifier = 'test_type'")
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
erp_app-3.0.16 spec/models/widget_spec.rb
erp_app-3.0.15 spec/models/widget_spec.rb
erp_app-3.0.14 spec/models/widget_spec.rb
erp_app-3.0.13 spec/models/widget_spec.rb
erp_app-3.0.12 spec/models/widget_spec.rb
erp_app-3.0.10 spec/models/widget_spec.rb
erp_app-3.0.9 spec/models/widget_spec.rb
erp_app-3.0.8 spec/models/widget_spec.rb
erp_app-3.0.7 spec/models/widget_spec.rb
erp_app-3.0.6 spec/models/widget_spec.rb
erp_app-3.0.5 spec/models/widget_spec.rb
erp_app-3.0.4 spec/models/widget_spec.rb
erp_app-3.0.3 spec/models/widget_spec.rb
erp_app-3.0.2 spec/models/widget_spec.rb
erp_app-3.0.1 spec/models/widget_spec.rb
erp_app-3.0.0 spec/models/widget_spec.rb