Sha256: 0d5ea2002868abcd2a2f37b0d6e38f00185bc39c39fb0b56cf4d992d4378bb4f
Contents?: true
Size: 1.43 KB
Versions: 1
Compression:
Stored size: 1.43 KB
Contents
# frozen_string_literal: true require_relative './induce_error' require_relative './verify_key_in_hash' module MiniTest # Adding custom assertions to make specs easier to read module Assertions # Base assertion class to verify error raised when parameter omitted. class BaseAssertRequiredParameter def initialize(klass, params, param_key, message) message ||= default_message_for(param_key) @params = Internals.hash_without_key(params, param_key) @klass = klass @param_key = param_key @message = message self end def call(assert) assert.call(correct_error_message?, message) end private attr_reader :params, :klass, :message, :param_key # Recent versions of Reek complain about a :reek:NilCheck. Yup. def actual_error_message errors[:expected]&.message end def correct_error_message? actual_error_message.match message end def errors InduceError.call error_class: error_class, inducer: error_inducer end # Methods that neither affect nor are affected by instance state. module Internals def self.hash_without_key(hash, key) VerifyKeyInHash.call hash, key hash.dup.reject { |source_key, _| source_key == key } end end private_constant :Internals end # class MiniTest::Assertions::BaseAssertRequiredParameter end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
prolog_minitest_matchers-0.4.0 | lib/prolog_minitest_matchers/matchers/asserters/base_assert_required_parameter.rb |