mirror of
https://github.com/ditkrg/rswag.git
synced 2026-01-25 15:22:56 +00:00
Require 'in' property for path params + rename Adapter to DSL
This commit is contained in:
63
lib/swagger_rails/rspec/dsl.rb
Normal file
63
lib/swagger_rails/rspec/dsl.rb
Normal file
@@ -0,0 +1,63 @@
|
||||
require 'swagger_rails/test_visitor'
|
||||
|
||||
module SwaggerRails
|
||||
module RSpec
|
||||
module DSL
|
||||
|
||||
def path(path_template, &block)
|
||||
metadata = {
|
||||
path_template: path_template
|
||||
}
|
||||
describe(path_template, metadata, &block)
|
||||
end
|
||||
|
||||
def operation(http_verb, summary=nil, &block)
|
||||
metadata = {
|
||||
http_verb: http_verb,
|
||||
summary: summary,
|
||||
parameters: []
|
||||
}
|
||||
describe(http_verb, metadata, &block)
|
||||
end
|
||||
|
||||
[ :get, :post, :patch, :put, :delete, :head ].each do |http_verb|
|
||||
define_method(http_verb) do |summary=nil, &block|
|
||||
operation(http_verb, summary, &block)
|
||||
end
|
||||
end
|
||||
|
||||
def consumes(*mime_types)
|
||||
metadata[:consumes] = mime_types
|
||||
end
|
||||
|
||||
def produces(*mime_types)
|
||||
metadata[:produces] = mime_types
|
||||
end
|
||||
|
||||
def parameter(name, attributes={})
|
||||
metadata[:parameters] << { name: name.to_s }.merge(attributes)
|
||||
end
|
||||
|
||||
def response(code, description, &block)
|
||||
metadata = {
|
||||
response_code: code,
|
||||
response: {
|
||||
description: description
|
||||
}
|
||||
}
|
||||
context(description, metadata, &block)
|
||||
end
|
||||
|
||||
def run_test!
|
||||
before do |example|
|
||||
SwaggerRails::TestVisitor.instance.submit_request!(self, example.metadata)
|
||||
end
|
||||
|
||||
it "returns a #{metadata[:response_code]} status" do |example|
|
||||
SwaggerRails::TestVisitor.instance.assert_response!(self, example.metadata)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user