The following pull requests have been merged:
- #178: "Expose proxy method to obtain the recorded yaml without saving to a file" (thanks @janeisklar)
- #180: "Add missing query parameters in recordings"
- #181: "Append Headers Instead of Inserting"
This release includes bug fixes and documentation enhancements.
The following pull requests have been merged:
- #179: "Use scheme of target url for forwarding"
This release includes refactoring, dependency updates, and internal cleanups. No breaking changes expected.
The minimum required Rust version has been increased to 1.82.
The following pull requests have been merged:
- #172: "Update Rust edition to 2021" (thanks @FalkWoldmann)
- #169: "Proxy HTTPS fix"
- #167: "Replace log and env_logger with tracing and tracing-subscriber" (thanks @FalkWoldmann)
- #166: "Remove unused code" (thanks @FalkWoldmann)
- #163: "fix: issue 162, non localhost hosts match" (thanks @Thomblin)
- #160: "Replace custom read_file with std::fs::read_to_string" (thanks @FalkWoldmann)
- #158: "Improve async executor support"
- #156: "Bump async-object-pool to replace async-std"
- #153: "ci(deps): bump actions/checkout from 4 to 5"
- #152: "Fix missing standalone routes"
- #151: "Cleanup unused test functions"
- #147: "ci(deps): bump codecov/codecov-action from 2 to 5"
- #146: "cargo(deps): update thiserror requirement from 1 to 2"
- #145: "ci(deps): bump actions/checkout from 2 to 4"
- #144: "ci(deps): bump docker/build-push-action from 4 to 6
- #141: "cargo(deps): update path-tree requirement from >=0.8.0, <0.8.1 to >=0.8.0, <0.8.4"
- #140: "ci(deps): bump docker/login-action from 1 to 3"
- #139: "ci(deps): bump withastro/action from 2 to 4"
- #138: "Create dependabot.yml" (thanks @FalkWoldmann)
- #136: "Replace async_std with tokio" (thanks @FalkWoldmann)
This release mainly contains internal improvements and bugfixes. The minimum required Rust version has been increased to 1.81. Apart from the updated MSRV, there are no breaking changes.
The following pull requests have been merged:
- #112: "Fix building without cookies feature" by @jayvdb.
- #117: "fix rustls crypto provider features" by @Taowyoo.
- #120: "Refactoring and cleanup". THanks by @FalkWoldmann.
- A new MockServer::reset method was added that resets a mock server. Thanks for providing the pull request for this feature, @dax.
- The default port for standalone server was changed from
5000to5050due to conflicts with system services on macOS. - Custom matcher functions are now closures rather than functions.
- When::json_body_partial was renamed to
json_body_includes. - When::x_www_form_urlencoded_tuple was renamed to
form_urlencoded_tuple. - When::x_www_form_urlencoded_key_exists was renamed to
form_urlencoded_key_exists. - Error message output has been changed for better readability (e.g., when calling
Mock::assert). - Custom matcher function
When::matcheshas been renamed toWhen::is_true.
- Record and Playback mode was added
- Many new matchers functions have been added
- Proxy Mode was added
- Website docs have been created (see https://httpmock.rs)
- HTTPS support added
- Internal implementation was entirely rewritten
- The algorithm to find the most similar request in case of mock assertion failures has been improved.
-
BREAKING CHANGES:
- For connecting to remote
httpmockservers during tests using any of theconnectmethods like MockServer::connect, MockServer::connect_async, MockServer::connect_from_env, or MockServer::connect_from_env_async, you must now activate theremotefeature. This feature is not enabled by default.
- For connecting to remote
-
Improvements:
- The dependency tree has been significantly slimmed down when the
remotefeature is not enabled. - If the new
remotefeature is not enabled,httpmockno longer has a dependency on a real HTTP client. As a result, certain TLS issues previously reported by users should no longer arise.
- The dependency tree has been significantly slimmed down when the
-
This release also updates all dependencies to the most recent version.
-
The minimum Rust version has been bumped to 1.70.
- This is a maintenance release that updates all dependencies to the most recent version.
- Fixes some dependency issues with the Docker image.
- This is a maintenance release that updates all dependencies to the most recent version.
- Extended some API methods to allow for more type flexibility (see httpmock#58). Thanks to @95th for providing the PR!
- Fixed parsing query parameter values that contain
+to represent space (see httpmock#56). Thanks to @95th for providing the PR! - Added a new Cargo feature
cookieto shorten compile time (see httpmock#63). Thanks to mythmon for providing this PR!
- Fixes a race condition that could occur when deleting mocks from the mock server (see httpmock#53).
- Replaced internal diff library (switched from
differencetosimilar, see httpmock#55).
- Fixed minimum Rust version in README (raised from 1.47 to 1.54, see release 0.6.3 for more information).
- This is a maintenance release that updates all dependencies to the most recent version.
- Bumped minimum Rust version to 1.54 due to transitive dependency.
- A bug was fixed that has unexported the When and Then structures. Both types are now exported again. Please refer to httpmock#47 for more info.
- This is a maintenance release that updates all dependencies to the most recent version.
- Old Mock structure based API was deprecated starting from version 0.5.0 and was removed with this version. Please switch to the new API based on the When / Then structures.
- The two methods
MockRef::times_calledandMockRef::times_called_asyncwere deprecated since version 0.5.0 and have now been removed. - A prelude module was added to shorten imports
that are usually required when using
httpmockin tests. - The struct
MockRefhas been renamed toMock. - Trait
MockRefExthas been renamed toMockExt. - Added support for x-www-form-urlencoded request bodies.
- Standalone server now has a request history limit that can be adjusted.
- All standalone servers parameters now have an environment variable fallback.
- Standalone servers
exposedanddisable_access_logparameters were changed, so that they now require a value in addition to the flag itself (this is due to a limitation ofstructopt/clap): Before:httpmock --expose, Now:httpmock --expose true.
- A bug has been fixed that prevented to use the mock server for requests containing a
multipart/form-datarequest body with binary data.
- Added static mock support based on YAML files for standalone mode.
- Dockerfile Rust version has been fixed.
- Documentation on query parameters has been enhanced.
- Bumped minimum Rust version to 1.46 due to transitive dependency.
- A bug has been fixed that caused false positive warnings in the log output.
- Updated all dependencies to the most recent versions.
- Assertion error messages (
MockRef::assertandMockRef::assert_hits) now contain more details.
- A bug has been fixed that prevented to use a request body in DELETE requests.
- A new extension trait
MockRefExtwas added that extends theMockRefstructure with additional but usually not required functionality.
- This is a maintenance release that updates all dependencies to the most recent version.
- This release bumps the minimal Rust version from 1.43+ to 1.45+.
- Updated dependencies to newest version.
- Removed dependency version fixation from v0.5.1.
Mock::return_body_from_fileandThen::body_from_filenow accept absolute and relative file paths.
- Updated dependency to futures-util to fix compile errors.
- Fixed all dependency version numbers to avoid future problems with new dependency version releases.
- ❌ Breaking Change: Function
Mock::expect_json_bodywas renamed toexpect_json_body_obj. - ❌ Breaking Change: Function
Mock::return_json_bodywas renamed toreturn_json_body_obj. - 🚀 Attention: A new API for mock definition was added. The old API is still available and functional, but is deprecated from now on. Please consider switching to the new API.
- 🚀 Attention: The following new assertion functions have been added that will provide you smart and helpful
error output to support debugging:
MockRef::assertMockRef::assert_hitsMockRef::assert_asyncMockRef::assert_hits_async
- The two methods
MockRef::times_calledandMockRef::times_called_asyncare now deprecated. Consider usingMockRef::hitsandMockRef::hits_async. - The two methods
Mock::return_bodyandThen::bodynow accept binary content. - The following new methods accept a
serde_json::Value:Mock::expect_json_bodyMock::return_json_bodyWhen::json_bodyThen::json_body
- 🔥 Improved documentation (a lot!).
- 👏 Debug log output is now pretty printed!
- 🍪 Cookie matching support.
- Support for convenient temporary and permanent redirect.
- The log level of some log messages was changed from
debugtotraceto make debugging easier.
- Improved documentation.
- Added a new function
base_urlto theMockServerstructure.