Releases: Quick/Nimble
v12.3.0
Highlights
- the async variant of
toEventually
no longer kicks off unstructured background tasks to check that the matcher matches. This means that there will no longer be the possibility that the same value will be being checked by multiples of the same matcher.
What's Changed
- Bump activesupport from 7.0.4.3 to 7.0.7.2 by @dependabot in #1080
- Bump actions/checkout from 3 to 4 by @dependabot in #1081
- Implement the async variant of toEventually using structured concurrency by @younata in #1079
- Fix all swiftlint warnings by @younata in #1085
Full Changelog: v12.2.0...v12.3.0
v12.2.0
Highlights
the equal
matcher now supports arrays of tuples. For example:
expect([
(1, 2),
(3, 4)
]).to(equal([
(1, 2),
(3, 4)
]))
Thanks @faroman for their contribution!
Automatically Generated Release Notes
What's Changed
New Contributors
Full Changelog: v12.1.0...v12.2.0
v12.1.0 - AsyncPredicate
Highlights
- You can now create Predicates that run in async contexts.
What's Changed
- Add AsyncPredicate - Matchers with AsyncExpressions by @younata in #1056
- Remove unused constant by @peterringset in #1064
New Contributors
- @peterringset made their first contribution in #1064
Full Changelog: v12.0.1...v12.1.0
v12.0.1
What's Changed
- Fix wasm build by @ikesyo in #1053
- Bump cocoapods from 1.12.0 to 1.12.1 by @dependabot in #1054
- Bump swiftwasm/swiftwasm-action from 5.7 to 5.8 by @dependabot in #1057
- Make the async version of poll concurrency-safe by wrapping it in an actor by @younata in #1059
- cast an empty array to avoid a warning during compile time by @younata in #1060
Full Changelog: v12.0.0...v12.0.1
v12.0.0
Nimble 12 adds the ability to using polling expectations with async expressions. Additionally, Nimble 12 includes a number of quality-of-life improvements and bug fixes.
What's Changed
- Update the README to have an accurate usage of expect by @younata in #1038
- Allow usage of toEventually with async expressions by @younata in #1039
- Replace public usage of DispatchTimeInterval with a new NimbleTimeInterval by @younata in #1042
- Make NimbleTimeInterval.dispatchTimeInterval public by @younata in #1043
- Run SyncExpectation's expression in async contexts of toEventually on the main actor. by @younata in #1044
- satisfyAllOf and satisfyAnyOf should only evaluate the expression once. by @younata in #1045
- Rename AsyncDefaults to PollingDefaults by @younata in #1023
- Fixed Swift.package: added macCatalyst to the condition for CwlPreconditionTesting dependency by @uebelack in #1048
- Raise minimum watchos deployment target to 7.0 by @younata in #1050
- Feature/handle multithreaded notifications by @johnmckerrell and @younata in #1051
- Objective-C support in the Swift Package version by @younata in #1005
- Update documentation in preparation for Nimble 12 by @younata in #1052
New Contributors
- @uebelack made their first contribution in #1048
- @johnmckerrell made their first contribution in #1051
Full Changelog: v11.2.2...v12.0.0
v11.2.2
Highlights
Nimble v11.2.2 is a minor bug fix release which fixes the build on Xcode 14.3 and Wasm.
Thanks to @dymv for fixing the Xcode 14.3 build and to @ikesyo for fixing the wasm build!
Autogenerated Changelog
What's Changed
- Bump activesupport from 6.1.5 to 6.1.7.1 by @dependabot in #1029
- Bump cocoapods from 1.11.3 to 1.12.0 by @dependabot in #1032
- Fixes the build on Xcode 14.3b2 by @dymv in #1033
- Bump activesupport from 7.0.4.2 to 7.0.4.3 by @dependabot in #1034
- Fix wasm build by @ikesyo in #1036
New Contributors
Full Changelog: v11.2.1...v11.2.2
v11.2.1
Fixed tripping the main thread checker in async toEventually
checks. Your CI should no longer report that tests erroneously crashed because the expression's debugDescription
dared to reference something that needed to run on the main thread.
What's Changed
- Add documentation on recommended ways to configure AsyncDefaults by @younata in #1022
- Ensure that stringify'ing an expression as part of the async/await polling infrastructure always happens on the main thread by @younata in #1024
Full Changelog: v11.2.0...v11.2.1
v11.2.0
Improved developer experience by allowing you to use the sync form of expect
in a test that has other usage of async test. i.e. the following code compiles again:
class MyTest: XCTestCase {
func testExample() {
await someAsyncFunction()
expect(someValue).to(equal(expectedValue))
}
}
What's Changed
Full Changelog: v11.1.1...v11.2.0
v11.1.1
v11.1.0
11.1.0 drops support for Swift 5.6 (you must use Xcode 14 or later). #1009
11.1.0 fixes a developer experience bug where you could unknowingly use the sync version of toEventually
in an async context, which will cause test timeout failures. #1010
That is, the following test method (XCTest-style) would compile with no errors or warnings emitted, but fail at test runtime due to timeout issues. In v11.1.0, this now emits a warning that you're using the wrong version of toEventually
(and similar).
@MainActor func testSomething() async {
expect(1).toEventually(equal(1)) // (in v11.0.0, this would not emit any kind of warning or error, but would definitely fail with a timeout error)
}
Full Changelog: v11.0.0...v11.1.0