0.25.0

Blighted Depths

  • strikt-mockk module.

0.24.0

Auspicious Misery

  • New methods:
    • Assertion.Builder<Iterable<T>>.elementAt
    • Assertion.Builder<Iterable<T>>.one
    • Assertion.Builder<ArrayNode>.findValuesAsText
    • Assertion.Builder<ArrayNode>.textValues

0.23.7

Celestial Depths

  • Fixes filepeek support on Windows

0.23.6

Weeping Spire

  • Fixes missing transitive dependency on com.christophsturm:filepeek

0.23.5

Auspicious Misery

  • Fixes some errors in complex nested block scenarios. See #203 and #204

0.23.4

Grievous Form

  • Fixes BOM file from previous release

0.23.3

Savage Wing

  • Improved descriptions associated with Jackson extensions. See #195
  • Added at mapping for JsonNode assertions. See #152

0.23.2

Mighty Empress

  • Fixes IllegalArgumentException on compose when prior assertions have failed because the subject is the wrong type. See #194

0.23.0

Rancorous Horizon

  • Adds with function for performing blocks of assertions on a derived subject. See #117
  • Many assertion functions may now be used in infix style. See #187
  • Improves presentation of multi-line values in expectation output. See #158

Breaking changes

  • The expectThat override that accepts a lambda is now Unit rather than returning Assertion.Builder. See #190

0.22.3

Vermillion Warrior

  • Adds assertions for sequence of values being present in a list
  • Fixes to documentation in Arrow module

0.22.2

Flawless Assassin

  • Fixes transitive dependency on opentest4j for consumers
  • Updates Arrow dependency

0.22.1

Blessed Hammer

  • Fixes documentation link that broke previous release

0.22.0

Rancourous Dirge

  • New module for assertions on Arrow's Either, Try and Option types.

0.21.2

Funereal Daughter

  • Fixes issues with and (see #176)
  • Kotlin 1.3.50

0.21.1

Heavenly Bear

  • Bug-fix for type inference in succeeded().
  • Improved output for failed().

0.21.0

Funereal Raven

Breaking changes

  • Updated exception handling assertions that use Kotlin's runCatching and Result<T>.

Other changes

  • Added override for describedAs that accepts a lambda.

0.20.1

Elder Refuge

  • Changed Assertion.Builder<Iterable<*>>.contains to pass if the argument is an empty list/varargs.
  • Fixed an out of bounds exception in Assertion.Builder<Iterable<*>>.containsExactly

0.20.0

Pain Mother

Added strikt.gradle module with some support for testing Gradle's API.

0.19.7

Glorious Catacomb

  • Adds assertions and mappings for java.io.File and java.nio.file.Path
  • Adds assertions for Spring's ResponseEntity class.

0.19.6

Bitter Forest

Fixes issues with bom publication.

0.19.5

Victorious Scholar

Packages a BOM for aligning strikt versions.

0.19.4

Poison Spire

Suppresses internal stack frames from exceptions to make it easier to determine where the assertion was raised.

0.19.3

Iron Ocean

  • Adds assertions and mappings for Assertion.Builder<ClosedRange>.
  • Adds endsWith(Char) for Assertion.Builder<CharSequence>.

0.19.2

Bounteous Steel

  • Adds getValue assertion/mapping for Assertion.Builder<Map<*, *>>.

0.19.1

Mighty Rainbow

  • Adds overload of not that accepts a block.

0.19.0

Poison Hammer

  • Ensures that chains inside of blocks still fail fast.
  • Ensures get is runtime type safe. It's now a no-op when preceded by a failing type-narrowing assertion.

0.18.2

Venomous Twilight

Added atLeat, atMost and exactly assertions for iterables.

0.18.1

Ferocious Rose

Extends strikt-jackson module with further assertion and mapping functions:

  • hasNodeType(JsonNodeType)
  • isMissing()
  • textValue()
  • numberValue()
  • booleanValue()

0.18.0

Silken Grasshopper

Adds strikt-jackson module.

0.17.3

Unfettered Serpent

Adds isPresent and isAbsent assertions for java.util.Optional along with toNullable mapping function.

0.17.2

Battleworn Understanding

Fixes isSorted when used in a block.

0.17.1

Whispering Sword

Adds filter, filterNot and filterIsInstance functions for Assertion.Builder<Iterable<*>>

0.17.0

Forsaken Raven

Changes

  • Upgrades Strikt to depend on Kotlin 1.3.
  • expectThrows is un-deprecated.

New functionality

  • Expectations are now compatible with suspending lambdas.

Fixes

  • isBefore and isAfter in strikt-java-time now support ZonedDateTime.

0.16.3

Saffron Mammoth

New functionality

  • Assertion.Builder<Collection<*>.isSorted
  • isEqualTo now has special handling for arrays that compares content using contentEquals.

0.16.2

Anonymous Ifrit

  • Backed out truncation of values in failure messages.

0.16.1

Onyx Mammoth

  • Backed out truncation of values in failure messages.

0.16.0

Sadness Blossom

Breaking changes

  • Assertions for java.time types moved from strikt-core to new strikt-java-time module.

New functionality

  • Assertion.Builder<Map<*, *>>.isNotEmpty
  • Assertion.Builder<Array<*>>.toList
  • Assertion.Builder<CharSequence>.trim
  • Assertion.Builder<String>.trim

0.15.2

Alabaster Tyrant

  • Added is(Not)(NullOr)(Empty|Blank) assertions.

0.15.1

Wasteland Monkey

  • Changes get to use a receiver rather than a parameter.
  • Adds new first(predicate) and flatMap mapping extensions for iterable subjects.

0.15.0

Garden Daimyo

  • Deprecates chain in favor of new get method.

0.14.4

Void Maiden

  • Added Java 11 build & hopefully fixed site publishing

0.14.3

Hungry Boulder

  • Added isIn assertion.