Skip to content

Releases: Quick/Nimble

v12.3.0

17 Sep 04:54
v12.3.0
Compare
Choose a tag to compare

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

Full Changelog: v12.2.0...v12.3.0

v12.2.0

28 Jul 15:34
v12.2.0
Compare
Choose a tag to compare

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

15 Jul 05:48
Compare
Choose a tag to compare

Highlights

  • You can now create Predicates that run in async contexts.

What's Changed

New Contributors

Full Changelog: v12.0.1...v12.1.0

v12.0.1

01 Jun 22:45
Compare
Choose a tag to compare

What's Changed

Full Changelog: v12.0.0...v12.0.1

v12.0.0

14 Apr 16:57
Compare
Choose a tag to compare

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

Full Changelog: v11.2.2...v12.0.0

v11.2.2

04 Apr 15:46
Compare
Choose a tag to compare

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

New Contributors

Full Changelog: v11.2.1...v11.2.2

v11.2.1

18 Nov 01:08
Compare
Choose a tag to compare

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

12 Nov 01:39
Compare
Choose a tag to compare

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

  • Remove autoclosure tag with async expectations by @younata in #1020

Full Changelog: v11.1.1...v11.2.0

v11.1.1

11 Nov 06:56
Compare
Choose a tag to compare

What's Changed

  • Fix regression where named tuples could not be compared with unnamed tuples of the same types using the == operator by @younata in #1017
  • Use uncached expression in the async versions of toEventually by @younata in #1018

Full Changelog: v11.1.0...v11.1.1

v11.1.0

02 Nov 17:00
Compare
Choose a tag to compare

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