initial commit
[govpp.git] / vendor / github.com / onsi / gomega / CHANGELOG.md
1 ## HEAD
2
3 Improvements:
4
5 - Added `BeSent` which attempts to send a value down a channel and fails if the attempt blocks.  Can be paired with `Eventually` to safely send a value down a channel with a timeout.
6 - `Ω`, `Expect`, `Eventually`, and `Consistently` now immediately `panic` if there is no registered fail handler.  This is always a mistake that can hide failing tests.
7 - `Receive()` no longer errors when passed a closed channel, it's perfectly fine to attempt to read from a closed channel so Ω(c).Should(Receive()) always fails and Ω(c).ShoudlNot(Receive()) always passes with a closed channel.
8 - Added `HavePrefix` and `HaveSuffix` matchers.
9 - `ghttp` can now handle concurrent requests.
10 - Added `Succeed` which allows one to write `Ω(MyFunction()).Should(Succeed())`.
11 - Improved `ghttp`'s behavior around failing assertions and panics:
12     - If a registered handler makes a failing assertion `ghttp` will return `500`.
13     - If a registered handler panics, `ghttp` will return `500` *and* fail the test.  This is new behavior that may cause existing code to break.  This code is almost certainly incorrect and creating a false positive.
14 - `ghttp` servers can take an `io.Writer`.  `ghttp` will write a line to the writer when each request arrives.
15 - Added `WithTransform` matcher to allow munging input data before feeding into the relevant matcher
16 - Added boolean `And`, `Or`, and `Not` matchers to allow creating composite matchers
17
18 Bug Fixes:
19 - gexec: `session.Wait` now uses `EventuallyWithOffset` to get the right line number in the failure.
20 - `ContainElement` no longer bails if a passed-in matcher errors.
21
22 ## 1.0 (8/2/2014)
23
24 No changes. Dropping "beta" from the version number.
25
26 ## 1.0.0-beta (7/8/2014)
27 Breaking Changes:
28
29 - Changed OmegaMatcher interface.  Instead of having `Match` return failure messages, two new methods `FailureMessage` and `NegatedFailureMessage` are called instead.
30 - Moved and renamed OmegaFailHandler to types.GomegaFailHandler and OmegaMatcher to types.GomegaMatcher.  Any references to OmegaMatcher in any custom matchers will need to be changed to point to types.GomegaMatcher
31
32 New Test-Support Features:
33
34 - `ghttp`: supports testing http clients
35     - Provides a flexible fake http server
36     - Provides a collection of chainable http handlers that perform assertions.
37 - `gbytes`: supports making ordered assertions against streams of data
38     - Provides a `gbytes.Buffer`
39     - Provides a `Say` matcher to perform ordered assertions against output data
40 - `gexec`: supports testing external processes
41     - Provides support for building Go binaries
42     - Wraps and starts `exec.Cmd` commands
43     - Makes it easy to assert against stdout and stderr
44     - Makes it easy to send signals and wait for processes to exit
45     - Provides an `Exit` matcher to assert against exit code.
46
47 DSL Changes:
48
49 - `Eventually` and `Consistently` can accept `time.Duration` interval and polling inputs.
50 - The default timeouts for `Eventually` and `Consistently` are now configurable.
51
52 New Matchers:
53
54 - `ConsistOf`: order-independent assertion against the elements of an array/slice or keys of a map.
55 - `BeTemporally`: like `BeNumerically` but for `time.Time`
56 - `HaveKeyWithValue`: asserts a map has a given key with the given value.
57
58 Updated Matchers:
59
60 - `Receive` matcher can take a matcher as an argument and passes only if the channel under test receives an objet that satisfies the passed-in matcher.
61 - Matchers that implement `MatchMayChangeInTheFuture(actual interface{}) bool` can inform `Eventually` and/or `Consistently` when a match has no chance of changing status in the future.  For example, `Receive` returns `false` when a channel is closed.
62
63 Misc:
64
65 - Start using semantic versioning
66 - Start maintaining changelog
67
68 Major refactor:
69
70 - Pull out Gomega's internal to `internal`