Skip to content

0.8.16

Latest

Choose a tag to compare

@github-actions github-actions released this 09 Aug 16:46
· 9 commits to master since this release

Changelog:

New features:

  • Qualified enum constants read cleanly. When two enums share a constant name and Kotlin forces qualification (OrderStatus.PENDING), the sentence rendered the camel-split qualifier as noise words ("the order is order status PENDING"). A qualified reference whose qualifier provably resolves (via the file's imports) to an enum constant or nested object — including sealed-class data objects (OrderStatus.Pending) — now renders just the member name as a value token, with the type's simple name as a hover hint. Unresolvable qualifiers render as before. Kotlin and Java (#180).
  • Chained references through value containers. @RenderedValueContainer now works on test-method parameters as well as fields, and references through the container (useCase.stub, useCase.ref.name) render as resolved values, gated on the member carrying @RenderedValue. The chain may be followed by a call taking arguments — whenever(useCase.stub.sends(request)) renders the resolved stub value followed by "sends" and the request as ordinary sentence words, where previously the whole phrase collapsed into the container's toString. Kotlin covers . and ?. chains; Java covers the chain-before-call shape. Display values come from a registered value renderer or the member's toString.
  • Fixture values from shared objects: by fixtures(fx). A Kotlin property delegate that resolves a fixture's value from the currently executing test's context on every access. Shared parameterised-test data (e.g. @MethodSource use-case objects) can expose per-invocation fixture values as plain properties with no mutation of shared state; a single instance is safe under parallel execution, and access outside an active test fails with an error naming the property and fixture.
  • Fixture-delegated properties render as fixture tokens. A reference terminating in a by fixtures(...) property — via a container chain, a bare reference inside with(container) { }, or a property on the test class itself — renders with the same styling and highlighting as a direct fixtures[...] reference. Paths continuing past the delegated property render as derived values as before.

Fixes:

  • Diagram labels keep natural glyph shapes. The 0.8.15 Safari fix swapped every diagram <text> element to lengthAdjust="spacingAndGlyphs", which scales glyphs horizontally to fit PlantUML's computed textLength — short labels (e.g. 4-character participant names) read as faux-bold where browser font metrics diverge from PlantUML's. The Safari corruption (#174) is now fixed at source instead: consecutive whitespace in sequence diagram labels (interaction names, dividers, time markers, participant labels, group names) is collapsed to a single space before PlantUML measures them, so the rendered textLength matches what the browser draws and the SVG keeps PlantUML's native lengthAdjust="spacing" (#179). A group named Setup with stray whitespace also now receives the setup colour rather than the test-group gold.
  • Delegated Kotlin properties in rendered paths. A path segment backed by a property delegate (by lazy, a custom ReadOnlyProperty) resolved to the delegate object itself, rendering its type name (e.g. "Read Only Property") instead of the value. Delegated properties now resolve through their getter, including private delegated properties.

Changed:

  • Gradle 9.7.0. Wrapper bump from 9.6.1; no API changes.