Spaces:
Build error
Build error
File size: 1,274 Bytes
def1299 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
RSpec::Matchers.define :have_serialized do |unserialized|
chain :with do |serializer, options = {}|
@serializer = serializer
@options = options
end
chain :wrap do |collection_serializer, options = {}|
@collection_serializer = collection_serializer
end
def serialize(object)
@collection_serializer ||= ActiveModel::Serializer::CollectionSerializer
if object.respond_to?(:map)
serializer = @collection_serializer.new(object, serializer: @serializer)
else
serializer = @serializer.new(object)
end
json = ActiveModelSerializers::Adapter::Attributes.new(serializer, @options).to_json
JSON.parse(json)
end
match do |serialized|
serialized == serialize(unserialized)
end
failure_message do |serialized|
<<-FAIL.strip_heredoc
expected:
#{serialized}
to match:
#{serialize(unserialized)}
---
#{inspect}
FAIL
end
failure_message_when_negated do |serialized|
<<-FAIL.strip_heredoc
expected
#{serialized}
not to match:
#{serialize(unserialized)}
---
#{inspect}
FAIL
end
def inspect
<<-INSPECT.strip_heredoc
Using object serializer: #{@serializer}
Using collection serializer: #{@collection_serializer}
INSPECT
end
end
|