Skip to content

Releases: Quick/Nimble

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

v11.0.0

31 Oct 22:12
Compare
Choose a tag to compare

This closes the v11.0.0 milestone.

Highlights

Primarily, this release now supports running tests in async contexts.

Fixed

  • toEventually et. al. now works from background threads. #1000
  • toEventually et. al. now work in async tests. #1007

New

  • Async/await support in expectation expressions (e.g. await expect(await someAsyncFunction()).to(...)). #1004
  • append(details:) now respects whitespace that is in the message. #1001
  • watchOS support. #916
  • You can now directly check if an expectation has passed or not. #995

Breaking

  • Raised version requirements to Swift 5.6, iOS 13, macOS 10.15, tvOS 13, and watchOS 6. #984
  • The Expectation struct is now a protocol. There are 2 concrete implementations, SyncExpectation and AsyncExpectation. AsyncExpectation does not support toEventually, and is meant for awaiting on async functions. SyncExpectation is effectively the older Expectation implementation, and works as it used to. #1004

Auto-generated release notes

What's Changed

New Contributors

Full Changelog: v10.0.0...v11.0.0

v10.0.0

27 Apr 17:41
1f3bde5
Compare
Choose a tag to compare

This closes the v10.0.0 milestone.

Highlights

See additional details under the auto-generated release notes below.

Fixed

  • Various documentation improvements
  • Remove various deprecated APIs

New

  • Add toAlways, the inverse of toNever #969
  • Add beWithin matcher #886
  • Support nested optionals in beNil matcher #894
  • Support operator overloads for beNil matcher #893
  • Support throwAssertion matcher on SwiftPM on Linux #891
  • Add support for tuples of up to 6 elements to equal matcher, as with the standard library #880
  • Add matchers for Swift 5 Result type #643

Breaking

  • Swift 5.4+
  • Xcode 12.5+
  • Remove old Matcher API #876
  • Use FloatingPoint protocol in beCloseTo matcher #879
  • passFunc of allPass matcher now takes S.Element over S.Element? #895

Auto-generated release notes

What's Changed

  • [BREAKING] Bump Swift requirement to 5.3 (Xcode 12) by @ikesyo in #875
  • [README] Use expect with trailing closure syntax for the succeed matcher by @ikesyo in #877
  • Suppress SwiftPM build warnings by @ikesyo in #878
  • [BREAKING] Remove old Matcher API by @ikesyo in #876
  • Add support for tuples of up to 6 elements to equal matcher, as with the standard library by @ikesyo in #880
  • [BREAKING] Use FloatingPoint protocol in beCloseTo matcher by @ikesyo in #879
  • Adding toNever expectation by @rkreutz in #800
  • [ObjC] Add toNever expectation by @ikesyo in #885
  • [BREAKING] Remove deprecated and unavailable APIs by @ikesyo in #887
  • Add beWithin matcher by @ikesyo in #886
  • Experimental SwiftWasm support by @ikesyo in #889
  • Removed invalid anchors in the README. by @daveverwer in #890
  • Support throwAssertion matcher on SwiftPM on Linux by @ikesyo in #891
  • Adds matchers for Swift 5 Result type by @xzeror in #643
  • Support operator overloads for beNil matcher by @ikesyo in #893
  • Support nested optionals in beNil matcher by @ikesyo in #894
  • [BREAKING] passFunc of allPass matcher now takes S.Element over S.Element? by @ikesyo in #895
  • Follow master-to-main branch renaming by @ikesyo in #896
  • Add more specific operator overloads for equal matcher by @ikesyo in #897
  • Simplify equal matcher implementation by @ikesyo in #907
  • [CI] Test Swift 5.5 Development by @ikesyo in #908
  • [README] Remove deprecated Accio references by @ikesyo in #909
  • [CI] macOS 11 and Xcode 12.5 by @ikesyo in #912
  • Work around Xcode 13 archiving issue by @ikesyo in #915
  • Bump addressable from 2.7.0 to 2.8.0 by @dependabot in #918
  • Bump cocoapods from 1.10.1 to 1.10.2 by @dependabot in #920
  • [CI] Test Xcode 13 by @ikesyo in #926
  • Update CwlPreconditionTesting to 2.0.1 by @ikesyo in #927
  • Reduce CI duration by removing tests on iPad simulator by @ikesyo in #929
  • Specify header_dir in the podspec by @tsapeta in #921
  • [CI] Disable swift:nightly tests temporarily by @ikesyo in #930
  • Bump cocoapods from 1.10.2 to 1.11.0 by @dependabot in #933
  • Bump swiftwasm/swiftwasm-action from 5.3 to 5.4 by @dependabot in #932
  • Bump cocoapods from 1.11.0 to 1.11.1 by @dependabot in #934
  • Bump cocoapods from 1.11.1 to 1.11.2 by @dependabot in #935
  • [CI] Test Swift 5.5 stable by @ikesyo in #939
  • Fix type inference problem for equal matchers on Xcode 12.5 or above by @ikesyo in #938
  • [BREAKING] Bump Swift requirement to 5.4 (Xcode 12.5) by @ikesyo in #941
  • Add support for precondition testing on Apple Silicon by @svenmuennich in #948
  • beIdenticalTo / ===: disallow comparing non-objects by @NachoSoto in #955
  • Bump actions/checkout from 2 to 3 by @dependabot in #970
  • Fix succeed matcher type inference issue by @ikesyo in #965
  • Bump cocoapods from 1.11.2 to 1.11.3 by @dependabot in #972
  • Bump cocoapods-downloader from 1.5.1 to 1.6.3 by @dependabot in #975
  • Disable ThrowAssertion for watchOS to make Nimble compile for watchOS by @danielsaidi in #953
  • Add toAlways, the inverse of toNever. by @younata in #969
  • Simplify the implementations of beTruthy and beFalsy by @younata in #978
  • Fix equal compilation optionals by @younata in #982
  • Add document for running tests on linux using docker by @younata in #980
  • Update documentation for the beCloseTo and beWithin matchers by @younata in #983
  • [10.0.0] bump version, gen docs by @jessesquires in #985

New Contributors

Full Changelog: v9.2.0...v10.0.0