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}', ]) }) })