Table of Content
- New Features
- Fixes
- Improvements
- Deprecation
- Breaking Changes
- Migrating deprecated functionality
- Sponsors
Full Changelog: v1.1.0...v1.2.0
New Features
All APIs
- add IterableFeatureExtractor.last #1654 => thanks to @constantine-zubrilin
- add extractSubject #1703 => see also https://github.com/robstoll/atrium/blob/v1.2.0/README.md#subject-extraction
- toHoldThirdPartyExpectation, support the usage of third party expectation libraries - ease the migration to Atrium #1702 => see also https://github.com/robstoll/atrium/blob/v1.2.0/README.md#integrate-other-assertionexpectation-libraries
api-fluent
- introduce CharSequence...matchFor(Regex) as replacement of regex(Regex) #1499 (matchFor already exists in api-infix, thus api-fluent only)
api-infx
- no infix only additions this time
Logic / Core
- withHelpOnFailureBasedOnDefinedSubject has now an
showOnlyIf
parameter which allows to define an optional predicate next to the check that the subject is present (otherwise the failure hint is not shown) #1674 - use better names than TSub, TExpected, TNotExpected #1706 (thanks to @vlsi for the idea)
Fixes
- Library lacks support for IR compiler #1481
- workaround intellij KotlinJs bug which removes column numbers in stack traces #1655
- only last failing expectation(-group) is shown in reporting #1705
Improvements
- apply publishing plugins, esp. tutteli-dokka only if env PUB is true #1612
- use IR-backend for JS
- Improve/samples for Iterable.toContain.atLeast/butAtMost/atMost #1669 => thanks to @fergbaldo for some pre-work
- add tests for reportOptions to MapToContainInOrderOnlyKeyValueExpectationsSpec #1129 => thanks to @simonNozaki for some pre-work
- samples for Iterable feature extractors #1569 => => thanks to @constantine-zubrilin
- Hyperlink for atrium-fluent in Examples section of README routes to non-existant file #1718 => thanks to @lkorsman
Deprecation
- all enums in atrium-translations-de_CH were deprecated, switch to atrium-translations-en_GB (we will drop it with Atrium v1.3.0)
Deprecations with 1.3.0
We will make a major refactoring on core and logic level. Those changes should not affect most Atrium users. It might affect you if you:
- created own expectation function based on
assertionBuilder
or other types which are defined in core or logic. - use an own expectation verb
- we will drop the support for internationalization with 1.4.0, all functions involving Translatable will be deprecated in v1.4.0
- might be we drop
en_GB
from package names - might be we move BulletPointProvider to another package
Migration steps/pointers will be provided in the release notes as usual.
The following changes are planned:
- replace
Assertion
withProof
and along with it rename many types incorporating Assertion in its name or in its package's name => we will remove Assertion and co. with 1.5.0 at the latest) - re-write reporting entirely, a lot of types in
ch.tutteli.atrium.reporting
will be affected (could be we move this to 1.3.0)
Breaking Changes
Planned (previously deprecated or announced)
- dropped support for Kotlin 1.3
- we use the IR compiler backend for JS
Unplanned
- we added an extra parameter (with default) to withHelpOnFailureBasedOnDefinedSubject, a binary BC, please re-compile
Breaking Changes with 1.3.0
- we will drop support for translating the output - API might persist until 2.0.0 but we might already only use UsingDefaultTranslator
- we might introduce interface groups for ReporterBuilder - binary compatibility break
- BulletPointProvider might use a BulletPointIdentifier from a different package
- we might drop the experimental expectExtension such as
expect(...).withOptions
provide it in a different form
Migrating deprecated functionality
Use the ReplaceWith in the corresponding @Deprecated
annotations.
Please have a look at older release-notes in case you don't migrate from 1.0.0 or newer
Sponsors
We would like to thank (Tegonal Cooperative, Bern, Switzerland) for sponsoring the time @robstoll is working on Atrium.
Are you using Atrium at work?
Please consider to support the project as well by:
- sponsoring robstoll (Author and main contributor)
- share your expectation functions with others
- report bugs
- provide feedback in case you miss a feature