Sha256: 000f84da065eb31d9296c443c8300cf9a12a9b39cb032e793c1887539e5d7e31

Contents?: true

Size: 1.44 KB

Versions: 1

Compression:

Stored size: 1.44 KB

Contents

require 'spec_helper'

class AdminUserPermit
end

class PermitReg
  include CanTango::Registry::Permit
end

describe CanTango::Registry::Permit do
  before do
    @reg = PermitReg.new

    CanTango.config.permits.types.register :user_type
    
    # puts CanTango.config.permits.types.inspect
    
    permit_registry = @reg.registry_for(:user_type)
    permit_registry[:admin] = AdminUserPermit    
  end
  subject { @reg }
  
  describe 'registry_for type' do
    context 'existing type' do
      specify { subject.registry_for(:user_type).should be_a CanTango::Registry::Hash }
    end

    context 'non-existing type' do
      specify do
        lambda { subject.registry_for(:unknown) }.should raise_error
      end
    end
  end

  describe 'registered_for type, name = nil' do
    context 'existing permit' do
      specify { subject.registered_for(:user_type, :admin).should == AdminUserPermit }
    end

    context 'non-existing permit type' do
      specify do
        lambda { subject.registered_for(:not_there, :unknown) }.should raise_error
      end
    end

    context 'non-existing permit' do
      specify do
        subject.registered_for(:user_type, :unknown).should be_nil
      end
    end
  end

  describe 'all' do
    specify do
      subject.all.first.registered.admin.should be_true
    end
  end

  describe 'show_all' do
    before do
      puts subject.show_all
    end
    specify do
      subject.show_all.should match(/admin/)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cantango-permits-0.1.1 spec/cantango/registry/permit_spec.rb