Commit b7ac654b88aa9b03f431d93c25e397ff2bc66a7a
Exists in
master
and in
4 other branches
Merge pull request #2988 from Asquera/error_project_limit
API: creating last project before limit returns 404
Showing
2 changed files
with
21 additions
and
1 deletions
Show diff stats
app/models/project.rb
spec/requests/api/projects_spec.rb
| @@ -33,6 +33,20 @@ describe Gitlab::API do | @@ -33,6 +33,20 @@ describe Gitlab::API do | ||
| 33 | end | 33 | end |
| 34 | 34 | ||
| 35 | describe "POST /projects" do | 35 | describe "POST /projects" do |
| 36 | + context "maximum number of projects reached" do | ||
| 37 | + before do | ||
| 38 | + (1..user2.projects_limit).each do |project| | ||
| 39 | + post api("/projects", user2), name: "foo#{project}" | ||
| 40 | + end | ||
| 41 | + end | ||
| 42 | + | ||
| 43 | + it "should not create new project" do | ||
| 44 | + expect { | ||
| 45 | + post api("/projects", user2), name: 'foo' | ||
| 46 | + }.to change {Project.count}.by(0) | ||
| 47 | + end | ||
| 48 | + end | ||
| 49 | + | ||
| 36 | it "should create new project without path" do | 50 | it "should create new project without path" do |
| 37 | expect { post api("/projects", user), name: 'foo' }.to change {Project.count}.by(1) | 51 | expect { post api("/projects", user), name: 'foo' }.to change {Project.count}.by(1) |
| 38 | end | 52 | end |
| @@ -41,6 +55,12 @@ describe Gitlab::API do | @@ -41,6 +55,12 @@ describe Gitlab::API do | ||
| 41 | expect { post api("/projects", user) }.to_not change {Project.count} | 55 | expect { post api("/projects", user) }.to_not change {Project.count} |
| 42 | end | 56 | end |
| 43 | 57 | ||
| 58 | + it "should create last project before reaching project limit" do | ||
| 59 | + (1..user2.projects_limit-1).each { |p| post api("/projects", user2), name: "foo#{p}" } | ||
| 60 | + post api("/projects", user2), name: "foo" | ||
| 61 | + response.status.should == 201 | ||
| 62 | + end | ||
| 63 | + | ||
| 44 | it "should respond with 201 on success" do | 64 | it "should respond with 201 on success" do |
| 45 | post api("/projects", user), name: 'foo' | 65 | post api("/projects", user), name: 'foo' |
| 46 | response.status.should == 201 | 66 | response.status.should == 201 |