Commit 6f05ea4f6e26e76edc0a6ad5d2eb4e5db676aea0

Authored by Dmitriy Zaporozhets
1 parent 232d61d5

Improve CreateContext call. Fixed test

app/contexts/projects/create_context.rb
1 1 module Projects
2 2 class CreateContext < BaseContext
  3 + def initialize(user, params)
  4 + @current_user, @params = user, params.dup
  5 + end
  6 +
3 7 def execute
4 8 # get namespace id
5   - namespace_id = params[:project].delete(:namespace_id)
  9 + namespace_id = params.delete(:namespace_id)
6 10  
7   - @project = Project.new(params[:project])
  11 + @project = Project.new(params)
8 12  
9 13 # Parametrize path for project
10 14 #
... ... @@ -25,7 +29,7 @@ module Projects
25 29 end
26 30 else
27 31 # Set current user namespace if namespace_id is nil
28   - @project.namespace_id = current_user.id
  32 + @project.namespace_id = current_user.namespace_id
29 33 end
30 34  
31 35 Project.transaction do
... ...
app/controllers/projects_controller.rb
... ... @@ -19,7 +19,7 @@ class ProjectsController &lt; ProjectResourceController
19 19 end
20 20  
21 21 def create
22   - @project = Projects::CreateContext.new(nil, current_user, params).execute
  22 + @project = Projects::CreateContext.new(current_user, params).execute
23 23  
24 24 respond_to do |format|
25 25 flash[:notice] = 'Project was successfully created.' if @project.saved?
... ...
lib/api/projects.rb
... ... @@ -43,7 +43,7 @@ module Gitlab
43 43 :wall_enabled,
44 44 :merge_requests_enabled,
45 45 :wiki_enabled]
46   - @project = Projects::CreateContext.new(nil, attrs, current_user).execute
  46 + @project = ::Projects::CreateContext.new(current_user, attrs).execute
47 47 if @project.saved?
48 48 present @project, with: Entities::Project
49 49 else
... ...
spec/contexts/projects_create_context_spec.rb 0 → 100644
... ... @@ -0,0 +1,38 @@
  1 +require 'spec_helper'
  2 +
  3 +describe Projects::CreateContext do
  4 + describe :create_by_user do
  5 + before do
  6 + @user = create :user
  7 + @opts = {
  8 + name: "GitLab"
  9 + }
  10 + end
  11 +
  12 + context 'user namespace' do
  13 + before do
  14 + @project = create_project(@user, @opts)
  15 + end
  16 +
  17 + it { @project.should be_valid }
  18 + it { @project.owner.should == @user }
  19 + it { @project.namespace.should == @user.namespace }
  20 + end
  21 +
  22 + context 'group namespace' do
  23 + before do
  24 + @group = create :group, owner: @user
  25 + @opts.merge!(namespace_id: @group.id)
  26 + @project = create_project(@user, @opts)
  27 + end
  28 +
  29 + it { @project.should be_valid }
  30 + it { @project.owner.should == @user }
  31 + it { @project.namespace.should == @group }
  32 + end
  33 + end
  34 +
  35 + def create_project(user, opts)
  36 + Projects::CreateContext.new(user, opts).execute
  37 + end
  38 +end
... ...
spec/models/project_spec.rb
... ... @@ -153,36 +153,6 @@ describe Project do
153 153 end
154 154 end
155 155  
156   - describe :create_by_user do
157   - before do
158   - @user = create :user
159   - @opts = {
160   - name: "GitLab"
161   - }
162   - end
163   -
164   - context 'user namespace' do
165   - before do
166   - @project = Project.create_by_user(@opts, @user)
167   - end
168   -
169   - it { @project.should be_valid }
170   - it { @project.owner.should == @user }
171   - it { @project.namespace.should == @user.namespace }
172   - end
173   -
174   - context 'user namespace' do
175   - before do
176   - @group = create :group, owner: @user
177   - @opts.merge!(namespace_id: @group.id)
178   - @project = Project.create_by_user(@opts, @user)
179   - end
180   -
181   - it { @project.should be_valid }
182   - it { @project.owner.should == @user }
183   - it { @project.namespace.should == @group }
184   - end
185   - end
186 156  
187 157 describe :find_with_namespace do
188 158 context 'with namespace' do
... ...