Skip to content

Releases: Quick/Nimble

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

v9.2.1

29 Aug 05:48
v9.2.1
Compare
Choose a tag to compare

Bugfixes

  • Update CwlPreconditionTesting to 2.0.1 for Xcode 13 compatibility #927, #931

v9.2.0

09 May 16:49
v9.2.0
Compare
Choose a tag to compare

Additions

  • Add support for tuples of up to 6 elements to equal matcher, as with the standard library #880, #884

Improvements

  • [CI] Split ci.yml into dedicated workflows #872
  • Suppress SwiftPM build warnings #878, #882

Docs

  • [README] Use expect with trailing closure syntax for the succeed matcher #877, #883

v9.1.0

07 May 08:53
v9.1.0
Compare
Choose a tag to compare

Additions

  • Add satisfyAnyOf and satisfyAllOf overloads that take arrays of matchers #861, #869 (Thanks @younata)

Improvements

  • Use target dependency condition instead of build machine info #842 (Thanks @kateinoigakukun)
  • [CI] Update Xcode and Swift versions #866, #871
  • Xcode 12.5: Update to recommended settings #868

Bugfixes

  • Make the satisfyAllOf and satifyAnyOf matchers fail correctly when the submatchers fail #860 (Thanks @younata)