diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 79ffc05b..d09484f8 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -66,6 +66,10 @@ describe User do it { should ensure_length_of(:bio).is_within(0..255) } end + describe 'modules' do + it { should include_module(Account) } + end + describe "Respond to" do it { should respond_to(:is_admin?) } it { should respond_to(:identifier) } @@ -115,16 +119,4 @@ describe User do user.authentication_token.should_not be_blank end end - - describe 'projects and namespaces' do - before do - ActiveRecord::Base.observers.enable(:user_observer) - @user = create :user - @project = create :project, namespace: @user.namespace - end - - it { @user.authorized_projects.should include(@project) } - it { @user.my_own_projects.should include(@project) } - it { @user.several_namespaces?.should be_false } - end end diff --git a/spec/roles/account_role_spec.rb b/spec/roles/account_role_spec.rb new file mode 100644 index 00000000..4b214551 --- /dev/null +++ b/spec/roles/account_role_spec.rb @@ -0,0 +1,44 @@ +require 'spec_helper' + +describe User, "Account" do + describe 'normal user' do + let(:user) { create(:user, name: 'John Smith') } + + it { user.is_admin?.should be_false } + it { user.require_ssh_key?.should be_true } + it { user.can_create_group?.should be_false } + it { user.can_create_project?.should be_true } + it { user.first_name.should == 'John' } + end + + describe 'blocking user' do + let(:user) { create(:user, name: 'John Smith') } + + it "should block user" do + user.block + user.blocked.should be_true + end + end + + describe 'projects' do + before do + ActiveRecord::Base.observers.enable(:user_observer) + @user = create :user + @project = create :project, namespace: @user.namespace + end + + it { @user.authorized_projects.should include(@project) } + it { @user.my_own_projects.should include(@project) } + end + + describe 'namespaced' do + before do + ActiveRecord::Base.observers.enable(:user_observer) + @user = create :user + @project = create :project, namespace: @user.namespace + end + + it { @user.several_namespaces?.should be_false } + it { @user.namespaces.should == [@user.namespace] } + end +end