module Metaractor::Spec::Helpers

Public Instance Methods

context_creator(error_message: nil, error_messages: [], errors: [], valid: nil, invalid: nil, success: nil, failure: nil, **attributes) click to toggle source
# File lib/metaractor/spec.rb, line 7
def context_creator(error_message: nil, error_messages: [], errors: [], valid: nil, invalid: nil, success: nil, failure: nil, **attributes)
  if error_message.present?
    error_messages << error_message
  end

  result = Interactor::Context.build(attributes)
  result.add_errors(messages: error_messages)
  result.add_errors(errors: errors)

  if (!valid.nil? && !valid) || (!invalid.nil? && invalid)
    result.invalidate!
  end

  if !result.errors.empty? ||
      result.invalid? ||
      (!success.nil? && !success) ||
      (!failure.nil? && failure)
    begin
      result.fail!
    rescue
      Interactor::Failure
    end
  end

  result
end