Skip to content

Bump webmock from 3.26.2 to 3.31.0 - #153

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/bundler/webmock-3.31.0
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/bundler/webmock-3.31.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 16, 2026

Copy link
Copy Markdown
Contributor

Bumps webmock from 3.26.2 to 3.31.0.

Release notes

Sourced from webmock's releases.

3.31.0

  • Return the contents of a File or Pathname body given to to_return_json, or returned by its body lambda, instead of encoding the object as a JSON string (#1119)

    The file is read and closed as it is for to_return: when the stub is declared, or on each request when it comes from a lambda.

    Thanks to Alex

  • Match HTTP methods given as a string or in upper case, as in stub_request("get", ...), a_request("GET", ...) or assert_requested("post", ...) (#821)

    Before, such a method never matched, so the stub never applied and negative expectations like assert_not_requested("get", ...) always passed. A test that passed only because of this can now fail.

    The method of a request is now always a lower case Symbol too. A request made with an upper case method, as Typhoeus does with method: :POST, now matches a :post stub, and callbacks and with blocks see :post.

    Thanks to Euisan Kim

3.30.0

  • Allow narrowing an RSpec expectation on a stub with with, as in expect(stub).to have_been_requested.once.with(body: "abc") (#1128)

    The expectation counts only the requests that match both the stub and the conditions given to with. The stub itself does not change.

    Thanks to Sébastien S.

  • Show the JSON body hint for expectations narrowed with with too, and no longer show it when a block is given to the stub or expectation, since checking would mean calling the block

  • Allow a full URL with a path in disable_net_connect!(allow: ...), as in allow: "https://github.com/mozilla/geckodriver/releases/latest" (#977)

    URLs are compared the same way as in stubs, so the default port, letter case in the host, and the order and encoding of query parameters don't matter. A URL without a path or query allows every path on that scheme, host and port; a trailing slash restricts requests to / with no query string. Credentials in either URL are ignored.

    Thanks to Henry Blyth

3.29.0

  • Show a body diff for JSON requests whose content type has a +json suffix, such as application/vnd.api+json, and for the other content types WebMock already matches as JSON (#734)

    Thanks to Olivier Brisse

  • Ignore the case of JSON, XML and url-encoded content types when matching request bodies, and match bodies of any +json or +xml media type, such as image/svg+xml, as JSON or XML

  • Suggest declaring a JSON body as a hash when a request fails to match only because the JSON is formatted differently (#649)

    A body declared as a string must match the request body exactly, including key order and whitespace. When that is the only difference, the error for an unregistered request and the failure message of a request expectation now say so, and suggest with(body: JSON.parse(json_string)). Matching JSON strings regardless of key order by default is planned for the next major version (#485).

3.28.0

  • Fix to_rack apps receiving a rack.session they did not set up (#985)

    WebMock used to add a session hash to the Rack env, shared by every request to the same stub. This confused apps that check whether a session is present, such as Rails API-only apps, and carried session data over between requests. WebMock now leaves rack.session and rack.session.options unset, as a real server does. If your app needs a session, include session middleware in the app you pass to to_rack. RackResponse#session and RackResponse#session_options have been removed.

    Thanks to Jan Graichen

  • Fix crash when matching a hash body pattern against a JSON or XML request that has no body

... (truncated)

Changelog

Sourced from webmock's changelog.

3.31.0

  • Return the contents of a File or Pathname body given to to_return_json, or returned by its body lambda, instead of encoding the object as a JSON string (#1119)

    The file is read and closed as it is for to_return: when the stub is declared, or on each request when it comes from a lambda.

    Thanks to Alex

  • Match HTTP methods given as a string or in upper case, as in stub_request("get", ...), a_request("GET", ...) or assert_requested("post", ...) (#821)

    Before, such a method never matched, so the stub never applied and negative expectations like assert_not_requested("get", ...) always passed. A test that passed only because of this can now fail.

    The method of a request is now always a lower case Symbol too. A request made with an upper case method, as Typhoeus does with method: :POST, now matches a :post stub, and callbacks and with blocks see :post.

    Thanks to Euisan Kim

3.30.0

  • Allow narrowing an RSpec expectation on a stub with with, as in expect(stub).to have_been_requested.once.with(body: "abc") (#1128)

    The expectation counts only the requests that match both the stub and the conditions given to with. The stub itself does not change.

    Thanks to Sébastien S.

  • Show the JSON body hint for expectations narrowed with with too, and no longer show it when a block is given to the stub or expectation, since checking would mean calling the block

  • Allow a full URL with a path in disable_net_connect!(allow: ...), as in allow: "https://github.com/mozilla/geckodriver/releases/latest" (#977)

    URLs are compared the same way as in stubs, so the default port, letter case in the host, and the order and encoding of query parameters don't matter. A URL without a path or query allows every path on that scheme, host and port; a trailing slash restricts requests to / with no query string. Credentials in either URL are ignored.

    Thanks to Henry Blyth

3.29.0

  • Show a body diff for JSON requests whose content type has a +json suffix, such as application/vnd.api+json, and for the other content types WebMock already matches as JSON (#734)

    Thanks to Olivier Brisse

  • Ignore the case of JSON, XML and url-encoded content types when matching request bodies, and match bodies of any +json or +xml media type, such as image/svg+xml, as JSON or XML

  • Suggest declaring a JSON body as a hash when a request fails to match only because the JSON is formatted differently (#649)

    A body declared as a string must match the request body exactly, including key order and whitespace. When that is the only difference, the error for an unregistered request and the failure message of a request expectation now say so, and suggest with(body: JSON.parse(json_string)). Matching JSON strings regardless of key order by default is planned for the next major version (#485).

3.28.0

  • Fix to_rack apps receiving a rack.session they did not set up (#985)

    WebMock used to add a session hash to the Rack env, shared by every request to the same stub. This confused apps that check whether a session is present, such as Rails API-only apps, and carried session data over between requests. WebMock now leaves rack.session and rack.session.options unset, as a real server does. If your app needs a session, include session middleware in the app you pass to to_rack. RackResponse#session and RackResponse#session_options have been removed.

... (truncated)

Commits
  • 2de7c4e Version 3.31.0
  • 5615a7a Match HTTP methods given as a string or in upper case
  • 5e589f3 Merge pull request #886 from euisan/ssankim-patch-1
  • 22d210a Tidy the to_return_json file body specs
  • ee2fbbb Keep the JSON response fixture in spec/fixtures
  • 2fd0e85 Explain when to_return_json reads a file body
  • 403b579 Merge pull request #1137 from ac1982/fix/json-file-response-bodies
  • 70efcba Preserve file bodies in to_return_json
  • d57be75 Version 3.30.0
  • 37ab875 Compare allowed URLs in the net connect allow list the same way as stub URLs
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [webmock](https://github.com/bblimke/webmock) from 3.26.2 to 3.31.0.
- [Release notes](https://github.com/bblimke/webmock/releases)
- [Changelog](https://github.com/bblimke/webmock/blob/master/CHANGELOG.md)
- [Commits](bblimke/webmock@v3.26.2...v3.31.0)

---
updated-dependencies:
- dependency-name: webmock
  dependency-version: 3.31.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file ruby Pull requests that update ruby code labels Oct 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file ruby Pull requests that update ruby code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants