Skip to content

Release v5.0.0

Choose a tag to compare

@github-actions github-actions released this 02 Nov 04:57
1dfbfa4

Screenplay has no JSON. Objects and lists are now written as indented blocks under the name that holds them, with one level of indentation per level of the hierarchy. Component properties use this form, and so does every other place a value is assigned.

Added

  • Structured values as indented blocks: member = value lines for an object, one item line per list element, <name> none for an empty list and <name> empty for an object without members. For example, property columns followed by an indented item holding id = "received". See https://github.com/Cratis/Screenplay/blob/main/Documentation/screenplay/structured-values.md.
  • then returns value opens a structured response, and then no readmodel X for takes its key members as a block.
  • from literal takes a block, with its modifiers on the line.
  • Error PLAY0833 for a value written as inline JSON. The editors offer a quick fix, and printing a document converts every occurrence.
  • Highlighting and hover documentation for item, none and empty in structured values.

Changed

  • Breaking: {...} and [...] values are no longer accepted anywhere in a .play document: component properties, literal bindings, composition values, specification, case and example values, seeds, productions, reactions, captures, operation inputs, generated fixtures and exact-mode projection literals. The printer writes the block form.
  • A step header that carries one inline assignment (given Invoice total = 1000) takes scalars only. A structured value moves to its own line under the header.
  • The event model board shows a structured value on one line as (member = value, ...) or (item value, ...) instead of JSON.