packages feed

HMock-0.5.1.2: CHANGELOG.md

# Revision history for hmock

## 0.5.1.2 -- 2023-11-28

* Version bounds now allow GHC 9.6 and 9.8
* Fix Quasi instance warning for GHC 9.4
* Bumped dependency version upper bounds

## 0.5.1.1 -- 2022-09-18

* Version bounds now allow GHC 9.4

## 0.5.1.0 -- 2021-09-25

* HMock works with more classes with superclass constraints.
* Classes with default methods are now fully mockable.
* Builds with GHC 9.2.1
* Fixes for GHC 8.4 and 8.6

## 0.5.0.0 -- 2021-09-25
* HMock now depends on `Predicate` from the `explainable-predicates` package.

## 0.4.0.0 -- 2021-08-22

* Dramatically simplified the Template Haskell API.
  * `makeMockable` now expects a Type instead of a Name.  Use `[t|MyClass|]`.
  * Most other variants of `makeMockable` have been removed.  Use
    `makeMockableWithOptions` instead.
  * `makeMockable` will now detect when instances already exist and won't
    redefine them.
  * `makeMockable [t|MyClass ConcreteType|]` now defines `Mockable` and
    `MockableBase` for any `MyClass` type.  Only `MockT` instances use the
    concrete type.  In some cases, you may need to add type annotations to your
    expectations.
* `MockSetup` can now add expectations.
* Added a lot more configuration for severity of faults:
  * `setAmbiguityCheck` can now set to ignore, warning, or error.
  * Added `setUninterestingActionCheck` for actions with no expectations.
  * Added `setUnexpectedActionCheck` for actions that don't match expectations.
  * Added `setUnmetExpectationCheck` for expectations that aren't met.
* Predicates have undergone major updates.
  * Predicates now show more detailed messages when they fail.
  * New `keys` and `values` predicates accept any child predicate.
  * Removed `containsKey`, `containsEntry`, `keysAre`, and `entriesAre`
    * Instead of `containsEntry` or `entriesAre`, use `contains` or
      `unorderedElemsAre` with `zipP`.
  * New predicates: `positive`, `negative`, `nonPositive`, `nonNegative`.

## 0.3.0.0 -- 2021-06-30

* Methods with polymorphic return types can now be mocked if the return type has
  a `Typeable` constraint.
* Added `whenever` to associate a side effect to a method.
* Added `WholeMethodMatcher` to match entire method args at once.
* `allowUnexpected` no longer changes the default for expected calls.

## 0.2.0.0 -- 2021-06-24

* Added ambiguity checking.
  * This is an optional feature, which is off by default.
  * To make it easier to avoid ambiguity, there is now an `allowUnexpected` that
  * causes unexpected calls to be ignored and optionally provide a response, but
    doesn't conflict with expectations that override it.  Ambiuguous uses of
    `expectAny` can often be replaced with `allowUnexpected`.
* Restricted mockable setup to defaults to avoid race conditions.
  * Setup handlers now run in the `MockSetup` monad.
  * Adding expectations from setup is no longer allowed.  However, you can use
    `allowUnexpected` to allow unexpected calls.
* Added `nestMockT` and `withNestedMockT` to the API.
* Exported smaller modules to make selective imports easier.

## 0.1.0.1 -- 2021-06-20

* Fixed a bad dependency that broke some GHC versions.

## 0.1.0.0 -- 2021-06-20

* First version. Released on an unsuspecting world.