Skip to content

0.8.14

Latest

Choose a tag to compare

@github-actions github-actions released this 22 Jul 11:02

Changelog:

Fixes:

  • Non-null assertion (!!) in rendered paths. Fixture, output and chained-call expressions containing Kotlin's !! operator — fixtures(MyFixture)!!.name, outputs[MyOutput].foo!!.bar — were not recognised, so the raw source words leaked into the sentence instead of the value. All path patterns now accept !! after the accessor and after any chain segment, and path resolution strips it (#168).
  • Kotlin stdlib extension functions in rendered paths. A path segment calling a stdlib extension — fixtures[X]!!.uppercase(), .first() — silently rendered null, because only Java members of the receiver were searched. Resolution now falls back to the stdlib extension facades (StringsKt, CollectionsKt, MapsKt, ArraysKt), including @InlineOnly functions. User-defined extensions remain unresolvable (#169).
  • By-key outputs with non-word keys. outputs("my-key") and other keys containing hyphens, dots or spaces were not recognised; the quoted key may now be any string (#170).
  • Explicit type arguments in rendered expressions. outputs<String>("myKey") — which the compiler forces whenever the type can't be inferred — and generic chain calls like .first<String>() were not recognised. Type arguments are now accepted on the fixtures/outputs accessors and on chain segments, and erased during path resolution (#171).
  • Factory fixture navigation paths resolve to the navigated value. fixtures[productFor(p)].name rendered the whole fixture value rather than the .name property, making sentences silently misleading. The trailing path is now carried through parsing and applied when rendering (#172).
  • Fixture factory calls inside a fixtures[...] subscript render as a single value. fixtures[productFor(provideType)] (the documented @Fixture factory-call syntax) previously leaked the literal word "fixtures" before the fixture value, because only the inner factory call was recognised. The whole fixtures[factory(args)] span, including any trailing navigation, is now recognised as one fixture-factory expression, so the accessor is absorbed.
  • Parameterised test header hover no longer truncates. The invocation header showed the full parameterised display name through a native title hover, which browsers cap at roughly 1024 characters, clipping long names mid-string. It now uses the built-in tooltip, which wraps and scrolls with no cap; the collapsed "N params" chip gained a hover listing the parameters, and long parameter names in the expanded table now show a hover too (#165).
  • Protected phrases no longer match inside longer words. A protected phrase matched case-insensitively at any position, so a phrase like Close bit into ClosedDate and split it mid-word, rendering the display name as Close d Date instead of Closed Date; rendered sentences mangled the same way. Phrase matches now only apply when they align to camel-word or punctuation boundaries, in both test display names and sentences (#166).