forked from Klaveness-Digital/cypress-cucumber-preprocessor
-
-
Notifications
You must be signed in to change notification settings - Fork 153
Closed
Description
Current behavior
cypress-cucumber-preprocessor/lib/public-member-types.ts
Lines 3 to 7 in 055d8df
| export interface IParameterTypeDefinition<T, C extends Mocha.Context> { | |
| name: string; | |
| regexp: RegExp; | |
| transformer: (this: C, ...match: string[]) => T; | |
| } |
transformer is required, but should be optional. If a transformer is not provided for a parameter type that returns a single capture group, then it will return the original value as a string.
However, if a parameter type has two capture groups, it needs a transformer that returns all arguments, or else it only returns only the first found argument in a capture group. That, however, does not require a transformer as the code will still execute.
Desired behavior
Make transformer be optional:
export interface IParameterTypeDefinition<T, C extends Mocha.Context> {
name: string;
regexp: RegExp;
transformer?: (this: C, ...match: string[]) => T;
}Test code to reproduce
defineParameterType({
name: "threeChoices",
regexp: /(now|later|maybe)/
});
defineParameterType({
name: "someNumber",
regexp: /(\d+)/
});
Given('call me {threeChoices}', function(choice) {
cy.log(choice, typeof choice) // => string
});
Given('number of {someNumber}', function(x) {
cy.log(x, typeof x) // => string
});Feature: Demo
Scenario Outline: Test
* call me <choice>
* number of 2
* number of 3.14
Examples:
| choice |
| now |
| later |
| maybe |Versions
- Cypress version: 13.1
- Preprocessor version: 18.0.6
- Node version: 18.15.0
Checklist
- I've read the FAQ.
- I've read instructions for logging issues.
- I'm not using
[email protected](package name has changed and it is no longer the most recent version, see #689).
Metadata
Metadata
Assignees
Labels
No labels