Commit b73d4419ea458a2824a35563bcd84d519b2a5516
1 parent
6b3ce96a
Exists in
master
and in
4 other branches
json_spec added. Create project via REST API fixed
Showing
5 changed files
with
22 additions
and
49 deletions
Show diff stats
Gemfile
Gemfile.lock
| @@ -207,6 +207,9 @@ GEM | @@ -207,6 +207,9 @@ GEM | ||
| 207 | jquery-rails | 207 | jquery-rails |
| 208 | railties (>= 3.1.0) | 208 | railties (>= 3.1.0) |
| 209 | json (1.7.5) | 209 | json (1.7.5) |
| 210 | + json_spec (1.0.3) | ||
| 211 | + multi_json (~> 1.0) | ||
| 212 | + rspec (~> 2.0) | ||
| 210 | kaminari (0.14.0) | 213 | kaminari (0.14.0) |
| 211 | actionpack (>= 3.0.0) | 214 | actionpack (>= 3.0.0) |
| 212 | activesupport (>= 3.0.0) | 215 | activesupport (>= 3.0.0) |
| @@ -406,6 +409,7 @@ DEPENDENCIES | @@ -406,6 +409,7 @@ DEPENDENCIES | ||
| 406 | httparty | 409 | httparty |
| 407 | jquery-rails (= 2.0.2) | 410 | jquery-rails (= 2.0.2) |
| 408 | jquery-ui-rails (= 0.5.0) | 411 | jquery-ui-rails (= 0.5.0) |
| 412 | + json_spec | ||
| 409 | kaminari | 413 | kaminari |
| 410 | launchy | 414 | launchy |
| 411 | letter_opener | 415 | letter_opener |
spec/factories.rb
| @@ -11,6 +11,9 @@ module Factory | @@ -11,6 +11,9 @@ module Factory | ||
| 11 | def self.new(type, *args) | 11 | def self.new(type, *args) |
| 12 | FactoryGirl.build(type, *args) | 12 | FactoryGirl.build(type, *args) |
| 13 | end | 13 | end |
| 14 | + def self.attributes(type, *args) | ||
| 15 | + FactoryGirl.attributes_for(type, *args) | ||
| 16 | + end | ||
| 14 | end | 17 | end |
| 15 | 18 | ||
| 16 | FactoryGirl.define do | 19 | FactoryGirl.define do |
spec/requests/api/projects_spec.rb
| @@ -39,55 +39,19 @@ describe Gitlab::API do | @@ -39,55 +39,19 @@ describe Gitlab::API do | ||
| 39 | }.should change{Project.count}.by(1) | 39 | }.should change{Project.count}.by(1) |
| 40 | end | 40 | end |
| 41 | it "should create new project" do | 41 | it "should create new project" do |
| 42 | - expect { | ||
| 43 | - name = "foo" | ||
| 44 | - path = "bar" | ||
| 45 | - code = "bazz" | ||
| 46 | - description = "fuu project" | ||
| 47 | - default_branch = "default_branch" | ||
| 48 | - issues_enabled = false | ||
| 49 | - wall_enabled = false | ||
| 50 | - merge_requests_enabled = false | ||
| 51 | - wiki_enabled = false | ||
| 52 | - post api("/projects", user), { | ||
| 53 | - code: code, | ||
| 54 | - path: path, | ||
| 55 | - name: name, | ||
| 56 | - description: description, | ||
| 57 | - default_branch: default_branch, | ||
| 58 | - issues_enabled: issues_enabled, | ||
| 59 | - wall_enabled: wall_enabled, | ||
| 60 | - merge_requests_enabled: merge_requests_enabled, | ||
| 61 | - wiki_enabled: wiki_enabled | ||
| 62 | - } | ||
| 63 | - response.status.should == 201 | ||
| 64 | - json_response["name"].should == name | ||
| 65 | - json_response["path"].should == path | ||
| 66 | - json_response["code"].should == code | ||
| 67 | - json_response["description"].should == description | ||
| 68 | - json_response["default_branch"].should == default_branch | ||
| 69 | - json_response["issues_enabled"].should == issues_enabled | ||
| 70 | - json_response["wall_enabled"].should == wall_enabled | ||
| 71 | - json_response["merge_requests_enabled"].should == merge_requests_enabled | ||
| 72 | - json_response["wiki_enabled"].should == wiki_enabled | ||
| 73 | - }.should change{Project.count}.by(1) | ||
| 74 | - end | ||
| 75 | - it "should create new projects within all parameters" do | ||
| 76 | - expect { | ||
| 77 | - name = "foo" | ||
| 78 | - path = "bar" | ||
| 79 | - code = "bazz" | ||
| 80 | - post api("/projects", user), { | ||
| 81 | - code: code, | ||
| 82 | - path: path, | ||
| 83 | - name: name | ||
| 84 | - } | ||
| 85 | - response.status.should == 201 | ||
| 86 | - json_response["name"].should == name | ||
| 87 | - json_response["path"].should == path | ||
| 88 | - json_response["code"].should == code | ||
| 89 | - }.should change{Project.count}.by(1) | ||
| 90 | - | 42 | + attributes = Factory.attributes(:project, |
| 43 | + name: "foo", | ||
| 44 | + path: "bar", | ||
| 45 | + code: "bazz", | ||
| 46 | + description: "foo project", | ||
| 47 | + default_branch: "default_branch", | ||
| 48 | + issues_enabled: false, | ||
| 49 | + wall_enabled: false, | ||
| 50 | + merge_requests_enabled: false, | ||
| 51 | + wiki_enabled: false) | ||
| 52 | + post api("/projects", user), attributes | ||
| 53 | + response.status.should == 201 | ||
| 54 | + response.body.should be_json_eql(attributes.to_json).excluding("owner", "private") | ||
| 91 | end | 55 | end |
| 92 | it "should not create project without name" do | 56 | it "should not create project without name" do |
| 93 | expect { | 57 | expect { |
spec/spec_helper.rb
| @@ -28,6 +28,7 @@ RSpec.configure do |config| | @@ -28,6 +28,7 @@ RSpec.configure do |config| | ||
| 28 | config.include LoginHelpers, type: :request | 28 | config.include LoginHelpers, type: :request |
| 29 | config.include GitoliteStub | 29 | config.include GitoliteStub |
| 30 | config.include FactoryGirl::Syntax::Methods | 30 | config.include FactoryGirl::Syntax::Methods |
| 31 | + config.include JsonSpec::Helpers | ||
| 31 | 32 | ||
| 32 | # If you're not using ActiveRecord, or you'd prefer not to run each of your | 33 | # If you're not using ActiveRecord, or you'd prefer not to run each of your |
| 33 | # examples within a transaction, remove the following line or assign false | 34 | # examples within a transaction, remove the following line or assign false |