summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-02-20 02:47:30 -0800
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-02-20 02:47:30 -0800
commitb7ac654b88aa9b03f431d93c25e397ff2bc66a7a (patch)
tree4a8af396f574309ebdb49ed002917cfd368c2d81
parent25e4c512d4b31f42d36d661acab7a6c6c91e77a8 (diff)
parent3025824415184c16f86bb67276474113de48d813 (diff)
downloadgitlab-ce-b7ac654b88aa9b03f431d93c25e397ff2bc66a7a.tar.gz
Merge pull request #2988 from Asquera/error_project_limit
API: creating last project before limit returns 404
-rw-r--r--app/models/project.rb2
-rw-r--r--spec/requests/api/projects_spec.rb20
2 files changed, 21 insertions, 1 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index 9d61ffc1ac5..b7d688bf8f5 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -146,7 +146,7 @@ class Project < ActiveRecord::Base
end
def saved?
- id && valid?
+ id && persisted?
end
def import?
diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb
index 4ac1e7cc31c..586f108ca9e 100644
--- a/spec/requests/api/projects_spec.rb
+++ b/spec/requests/api/projects_spec.rb
@@ -33,6 +33,20 @@ describe Gitlab::API do
end
describe "POST /projects" do
+ context "maximum number of projects reached" do
+ before do
+ (1..user2.projects_limit).each do |project|
+ post api("/projects", user2), name: "foo#{project}"
+ end
+ end
+
+ it "should not create new project" do
+ expect {
+ post api("/projects", user2), name: 'foo'
+ }.to change {Project.count}.by(0)
+ end
+ end
+
it "should create new project without path" do
expect { post api("/projects", user), name: 'foo' }.to change {Project.count}.by(1)
end
@@ -41,6 +55,12 @@ describe Gitlab::API do
expect { post api("/projects", user) }.to_not change {Project.count}
end
+ it "should create last project before reaching project limit" do
+ (1..user2.projects_limit-1).each { |p| post api("/projects", user2), name: "foo#{p}" }
+ post api("/projects", user2), name: "foo"
+ response.status.should == 201
+ end
+
it "should respond with 201 on success" do
post api("/projects", user), name: 'foo'
response.status.should == 201