Testapi

A Test API for your models, factories, and database cleaner.

Important : NEVER use this gem in production.

Usage

Examples with curl:

alias curl-json='curl -H "Content-Type: application/json"'
curl-json -X GET http://localhost:3000/testapi/models/User
curl-json -X POST http://localhost:3000/testapi/factories/user -d '{"attributes": {"name": "John"}}'
curl-json -X DELETE http://localhost:3000/testapi/database

All available routes :

DELETE /database           => testapi/databases#destroy
POST   /factories/:factory => testapi/factories#create
GET    /models/:model      => testapi/models#index
POST   /models/:model      => testapi/models#create
GET    /models/:model/:id  => testapi/models#show
PATCH  /models/:model/:id  => testapi/models#update
DELETE /models/:model/:id  => testapi/models#destroy

Notes

DatabaseCleaner use truncation strategy and ignore the following tables by default :

  • ar_internal_metadata
  • schema_migrations
  • spatial_ref_sys

You can change it using :

Testapi.database_cleaner_ignored_tables = %w(my_table)

Installation

Add this line to your application's Gemfile:

gem "testapi", group: [:development, :test]

And then execute:

$ bundle

Add this to routes.rb:

if Rails.env.development? || Rails.env.test?
  mount Testapi::Engine => "/testapi"
end

License

The gem is available as open source under the terms of the MIT License.