UNPKG

playwright-bdd

Version:
24 lines (21 loc) 739 B
/** * Based on: https://github.com/cucumber/cucumber-js/blob/main/src/step_arguments.ts */ import util from 'node:util'; import * as messages from '@cucumber/messages'; import { doesHaveValue } from './valueChecker'; interface IPickleStepArgumentFunctionMap<T> { dataTable: (arg: messages.PickleTable) => T; docString: (arg: messages.PickleDocString) => T; } export function parseStepArgument<T>( arg: messages.PickleStepArgument, mapping: IPickleStepArgumentFunctionMap<T>, ): T { if (doesHaveValue(arg.dataTable)) { return mapping.dataTable(arg.dataTable); } else if (doesHaveValue(arg.docString)) { return mapping.docString(arg.docString); } throw new Error(`Unknown step argument: ${util.inspect(arg)}`); }