mocha 2.4.2 → 2.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1ea825862f801a2e95a196ca677bb98aa6d7b9c51a8eb5a3cfcb9e8dea8baabb
4
- data.tar.gz: b6f0b63c97d5ec4df6aabc7e8675f7d1b2ba8a99833f724fa9e2087aaa40bdeb
3
+ metadata.gz: ecd327fa9f38f70ce2c055060703fe7e946da3a435d858e3f7a4dfc84cf1869b
4
+ data.tar.gz: aa3f71bdd6b8934e9a6f02361daad1b304f88b33362c77511c1f2810becf255e
5
5
  SHA512:
6
- metadata.gz: 4b9b72dfc0e523bf8b7c50211e13ee63379fefa565474c755475032bf5dfb6f3d736fcbbf32884a2b9e153a2141b4fc3a291fbf7a2997e9810cb71e0817f3234
7
- data.tar.gz: 61f87b76172af493bf4f2354f2638a939d122388490d56179e8bc1c719b95af97815fa860c2936cfc88980bd7bb547689c5ad53941c731acd42a1c10de3d855b
6
+ metadata.gz: ed7c31bf9f39294a89338718f7139c4ce23883b18b628aa02c8e1ea585a244ed77e6e322db1352431f6d3fd29b01de0f1e39acf2164209633ad62fd18f8d919c
7
+ data.tar.gz: e1380ad00c76d152ca14865f02a9019f4c83e36ff8433182b164ae308b46319859e80a7583b7dd7f8c0269b4da4a36b5f5bd1af6a8404e8870df010bf0ea917a
data/RELEASE.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # Release Notes
2
2
 
3
+ ## 2.4.5
4
+
5
+ ### External changes
6
+
7
+ * Fix regression when stubbed method expects `Hash` but receives `ActionController::Parameters` object (#662, #664) - thanks to @evgeni for reporting and testing
8
+
9
+ ## 2.4.4
10
+
11
+ ### External changes
12
+
13
+ * Fix regression when method expecting `Hash` parameter or keyword arguments is invoked with no arguments (#662, #663) - thanks to @vlad-pisanov for reporting
14
+
15
+ ## 2.4.3
16
+
17
+ ### External changes
18
+
19
+ * Fix regression when matching `Hash` parameter or keyword arguments (#657, #660) - thanks to @josesei for reporting and testing
20
+
3
21
  ## 2.4.2
4
22
 
5
23
  ### External changes
@@ -30,20 +30,25 @@ module Mocha
30
30
  # Parameter matcher which matches when actual parameter contains all expected +Hash+ entries.
31
31
  class HasEntries < Base
32
32
  # @private
33
- def initialize(entries)
33
+ def initialize(entries, exact: false)
34
34
  @entries = entries
35
+ @exact = exact
35
36
  end
36
37
 
37
38
  # @private
38
39
  def matches?(available_parameters)
39
40
  parameter = available_parameters.shift
41
+ return false unless parameter
42
+ return false unless parameter.respond_to?(:keys)
43
+ return false if @exact && @entries.length != parameter.keys.length
44
+
40
45
  has_entry_matchers = @entries.map { |key, value| HasEntry.new(key, value) }
41
46
  AllOf.new(*has_entry_matchers).matches?([parameter])
42
47
  end
43
48
 
44
49
  # @private
45
50
  def mocha_inspect
46
- "has_entries(#{@entries.mocha_inspect})"
51
+ @exact ? @entries.mocha_inspect : "has_entries(#{@entries.mocha_inspect})"
47
52
  end
48
53
  end
49
54
  end
@@ -1,6 +1,7 @@
1
1
  require 'mocha/configuration'
2
2
  require 'mocha/deprecation'
3
3
  require 'mocha/parameter_matchers/base'
4
+ require 'mocha/parameter_matchers/has_entries'
4
5
 
5
6
  module Mocha
6
7
  module ParameterMatchers
@@ -14,7 +15,7 @@ module Mocha
14
15
  def matches?(available_parameters)
15
16
  parameter, is_last_parameter = extract_parameter(available_parameters)
16
17
 
17
- return false unless HasEntries.new(@value).matches?([parameter])
18
+ return false unless HasEntries.new(@value, exact: true).matches?([parameter])
18
19
 
19
20
  if is_last_parameter && !same_type_of_hash?(parameter, @value)
20
21
  return false if Mocha.configuration.strict_keyword_argument_matching?
data/lib/mocha/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Mocha
2
- VERSION = '2.4.2'.freeze
2
+ VERSION = '2.4.5'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mocha
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.2
4
+ version: 2.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Mead
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-18 00:00:00.000000000 Z
11
+ date: 2024-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby2_keywords