Module: ActiveModelSerializers::Test::Schema

Defined in:
lib/active_model_serializers/test/schema.rb

Defined Under Namespace

Classes: AssertRequestSchema, AssertResponseSchema, AssertSchema

Constant Summary collapse

MissingSchema =
Class.new(Minitest::Assertion)
InvalidSchemaError =
Class.new(Minitest::Assertion)

Instance Method Summary collapse

Instance Method Details

#assert_request_response_schema(schema_path = nil, message = nil) ⇒ Object

May be renamed


25
26
27
28
# File 'lib/active_model_serializers/test/schema.rb', line 25

def assert_request_response_schema(schema_path = nil, message = nil)
  assert_request_schema(schema_path, message)
  assert_response_schema(schema_path, message)
end

#assert_request_schema(schema_path = nil, message = nil) ⇒ Object


19
20
21
22
# File 'lib/active_model_serializers/test/schema.rb', line 19

def assert_request_schema(schema_path = nil, message = nil)
  matcher = AssertRequestSchema.new(schema_path, request, response, message)
  assert(matcher.call, matcher.message)
end

#assert_response_schema(schema_path = nil, message = nil) ⇒ Boolean, Minitest::Assertion

A Minitest Assertion that test the response is valid against a schema.

Examples:

get :index
assert_response_schema

Parameters:

  • schema_path (String) (defaults to: nil)

    a custom schema path

  • message (String) (defaults to: nil)

    a custom error message

Returns:

  • (Boolean)

    true when the response is valid

  • (Minitest::Assertion)

    when the response is invalid


14
15
16
17
# File 'lib/active_model_serializers/test/schema.rb', line 14

def assert_response_schema(schema_path = nil, message = nil)
  matcher = AssertResponseSchema.new(schema_path, request, response, message)
  assert(matcher.call, matcher.message)
end

#assert_schema(payload, schema_path = nil, message = nil) ⇒ Object


30
31
32
33
# File 'lib/active_model_serializers/test/schema.rb', line 30

def assert_schema(payload, schema_path = nil, message = nil)
  matcher = AssertSchema.new(schema_path, request, response, message, payload)
  assert(matcher.call, matcher.message)
end