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



23
24
25
26
# File 'lib/active_model_serializers/test/schema.rb', line 23

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



17
18
19
20
# File 'lib/active_model_serializers/test/schema.rb', line 17

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



12
13
14
15
# File 'lib/active_model_serializers/test/schema.rb', line 12

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



28
29
30
31
# File 'lib/active_model_serializers/test/schema.rb', line 28

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