Sha256: 9d496f0271bdc899f8fefd22e0bdeb423fd08cffed5c06a8349111b383043e47
Contents?: true
Size: 772 Bytes
Versions: 1
Compression:
Stored size: 772 Bytes
Contents
# typed: strict module Mocktail::Matchers class Includes < Base extend T::Sig sig { returns(Symbol) } def self.matcher_name :includes end sig { params(expecteds: T.untyped).void } def initialize(*expecteds) @expecteds = T.let(expecteds, T::Array[T.untyped]) end sig { params(actual: T.untyped).returns(T::Boolean) } def match?(actual) @expecteds.all? { |expected| (actual.respond_to?(:include?) && actual.include?(expected)) || (actual.is_a?(Hash) && expected.is_a?(Hash) && expected.all? { |k, v| actual[k] == v }) } rescue false end sig { returns(String) } def inspect "#{self.class.matcher_name}(#{@expecteds.map(&:inspect).join(", ")})" end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mocktail-2.0.0 | lib/mocktail/sorbet/mocktail/matchers/includes.rb |