diff options
| author | Izaak Alpert <ialpert@blackberry.com> | 2013-08-15 17:43:46 -0400 |
|---|---|---|
| committer | Izaak Alpert <ialpert@blackberry.com> | 2013-09-11 14:04:15 -0400 |
| commit | 5dae40f579f66fdc060de633b183ede7bd8b2ce4 (patch) | |
| tree | f4f6669cb1e4d035eb89de116fb3d9ab1f596136 /spec/models | |
| parent | d4d4a78f834b409631b012aa555c0cb2c4e3166d (diff) | |
| download | gitlab-ce-5dae40f579f66fdc060de633b183ede7bd8b2ce4.tar.gz | |
Update to only provide one way to get a default user
-calling build_user will now apply defaults and only override them if as: :admin is set
Change-Id: Id1d938c0967752ecc14370af54f2d88128d18c44
Diffstat (limited to 'spec/models')
| -rw-r--r-- | spec/models/user_spec.rb | 72 |
1 files changed, 53 insertions, 19 deletions
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index d79d2b82b6a..330d22cf962 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -196,29 +196,63 @@ describe User do it { User.not_in_project(@project).should include(@user, @project.owner) } end - describe 'normal user' do - let(:user) { create(:user, name: 'John Smith') } + describe 'user creation' 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_true } - it { user.can_create_project?.should be_true } - it { user.first_name.should == 'John' } - end + it { user.is_admin?.should be_false } + it { user.require_ssh_key?.should be_true } + it { user.can_create_group?.should be_true } + it { user.can_create_project?.should be_true } + it { user.first_name.should == 'John' } + end - describe 'without defaults' do - let(:user) { User.new } - it "should not apply defaults to user" do - user.projects_limit.should == 10 - user.can_create_group.should == true + describe 'without defaults' do + let(:user) { User.new } + it "should not apply defaults to user" do + user.projects_limit.should == 10 + user.can_create_group.should be_true + user.theme_id.should == Gitlab::Theme::BASIC + end end - end + context 'as admin' do + describe 'with defaults' do + let(:user) { User.build_user({}, as: :admin) } + it "should apply defaults to user" do + user.projects_limit.should == 42 + user.can_create_group.should be_false + user.theme_id.should == Gitlab::Theme::BASIC + end + end + + describe 'with default overrides' do + let(:user) { User.build_user({projects_limit: 123, can_create_group: true, can_create_team: true, theme_id: Gitlab::Theme::MARS}, as: :admin) } + it "should apply defaults to user" do + user.projects_limit.should == 123 + user.can_create_group.should be_true + user.theme_id.should == Gitlab::Theme::MARS + end + end + end + + context 'as user' do + describe 'with defaults' do + let(:user) { User.build_user } + it "should apply defaults to user" do + user.projects_limit.should == 42 + user.can_create_group.should be_false + user.theme_id.should == Gitlab::Theme::BASIC + end + end - describe 'with defaults' do - let(:user) { User.new.with_defaults } - it "should apply defaults to user" do - user.projects_limit.should == 42 - user.can_create_group.should == false + describe 'with default overrides' do + let(:user) { User.build_user(projects_limit: 123, can_create_group: true, theme_id: Gitlab::Theme::MARS) } + it "should apply defaults to user" do + user.projects_limit.should == 42 + user.can_create_group.should be_false + user.theme_id.should == Gitlab::Theme::BASIC + end + end end end |
