diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-01-02 21:00:00 +0400 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-01-02 21:00:00 +0400 |
commit | 00a1f5bc2cc2c98bda3818e770eaae95e664480a (patch) | |
tree | 957597fc0a568cbf92dd1d4377b771c39a671300 /spec/models/user_spec.rb | |
parent | 91995909d9ef6fc5540c7577987ed2244ac7862a (diff) |
Project has now correct owner and creator. Increased test coverage
Diffstat (limited to 'spec/models/user_spec.rb')
-rw-r--r-- | spec/models/user_spec.rb | 68 |
1 files changed, 67 insertions, 1 deletions
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index d09484f8fe0..eb2717e38f3 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -39,7 +39,6 @@ describe User do describe "Associations" do it { should have_one(:namespace) } it { should have_many(:users_projects).dependent(:destroy) } - it { should have_many(:projects) } it { should have_many(:groups) } it { should have_many(:keys).dependent(:destroy) } it { should have_many(:events).class_name('Event').dependent(:destroy) } @@ -119,4 +118,71 @@ describe User do user.authentication_token.should_not be_blank 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.owned_projects.should include(@project) } + it { @user.personal_projects.should include(@project) } + end + + describe 'groups' do + before do + ActiveRecord::Base.observers.enable(:user_observer) + @user = create :user + @group = create :group, owner: @user + end + + it { @user.several_namespaces?.should be_true } + it { @user.namespaces.should == [@user.namespace, @group] } + it { @user.authorized_groups.should == [@group] } + it { @user.owned_groups.should == [@group] } + 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 + + 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 'filter' do + before do + @user = create :user + @admin = create :user, admin: true + @blocked = create :user, blocked: true + end + + it { User.filter("admins").should == [@admin] } + it { User.filter("blocked").should == [@blocked] } + it { User.filter("wop").should == [@user, @admin, @blocked] } + it { User.filter(nil).should == [@user, @admin] } + end + + describe :not_in_project do + before do + @user = create :user + @project = create :project + end + + it { User.not_in_project(@project).should == [@user, @project.owner] } + end end |