Class: Servactory::TestKit::Rspec::Helpers::OutputValidator

Inherits:
Object
  • Object
show all
Includes:
Concerns::ErrorMessages
Defined in:
lib/servactory/test_kit/rspec/helpers/output_validator.rb

Overview

Validates mock output values against service definitions.

## Purpose

Ensures that mocked output values match the service’s output definitions in terms of names and types. Helps catch configuration errors early in tests.

## Usage

Called automatically when ‘succeeds()` is used on builder:

“‘ruby allow_service(MyService)

.succeeds(user: user)

“‘

Can also be called directly:

“‘ruby OutputValidator.validate!(

service_class: MyService,
outputs: { user: user }

) “‘

## Validations

  1. **Output names** - all provided outputs must be defined in service

  2. **Output types** - values must match expected types (if defined)

Defined Under Namespace

Classes: ValidationError

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(service_class:, outputs:) ⇒ OutputValidator

Creates a new validator instance.

Parameters:

  • service_class (Class)

    The service class

  • outputs (Hash)

    Output values to validate



60
61
62
63
# File 'lib/servactory/test_kit/rspec/helpers/output_validator.rb', line 60

def initialize(service_class:, outputs:)
  @service_class = service_class
  @outputs = outputs
end

Class Method Details

.validate!(service_class:, outputs:) ⇒ void

This method returns an undefined value.

Validates outputs and raises on failure.

Parameters:

  • service_class (Class)

    The service class

  • outputs (Hash)

    Output values to validate

Raises:



50
51
52
# File 'lib/servactory/test_kit/rspec/helpers/output_validator.rb', line 50

def validate!(service_class:, outputs:)
  new(service_class:, outputs:).validate!
end

Instance Method Details

#validate!void

This method returns an undefined value.

Runs all validations.

Raises:



69
70
71
72
# File 'lib/servactory/test_kit/rspec/helpers/output_validator.rb', line 69

def validate!
  validate_output_names!
  validate_output_types!
end