packages feed

hspec-yesod-0.3.0.0: ChangeLog.md

# ChangeLog for hspec-yesod

## 0.3.0.0

- [#7](https://github.com/parsonsmatt/hspec-yesod/pull/7)
    - Require `yesod-core >= 1.7.0.0`.
    - You can now test a subset of routes without depending on the full
      `YesodDispatch`, which can dramatically cut test compile times. `setUrl`
      and the new `setUrlNested` accept route fragments via `RequestBuilderFor`,
      which carries the route-fragment type.
    - **Breaking:** `RequestBuilderData` gained a `url` type parameter
      (`RequestBuilderData url site`); `getLatestRequest`/`requireLatestRequest`
      return `RequestBuilderData () site`.
    - **Breaking:** `get`, `post`, `postBody`, `performMethod`, and `request`
      now require `UrlToDispatch url site` (from `yesod-core`) instead of
      `RedirectUrl site url`.
    - **Breaking:** a request must now set a URL explicitly; previously an unset
      URL defaulted to `/`, now `request` fails with an error.
    - **Breaking:** removed `TestApp`, `mkTestApp`, and the
      `yedCreateApplication` field of `YesodExampleData`.
    - Added `getRunnerEnv`, which builds a `YesodRunnerEnv` for the current
      `yedSite` via `mkYesodRunnerEnv`. It is built fresh per request so it
      always reflects per-request foundation changes.
    - The `YesodDispatch site` constraint is no longer required by `yesodSpec`,
      `yesodSpecWithSiteGenerator`, `yesodSpecWithSiteGeneratorAndArgument`, or
      `siteToYesodExampleData`.
    - WAI middlewares are now applied in the request builder.
    - Add a `CallStack` to `requireLatestRequest`.
    - Assertion failures now use `withFrozenCallStack`, and the debug formatters
      decode request bytes leniently, so a failure message can no longer be
      masked by a `UnicodeException`.

## 0.2.1.1

- [#8](https://github.com/parsonsmatt/hspec-yesod/pull/8)
  - When `bodyContains` or `bodyNotContains` fail and the content is UTF-8, a partial body is printed to aid debugging. This matches the behavior of `statusIs`.

## 0.2.1.0

- [#6](https://github.com/parsonsmatt/hspec-yesod/pull/6)
  - The function `testModifySite` is deprecated and replaced with `testModifyMiddleware`, `testModifyFoundation`, and `testModifyFoundationAndMiddleware`.

## 0.2.0.1

- Fixes unused import warnings in `Test.Hspec.Yesod.Internal`
- `statusIs` now also prints the first 1024 characters of the request body, in certain circumstances.
- `statusIs` output broken across multiple lines

## 0.2.0

- `statusIs` now prints the request method, path, and query string on failing requests
- Tracks the latest request via `yedRequest` on `YesodExampleData`
- Adds `getLatestRequest` and `requireLatestRequest` as helpful accessors for it 
- Adds `formatRequestBuilderDataForDebugging` to format the request for use in error messages
- Adds a new `.Internal` module to access fields of `RequestBuilderData`

Together these changes are intended to allow for better error messages, like the one made to `statusIs`.

## 0.1.0

- Initial release and fork from `yesod-test`.