grape-active_model_serializers/spec/grape_ams_spec.rb

69 lines
2 KiB
Ruby

require 'spec_helper'
require 'spec_fakes'
# require 'active_model'
describe Grape::ActiveModelSerializers do
subject do
Class.new(Grape::API)
end
before do
subject.format :json
subject.formatter :json, Grape::Formatter::ActiveModelSerializers
ActiveRecord::Base.configurations.merge!('test' => {'adapter' => 'nulldb'})
end
def app
subject
end
it "should use the built in grape serializer when serializer is set to nil" do
subject.get("/home", serializer: nil) do
{user: {first_name: "JR", last_name: "HE"}}
end
get("/home")
last_response.body.should == "{\"user\":{\"first_name\":\"JR\",\"last_name\":\"HE\"}}"
end
it "should respond with proper content-type" do
subject.get("/home/users", :serializer => "user") do
{user: {first_name: "JR", last_name: "HE"}}
end
get("/home/users")
last_response.headers["Content-Type"].should == "application/json"
end
it "should infer serializer when there is no serializer set" do
subject.get("/home") do
User.new({first_name: 'JR', last_name: 'HE', email: 'contact@jrhe.co.uk'})
end
get "/home"
last_response.body.should == "{\"user\":{\"first_name\":\"JR\",\"last_name\":\"HE\"}}"
end
it "should serializer arrays of objects" do
subject.get("/home") do
user = User.new({first_name: 'JR', last_name: 'HE', email: 'contact@jrhe.co.uk'})
[user, user]
end
get "/home"
last_response.body.should == "{\"users\":[{\"first_name\":\"JR\",\"last_name\":\"HE\"},{\"first_name\":\"JR\",\"last_name\":\"HE\"}]}"
end
# [User2Serializer, 'user2', :user2].each do |serializer|
# it "should render using serializer (#{serializer})" do
# subject.get("/home", serializer: serializer) do
# User.new({first_name: 'JR', last_name: 'HE', email: 'contact@jrhe.co.uk'})
# end
# get "/home"
# last_response.body.should == "{\"user\":{\"first_name\":\"JR\",\"last_name\":\"HE\"}}"
# end
# end
end