cucumber-expressions
Version:
Cucumber Expressions - a simpler alternative to Regular Expressions
69 lines (66 loc) • 1.69 kB
text/typescript
import assert from 'assert'
import ParameterType from '../src/ParameterType'
import CombinatorialGeneratedExpressionFactory from '../src/CombinatorialGeneratedExpressionFactory'
describe('CucumberExpressionGenerator', () => {
it('generates multiple expressions', () => {
const parameterTypeCombinations = [
[
new ParameterType(
'color',
/red|blue|yellow/,
null,
s => s,
false,
true
),
new ParameterType(
'csscolor',
/red|blue|yellow/,
null,
s => s,
false,
true
),
],
[
new ParameterType(
'date',
/\d{4}-\d{2}-\d{2}/,
null,
s => s,
false,
true
),
new ParameterType(
'datetime',
/\d{4}-\d{2}-\d{2}/,
null,
s => s,
false,
true
),
new ParameterType(
'timestamp',
/\d{4}-\d{2}-\d{2}/,
null,
s => s,
false,
true
),
],
]
const factory = new CombinatorialGeneratedExpressionFactory(
'I bought a {%s} ball on {%s}',
parameterTypeCombinations
)
const expressions = factory.generateExpressions().map(ge => ge.source)
assert.deepStrictEqual(expressions, [
'I bought a {color} ball on {date}',
'I bought a {color} ball on {datetime}',
'I bought a {color} ball on {timestamp}',
'I bought a {csscolor} ball on {date}',
'I bought a {csscolor} ball on {datetime}',
'I bought a {csscolor} ball on {timestamp}',
])
})
})