Change role structure
Still needs to: change the views and create sub_roles in the dev.rake
This commit is contained in:
1 parent
e0cdedfa2e
commit
b7ac5478b4
45 files changed
+608
-492
No files matched your search
@@ -1,5 +0,0 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe Design do
|
||||
pending "add some examples to (or delete) #{__FILE__}"
|
||||
end
|
||||
@@ -0,0 +1,109 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe Role do
|
||||
before do
|
||||
@role = Role.create(:key => 'teacher',
|
||||
:i18n_variable => {:key => 'teacher', :en => 'Teacher', :zh_tw => 'Teacher in Chinese', :document_class => 'Role'},
|
||||
:sub_roles => [{:key => 'undergrad',
|
||||
:attribute_fields => [{:key => 'department'},
|
||||
{:key => 'room'}]},
|
||||
{:key => 'master',
|
||||
:attribute_fields => [{:key => 'department'}]}])
|
||||
end
|
||||
describe 'New role' do
|
||||
describe '#Role' do
|
||||
it 'should have :built_in false' do
|
||||
@role.built_in.should be false
|
||||
end
|
||||
it 'should have :disabled false' do
|
||||
@role.disabled.should be false
|
||||
end
|
||||
it 'should have a i18n_variable' do
|
||||
@role.i18n_variable.should be_an_instance_of I18nVariable
|
||||
end
|
||||
it 'should create sub_roles' do
|
||||
@role.should have(2).sub_roles
|
||||
end
|
||||
it 'should create attribute_fields' do
|
||||
@role.sub_roles[1].should have(1).attribute_fields
|
||||
end
|
||||
end
|
||||
describe '#SubRole' do
|
||||
it 'should have :built_in false' do
|
||||
@role.sub_roles[0].built_in.should be false
|
||||
end
|
||||
it 'should have :disabled false' do
|
||||
@role.sub_roles[0].disabled.should be false
|
||||
end
|
||||
end
|
||||
describe '#AttributeField' do
|
||||
it 'should have :built_in false' do
|
||||
@role.sub_roles[0].attribute_fields[0].built_in.should be false
|
||||
end
|
||||
it 'should have :disabled false' do
|
||||
@role.sub_roles[0].attribute_fields[0].disabled.should be false
|
||||
end
|
||||
end
|
||||
end
|
||||
describe 'Edit role' do
|
||||
describe '#Role' do
|
||||
before do
|
||||
@role.update_attributes({:key => 'student', :i18n_variable => {:en => 'Student'},
|
||||
:sub_roles => [{:key => 'new',
|
||||
:attribute_fields => [{:key => 'bob'},
|
||||
{:key => 'great'}]},
|
||||
{:id => @role.sub_roles[0].id},
|
||||
{:id => @role.sub_roles[1].id}]})
|
||||
end
|
||||
it 'should not be the old :key' do
|
||||
@role.key.should_not == 'teacher'
|
||||
end
|
||||
it 'should be the new :key' do
|
||||
@role.key.should == 'student'
|
||||
end
|
||||
it 'should not be the old :i18n_variable[:en]' do
|
||||
@role.i18n_variable[:en].should_not == 'Teacher'
|
||||
end
|
||||
it 'should be the new :i18n_variable[:en]' do
|
||||
@role.i18n_variable[:en].should == 'Student'
|
||||
end
|
||||
it 'should have one more SubRole' do
|
||||
@role.should have(3).sub_roles
|
||||
end
|
||||
end
|
||||
end
|
||||
describe 'Destroy' do
|
||||
describe '#AttributeField' do
|
||||
before do
|
||||
@role.update_attributes(:key => 'teacher',
|
||||
:i18n_variable => {:key => 'teacher', :en => 'Teacher', :zh_tw => 'Teacher in Chinese', :document_class => 'Role'},
|
||||
:sub_roles_attributes => {'0' => {:id => @role.sub_roles[0].id,
|
||||
:key => 'undergrad',
|
||||
:attribute_fields_attributes => {'0' => {:id => @role.sub_roles[0].attribute_fields[0].id,
|
||||
:key => 'department'},
|
||||
'1' => {:id => @role.sub_roles[0].attribute_fields[1].id,
|
||||
:key => 'room', :_destroy => true}}}})
|
||||
end
|
||||
it 'should have only one AttributeField for the first SubRole' do
|
||||
@role.sub_roles[0].should have(1).attribute_fields
|
||||
end
|
||||
end
|
||||
describe '#I18nVariable' do
|
||||
before do
|
||||
@role.update_attributes(:key => 'teacher',
|
||||
:i18n_variable_attributes => {:id => @role.i18n_variable.id, :key => 'teacher', :en => 'Teacher', :zh_tw => 'Teacher in Chinese', :document_class => 'Role', :_destroy => true})
|
||||
end
|
||||
it 'should not have a I18nVariable' do
|
||||
@role.i18n_variable.should_not be_an_instance_of I18nVariable
|
||||
end
|
||||
end
|
||||
describe '#Role' do
|
||||
it 'should destroy the I18nVariable' do
|
||||
id = @role.i18n_variable.id
|
||||
@role.destroy
|
||||
lambda {I18nVariable.find(id)}.should raise_error
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
Reference in new issue
Block a user