Sha256: 83c7a1c6a8a7f75b3f0e4892eadb35e61db0325d504954451661ad733c0b5b35
Contents?: true
Size: 1.52 KB
Versions: 2
Compression:
Stored size: 1.52 KB
Contents
require 'sequel' require 'spec_helper' describe 'Sequel Integration' do before do DB = Sequel.sqlite unless defined?(DB) DB.create_table(:users) do primary_key :id String :name end ActiveModelSerializers.config.adapter = :json app.format :json app.formatter :json, Grape::Formatter::ActiveModelSerializers end after do DB.drop_table(:users) Object.send(:remove_const, :SequelUser) Object.send(:remove_const, :SequelUserSerializer) end let!(:model) { SequelUser = Class.new(Sequel::Model(:users)) do include ActiveModel::Serialization def self.model_name 'User' end end } let!(:serializer) { SequelUserSerializer = Class.new(ActiveModel::Serializer) do attributes :id, :name end } let(:app) { Class.new(Grape::API) } context 'collection' do let!(:users) { [ model.create(name: 'one'), model.create(name: 'two') ] } it 'renders' do app.get('/users') { render SequelUser.dataset } response = get '/users' expect(JSON.parse(response.body)).to eq( 'users' => [ { 'id' => 1, 'name' => 'one' }, { 'id' => 2, 'name' => 'two' } ] ) end end context 'member' do let!(:user) { model.create(name: 'name') } it 'renders' do app.get('/user/1') { render SequelUser.first } response = get '/user/1' expect(JSON.parse(response.body)).to eq( 'user' => { 'id' => 1, 'name' => 'name' } ) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
grape-active_model_serializers-1.5.2 | spec/integration/sequel_spec.rb |
grape-active_model_serializers-1.5.1 | spec/integration/sequel_spec.rb |