Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-01-02 21:00:00 +0400
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-01-02 21:00:00 +0400
commit00a1f5bc2cc2c98bda3818e770eaae95e664480a (patch)
tree957597fc0a568cbf92dd1d4377b771c39a671300 /spec/models/user_spec.rb
parent91995909d9ef6fc5540c7577987ed2244ac7862a (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.rb68
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