mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-24 06:46:50 +00:00
Control db records created vs. tested against
This commit is contained in:
parent
58937f4969
commit
6aa5a4f7eb
@ -4,6 +4,24 @@ require 'grape/active_model_serializers'
|
|||||||
|
|
||||||
class ActiveModelSerializers::GrapeTest < Minitest::Test
|
class ActiveModelSerializers::GrapeTest < Minitest::Test
|
||||||
include Rack::Test::Methods
|
include Rack::Test::Methods
|
||||||
|
module Models
|
||||||
|
def self.model1
|
||||||
|
ARModels::Post.new(id: 1, title: 'Dummy Title', body: 'Lorem Ipsum')
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.model2
|
||||||
|
ARModels::Post.new(id: 2, title: 'Second Dummy Title', body: 'Second Lorem Ipsum')
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.all
|
||||||
|
@all ||=
|
||||||
|
begin
|
||||||
|
model1.save!
|
||||||
|
model2.save!
|
||||||
|
ARModels::Post.all
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
class GrapeTest < Grape::API
|
class GrapeTest < Grape::API
|
||||||
format :json
|
format :json
|
||||||
@ -11,18 +29,17 @@ class ActiveModelSerializers::GrapeTest < Minitest::Test
|
|||||||
|
|
||||||
resources :grape do
|
resources :grape do
|
||||||
get '/render' do
|
get '/render' do
|
||||||
render ARModels::Post.new(title: 'Dummy Title', body: 'Lorem Ipsum')
|
render Models.model1
|
||||||
end
|
end
|
||||||
|
|
||||||
get '/render_with_json_api' do
|
get '/render_with_json_api' do
|
||||||
post = ARModels::Post.new(title: 'Dummy Title', body: 'Lorem Ipsum')
|
post = Models.model1
|
||||||
render post, meta: { page: 1, total_pages: 2 }, adapter: :json_api
|
render post, meta: { page: 1, total_pages: 2 }, adapter: :json_api
|
||||||
end
|
end
|
||||||
|
|
||||||
get '/render_array_with_json_api' do
|
get '/render_array_with_json_api' do
|
||||||
post = ARModels::Post.create(title: 'Dummy Title', body: 'Lorem Ipsum')
|
posts = Models.all
|
||||||
post.dup.save
|
render posts, adapter: :json_api
|
||||||
render ARModels::Post.all, adapter: :json_api
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -34,7 +51,7 @@ class ActiveModelSerializers::GrapeTest < Minitest::Test
|
|||||||
def test_formatter_returns_json
|
def test_formatter_returns_json
|
||||||
get '/grape/render'
|
get '/grape/render'
|
||||||
|
|
||||||
post = ARModels::Post.new(title: 'Dummy Title', body: 'Lorem Ipsum')
|
post = Models.model1
|
||||||
serializable_resource = serializable(post)
|
serializable_resource = serializable(post)
|
||||||
|
|
||||||
assert last_response.ok?
|
assert last_response.ok?
|
||||||
@ -44,7 +61,7 @@ class ActiveModelSerializers::GrapeTest < Minitest::Test
|
|||||||
def test_render_helper_passes_through_options_correctly
|
def test_render_helper_passes_through_options_correctly
|
||||||
get '/grape/render_with_json_api'
|
get '/grape/render_with_json_api'
|
||||||
|
|
||||||
post = ARModels::Post.new(title: 'Dummy Title', body: 'Lorem Ipsum')
|
post = Models.model1
|
||||||
serializable_resource = serializable(post, serializer: ARModels::PostSerializer, adapter: :json_api, meta: { page: 1, total_pages: 2 })
|
serializable_resource = serializable(post, serializer: ARModels::PostSerializer, adapter: :json_api, meta: { page: 1, total_pages: 2 })
|
||||||
|
|
||||||
assert last_response.ok?
|
assert last_response.ok?
|
||||||
@ -54,36 +71,12 @@ class ActiveModelSerializers::GrapeTest < Minitest::Test
|
|||||||
def test_formatter_handles_arrays
|
def test_formatter_handles_arrays
|
||||||
get '/grape/render_array_with_json_api'
|
get '/grape/render_array_with_json_api'
|
||||||
|
|
||||||
expected = {
|
posts = Models.all
|
||||||
'data' => [
|
serializable_resource = serializable(posts, adapter: :json_api)
|
||||||
{
|
|
||||||
id: '1',
|
|
||||||
type: 'ar_models_posts',
|
|
||||||
attributes: {
|
|
||||||
title: 'Dummy Title',
|
|
||||||
body: 'Lorem Ipsum'
|
|
||||||
},
|
|
||||||
relationships: {
|
|
||||||
comments: { data: [] },
|
|
||||||
author: { data: nil }
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: '2',
|
|
||||||
type: 'ar_models_posts',
|
|
||||||
attributes: {
|
|
||||||
title: 'Dummy Title',
|
|
||||||
body: 'Lorem Ipsum'
|
|
||||||
},
|
|
||||||
relationships: {
|
|
||||||
comments: { data: [] },
|
|
||||||
author: { data: nil }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
assert last_response.ok?
|
assert last_response.ok?
|
||||||
assert_equal expected.to_json, last_response.body
|
assert_equal serializable_resource.to_json, last_response.body
|
||||||
|
ensure
|
||||||
|
ARModels::Post.delete_all
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user