features/controller_specs/test_endpoint.feature in lurker-0.5.3 vs features/controller_specs/test_endpoint.feature in lurker-0.5.4
- old
+ new
@@ -8,21 +8,28 @@
**NOTE:** the third response example is expecting a successful response and it is,
but specs are NOT passing because of nonsufficient `role` attribute
Background:
- Given a file named "lurker/api/v1/users-POST.json.yml" with:
+ Given a file named "lurker/api/v1/users/__id-PATCH.json.yml" with:
"""yml
---
prefix: ''
description: ''
responseCodes:
+ - status: 400
+ successful: true
+ description: ''
- status: 200
successful: true
description: ''
requestParameters:
properties:
+ id:
+ description: ''
+ type: integer
+ example: 1
user:
description: ''
type: object
properties:
name:
@@ -41,45 +48,55 @@
description: ''
type: string
example: Bob
required: []
extensions:
- action: create
- controller: api/v1/users
- path_info: "/api/v1/users"
- method: POST
+ path_info: "/api/v1/users/1"
+ method: PATCH
suffix: ''
+ path_params:
+ action: update
+ controller: api/v1/users
+ id: 1
"""
- Scenario: json schema tests request and response using "users/create"
+ Scenario: json schema tests request and response using "users/update"
Given a file named "spec/controllers/api/v1/users_controller_spec.rb" with:
"""ruby
require "spec_helper"
describe Api::V1::UsersController, :lurker do
render_views
- it "creates a new users" do
- post :create, user: { name: 'Bob' }
+ let(:user) do
+ User.where(name: 'razum2um').first_or_create!
+ end
+
+ it "updates a user" do
+ patch :update, id: user.id, user: { name: 'Bob' }
expect(response).to be_success
end
end
"""
When I run `bin/rspec spec/controllers/api/v1/users_controller_spec.rb`
Then the example should pass
- Scenario: json schema tests request parameters and tell what fails using "users/create"
+ Scenario: json schema tests request parameters and tell what fails using "users/update"
Given a file named "spec/controllers/api/v1/users_controller_spec.rb" with:
"""ruby
require "spec_helper"
describe Api::V1::UsersController, :lurker do
render_views
- it "creates a new users" do
- post :create, user: { name: 1 }
+ let(:user) do
+ User.where(name: 'razum2um').first_or_create!
+ end
+
+ it "updates a user" do
+ patch :update, id: user.id, user: { name: 1 }
expect(response).not_to be_success
end
end
"""
@@ -91,20 +108,24 @@
The property '#/user/name' of type Fixnum did not match the following type: string
1 example, 1 failure
"""
- Scenario: json schema tests response parameters and tell what fails using "users/create"
+ Scenario: json schema tests response parameters and tell what fails using "users/update"
Given a file named "spec/controllers/api/v1/users_controller_spec.rb" with:
"""ruby
require "spec_helper"
describe Api::V1::UsersController, :lurker do
render_views
- it "creates a new users" do
- post :create, user: { name: '' }
- expect(response).to be_success
+ let(:user) do
+ User.where(name: 'razum2um').first_or_create!
+ end
+
+ it "updates a user" do
+ patch :update, id: user.id, user: { name: '' }
+ expect(response).not_to be_success
end
end
"""
When I run `bin/rspec spec/controllers/api/v1/users_controller_spec.rb`