Skip to main content

RaiseErrors

An Ability that enables an Actor to create a Serenity/JS RuntimeError from within a custom Interaction.

The stack trace of an error created this way includes the filesystem location pointing to where the interaction was invoked, which makes debugging any failures easier.

Pro tip

The ability to RaiseErrors is given to all Serenity/JS actors by default, so you donโ€™t need to configure it explicitly.

Raising an error

import { Interaction, LogicError, RaiseErrors, the } from '@serenity-js/core'
import isPathInside from 'is-path-inside'
import { unlink } from 'fs/promises'

const RemoveFile = (pathToFile: string) =>
Interaction.where(the`#actor removes a file at ${ pathToFile }`, async actor => {

if (! isPathInside(pathToFile, process.cwd())) {

throw RaiseErrors.as(actor).create(LogicError, {
message: `Removing files outside the current working directory is not allowed`
diff: {
expected: process.cwd(),
actual: pathToFile,
}
})
}

await unlink(pathToFile);
})

Learn more

Hierarchy

Index

Constructors

Methods

Constructors

constructor

Methods

create

  • create<RE>(errorType: new (...args: any[]) => RE, options: ErrorOptions): RE