mirror of
https://github.com/ditkrg/rswag.git
synced 2026-01-25 15:22:56 +00:00
wip:swagger-based dsl for rspec
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
class Blog < ActiveRecord::Base
|
||||
attr_accessible :content, :title
|
||||
|
||||
validates :content, presence: true
|
||||
|
||||
def as_json(options)
|
||||
{
|
||||
title: title,
|
||||
|
||||
45
spec/dummy/spec/integration/blogs_spec.rb
Normal file
45
spec/dummy/spec/integration/blogs_spec.rb
Normal file
@@ -0,0 +1,45 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe 'Blogs API', doc: 'blogs/v1' do
|
||||
|
||||
path '/blogs' do
|
||||
|
||||
operation 'post', 'creates a new blog' do
|
||||
consumes 'application/json'
|
||||
produces 'application/json'
|
||||
body :blog
|
||||
|
||||
let(:blog) { { title: 'foo', content: 'bar' } }
|
||||
|
||||
response '201', 'valid request' do
|
||||
run_test!
|
||||
end
|
||||
|
||||
response '422', 'invalid request' do
|
||||
let(:blog) { { title: 'foo' } }
|
||||
run_test!
|
||||
end
|
||||
end
|
||||
|
||||
operation 'get', 'searches existing blogs' do
|
||||
produces 'application/json'
|
||||
|
||||
response '200', 'valid request' do
|
||||
run_test!
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
path '/blogs/{id}' do
|
||||
operation 'get', 'retreives a specific blog' do
|
||||
produces 'application/json'
|
||||
parameter :id, 'path'
|
||||
|
||||
response '200', 'blog found' do
|
||||
let(:blog) { Blog.create(title: 'foo', content: 'bar') }
|
||||
let(:id) { blog.id }
|
||||
run_test!
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1,19 +0,0 @@
|
||||
require 'rails_helper'
|
||||
require 'swagger_rails/testing/test_helpers'
|
||||
|
||||
describe 'V1 Contract' do
|
||||
include SwaggerRails::TestHelpers
|
||||
swagger_doc 'v1/swagger.json'
|
||||
|
||||
# TODO: improve DSL
|
||||
|
||||
it 'exposes an API for managing blogs' do
|
||||
swagger_test '/blogs', 'post'
|
||||
|
||||
swagger_test '/blogs', 'get'
|
||||
|
||||
swagger_test '/blogs/{id}', 'get' do
|
||||
set id: Blog.last!.id
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -89,4 +89,7 @@ RSpec.configure do |config|
|
||||
# as the one that triggered the failure.
|
||||
Kernel.srand config.seed
|
||||
=end
|
||||
|
||||
require 'swagger_rails/rspec/adapter'
|
||||
config.extend SwaggerRails::RSpec::Adapter
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user