1 | "use strict";
|
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
|
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
|
4 | };
|
5 | Object.defineProperty(exports, "__esModule", { value: true });
|
6 | var assert_1 = __importDefault(require("assert"));
|
7 | var CucumberExpression_1 = __importDefault(require("../src/CucumberExpression"));
|
8 | var ParameterTypeRegistry_1 = __importDefault(require("../src/ParameterTypeRegistry"));
|
9 | describe('CucumberExpression', function () {
|
10 | describe('RegExp translation', function () {
|
11 | it('translates no arguments', function () {
|
12 | assertRegexp('I have 10 cukes in my belly now', /^I have 10 cukes in my belly now$/);
|
13 | });
|
14 | it('translates alternation', function () {
|
15 | assertRegexp('I had/have a great/nice/charming friend', /^I (?:had|have) a (?:great|nice|charming) friend$/);
|
16 | });
|
17 | it('translates alternation with non-alpha', function () {
|
18 | assertRegexp('I said Alpha1/Beta1', /^I said (?:Alpha1|Beta1)$/);
|
19 | });
|
20 | it('translates parameters', function () {
|
21 | assertRegexp("I have {float} cukes at {int} o'clock", /^I have ((?=.*\d.*)[-+]?\d*(?:\.(?=\d.*))?\d*(?:\d+[E][+\-]?\d+)?) cukes at ((?:-?\d+)|(?:\d+)) o'clock$/);
|
22 | });
|
23 | it('translates parenthesis to non-capturing optional capture group', function () {
|
24 | assertRegexp('I have many big(ish) cukes', /^I have many big(?:ish)? cukes$/);
|
25 | });
|
26 | it('translates parenthesis with alpha unicode', function () {
|
27 | assertRegexp('Привет, Мир(ы)!', /^Привет, Мир(?:ы)?!$/);
|
28 | });
|
29 | });
|
30 | });
|
31 | var assertRegexp = function (expression, expectedRegexp) {
|
32 | var cucumberExpression = new CucumberExpression_1.default(expression, new ParameterTypeRegistry_1.default());
|
33 | assert_1.default.deepStrictEqual(cucumberExpression.regexp, expectedRegexp);
|
34 | };
|
35 |
|
\ | No newline at end of file |