Skip to main content

5 posts tagged with "core"

View All Tags

Support for WebdriverIO 9

3 min read

We鈥檙e thrilled to announce the release of Serenity/JS 3.31, marking a significant step forward for modern test automation. This release introduces support for WebdriverIO 9, while maintaining compatibility with WebdriverIO 8 for projects that are not yet ready to migrate (#2572).

Let鈥檚 explore what makes this update exciting!

Simplifying test automation infrastructure

3 min read

The Serenity/JS team is excited to unveil version 3.30, a release focused on helping you simplify your test automation infrastructure. This update introduces:

  • streamlined installation process for Serenity BDD,
  • support for Node-only artifact registries like Verdaccio,
  • support for Playwright 1.49,
  • all Serenity/JS Project Templates updated to reflect these improvements.

Let鈥檚 explore what鈥檚 new!

Introducing Numeric

3 min read

Love numbers? You'll love Serenity/JS 3.29! 馃帀

We鈥檙e excited to share the latest release of Serenity/JS, which is packed with new powerful features for handling numeric data in your automated tests!

Better API documentation

3 min read

In the ever-evolving world of software development, the importance of clear, concise, and accessible documentation cannot be overstated. The Serenity/JS team is thrilled to announce a series of significant improvements to our API documentation, designed to enhance the developer experience and streamline the process of building automated acceptance tests. These updates are crafted to support developers at every stage of their journey, from understanding the basics to mastering the intricacies of the framework.

Introducing dynamic descriptions

8 min read

馃摚 Serenity/JS Tasks, Interactions and Questions now support dynamic descriptions 馃帀

With the new release of Serenity/JS 3.24, descriptions of Tasks, Interactions, and Questions, including assertions and synchronisation statements, can be determined dynamically at runtime and incorporate the actual values of static and dynamic parameters you passed in.

The new dynamic descriptions feature is particularly useful when designing custom Serenity/JS tasks that accept notes or other dynamic data structures like questions, question adapters, or answerables.

Long story short: to use dynamic descriptions, upgrade to Serenity/JS 3.24 and replace d with the in your custom Task and Interaction definitions:

- import { Task, d } from '@serenity-js/core';
+ import { Task, the } from '@serenity-js/core';

export const recordItem = (name: Answerable<string>): Task =>
- Task.where(d`#actor records an item called ${ name }`,
+ Task.where(the`#actor records an item called ${ name }`,
Enter.theValue(name).into(newTodoInput()),
Press.the(Key.Enter).in(newTodoInput()),
Wait.until(itemNames(), contain(name)),
)

This tiny change to your code will enable your Serenity reports to show the actual values of your task and interaction parameters.

Support for dynamic descriptions

Want to learn more? Read on!