@lynxwall/cucumber-tsflow 5.1.3 → 6.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +546 -544
- package/bin/cucumber-tsflow +1 -1
- package/lib/behave.d.ts +1 -1
- package/lib/behave.js +27 -27
- package/lib/cli/argv-parser.d.ts +24 -24
- package/lib/cli/argv-parser.js +103 -103
- package/lib/cli/index.d.ts +22 -22
- package/lib/cli/index.js +101 -96
- package/lib/cli/load-configuration.d.ts +20 -20
- package/lib/cli/load-configuration.js +92 -92
- package/lib/cli/run.d.ts +1 -1
- package/lib/cli/run.js +49 -44
- package/lib/cucumber/binding-decorator.d.ts +10 -10
- package/lib/cucumber/binding-decorator.js +180 -180
- package/lib/cucumber/binding-registry.d.ts +82 -82
- package/lib/cucumber/binding-registry.js +216 -218
- package/lib/cucumber/hook-decorators.d.ts +46 -46
- package/lib/cucumber/hook-decorators.js +102 -102
- package/lib/cucumber/managed-scenario-context.d.ts +21 -21
- package/lib/cucumber/managed-scenario-context.js +96 -95
- package/lib/cucumber/message-collector.d.ts +81 -80
- package/lib/cucumber/message-collector.js +251 -241
- package/lib/cucumber/parallel/coordinator.d.ts +79 -78
- package/lib/cucumber/parallel/coordinator.js +247 -228
- package/lib/cucumber/parallel/run-worker.d.ts +1 -1
- package/lib/cucumber/parallel/run-worker.js +31 -31
- package/lib/cucumber/parallel/worker.d.ts +30 -31
- package/lib/cucumber/parallel/worker.js +104 -104
- package/lib/cucumber/run-cucumber.d.ts +14 -14
- package/lib/cucumber/run-cucumber.js +117 -117
- package/lib/cucumber/runtime.d.ts +25 -25
- package/lib/cucumber/runtime.js +39 -39
- package/lib/cucumber/step-definition-decorators.d.ts +24 -24
- package/lib/cucumber/step-definition-decorators.js +91 -91
- package/lib/cucumber/utils.d.ts +16 -16
- package/lib/cucumber/utils.js +77 -77
- package/lib/esnode.js +19 -19
- package/lib/esvue.d.ts +1 -1
- package/lib/esvue.js +41 -41
- package/lib/formatters/behave-json-formatter.d.ts +49 -49
- package/lib/formatters/behave-json-formatter.js +75 -75
- package/lib/formatters/tsflow-snippet-syntax.d.ts +9 -9
- package/lib/formatters/tsflow-snippet-syntax.js +90 -93
- package/lib/gherkin/configuration.d.ts +30 -30
- package/lib/gherkin/configuration.js +26 -26
- package/lib/gherkin/gherkin-feature.d.ts +28 -28
- package/lib/gherkin/gherkin-feature.js +333 -335
- package/lib/gherkin/gherkin-manager.d.ts +29 -29
- package/lib/gherkin/gherkin-manager.js +114 -113
- package/lib/gherkin/models.d.ts +45 -45
- package/lib/gherkin/models.js +2 -2
- package/lib/index.d.ts +4 -4
- package/lib/index.js +22 -22
- package/lib/snippet.d.ts +1 -1
- package/lib/snippet.js +27 -27
- package/lib/transpilers/esbuild-transpiler.d.ts +4 -4
- package/lib/transpilers/esbuild-transpiler.js +19 -21
- package/lib/transpilers/esbuild.d.ts +12 -12
- package/lib/transpilers/esbuild.js +54 -54
- package/lib/transpilers/vue-sfc/compiler.d.ts +7 -7
- package/lib/transpilers/vue-sfc/compiler.js +21 -21
- package/lib/transpilers/vue-sfc/index.d.ts +23 -23
- package/lib/transpilers/vue-sfc/index.js +47 -45
- package/lib/transpilers/vue-sfc/main.d.ts +8 -8
- package/lib/transpilers/vue-sfc/main.js +248 -248
- package/lib/transpilers/vue-sfc/script.d.ts +5 -5
- package/lib/transpilers/vue-sfc/script.js +41 -41
- package/lib/transpilers/vue-sfc/template.d.ts +8 -8
- package/lib/transpilers/vue-sfc/template.js +101 -101
- package/lib/transpilers/vue-sfc/types.d.ts +55 -55
- package/lib/transpilers/vue-sfc/types.js +2 -2
- package/lib/transpilers/vue-sfc/utils/descriptorCache.d.ts +13 -13
- package/lib/transpilers/vue-sfc/utils/descriptorCache.js +67 -67
- package/lib/transpilers/vue-sfc/utils/error.d.ts +3 -3
- package/lib/transpilers/vue-sfc/utils/error.js +22 -22
- package/lib/transpilers/vue-sfc/utils/query.d.ts +13 -13
- package/lib/transpilers/vue-sfc/utils/query.js +35 -35
- package/lib/tsnode.js +17 -17
- package/lib/tsvue.d.ts +1 -1
- package/lib/tsvue.js +39 -39
- package/lib/types/scenario-context.d.ts +16 -16
- package/lib/types/scenario-context.js +17 -17
- package/lib/types/scenario-info.d.ts +16 -16
- package/lib/types/scenario-info.js +23 -21
- package/lib/types/step-binding-flags.d.ts +53 -53
- package/lib/types/step-binding-flags.js +58 -58
- package/lib/types/step-binding.d.ts +50 -50
- package/lib/types/step-binding.js +17 -17
- package/lib/types/types.d.ts +21 -21
- package/lib/types/types.js +2 -2
- package/lib/utils/helpers.d.ts +6 -6
- package/lib/utils/helpers.js +17 -17
- package/lib/utils/logger.d.ts +3 -3
- package/lib/utils/logger.js +29 -29
- package/lib/utils/our-callsite.d.ts +27 -27
- package/lib/utils/our-callsite.js +73 -71
- package/lib/version.d.ts +1 -1
- package/lib/version.js +5 -5
- package/package.json +58 -58
package/lib/esvue.js
CHANGED
|
@@ -1,41 +1,41 @@
|
|
|
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
|
-
const hooks = require('require-extension-hooks');
|
|
7
|
-
const vue_sfc_1 = __importDefault(require("./transpilers/vue-sfc"));
|
|
8
|
-
require('ts-node').register({
|
|
9
|
-
compilerOptions: {
|
|
10
|
-
module: '
|
|
11
|
-
moduleResolution: 'node',
|
|
12
|
-
target: '
|
|
13
|
-
strict: true,
|
|
14
|
-
experimentalDecorators: true,
|
|
15
|
-
allowSyntheticDefaultImports: true,
|
|
16
|
-
resolveJsonModule: true,
|
|
17
|
-
esModuleInterop: true,
|
|
18
|
-
skipLibCheck: true,
|
|
19
|
-
lib: ['
|
|
20
|
-
},
|
|
21
|
-
transpileOnly: true,
|
|
22
|
-
transpiler: '@lynxwall/cucumber-tsflow/lib/transpilers/esbuild-transpiler'
|
|
23
|
-
});
|
|
24
|
-
require('tsconfig-paths').register();
|
|
25
|
-
// Register jsdom globally and set SVGElement on global
|
|
26
|
-
require('jsdom-global')();
|
|
27
|
-
global.SVGElement = global.window.SVGElement;
|
|
28
|
-
hooks('vue').push(function (params) {
|
|
29
|
-
try {
|
|
30
|
-
const transformer = new vue_sfc_1.default({
|
|
31
|
-
exclude: ['(?:^|/)node_modules/', '(?:^|/)cucumber-tsflow/lib/']
|
|
32
|
-
});
|
|
33
|
-
const transformResult = transformer.transformCode(params.content, params.filename);
|
|
34
|
-
return transformResult.code;
|
|
35
|
-
}
|
|
36
|
-
catch (err) {
|
|
37
|
-
console.log(err);
|
|
38
|
-
}
|
|
39
|
-
return params.content;
|
|
40
|
-
});
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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
|
+
const hooks = require('require-extension-hooks');
|
|
7
|
+
const vue_sfc_1 = __importDefault(require("./transpilers/vue-sfc"));
|
|
8
|
+
require('ts-node').register({
|
|
9
|
+
compilerOptions: {
|
|
10
|
+
module: 'es2022',
|
|
11
|
+
moduleResolution: 'node',
|
|
12
|
+
target: 'es2022',
|
|
13
|
+
strict: true,
|
|
14
|
+
experimentalDecorators: true,
|
|
15
|
+
allowSyntheticDefaultImports: true,
|
|
16
|
+
resolveJsonModule: true,
|
|
17
|
+
esModuleInterop: true,
|
|
18
|
+
skipLibCheck: true,
|
|
19
|
+
lib: ['es2022']
|
|
20
|
+
},
|
|
21
|
+
transpileOnly: true,
|
|
22
|
+
transpiler: '@lynxwall/cucumber-tsflow/lib/transpilers/esbuild-transpiler'
|
|
23
|
+
});
|
|
24
|
+
require('tsconfig-paths').register();
|
|
25
|
+
// Register jsdom globally and set SVGElement on global
|
|
26
|
+
require('jsdom-global')();
|
|
27
|
+
global.SVGElement = global.window.SVGElement;
|
|
28
|
+
hooks('vue').push(function (params) {
|
|
29
|
+
try {
|
|
30
|
+
const transformer = new vue_sfc_1.default({
|
|
31
|
+
exclude: ['(?:^|/)node_modules/', '(?:^|/)cucumber-tsflow/lib/']
|
|
32
|
+
});
|
|
33
|
+
const transformResult = transformer.transformCode(params.content, params.filename);
|
|
34
|
+
return transformResult.code;
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
console.log(err);
|
|
38
|
+
}
|
|
39
|
+
return params.content;
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXN2dWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZXN2dWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUNqRCxvRUFBbUQ7QUFFbkQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUMzQixlQUFlLEVBQUU7UUFDaEIsTUFBTSxFQUFFLFFBQVE7UUFDaEIsZ0JBQWdCLEVBQUUsTUFBTTtRQUN4QixNQUFNLEVBQUUsUUFBUTtRQUNoQixNQUFNLEVBQUUsSUFBSTtRQUNaLHNCQUFzQixFQUFFLElBQUk7UUFDNUIsNEJBQTRCLEVBQUUsSUFBSTtRQUNsQyxpQkFBaUIsRUFBRSxJQUFJO1FBQ3ZCLGVBQWUsRUFBRSxJQUFJO1FBQ3JCLFlBQVksRUFBRSxJQUFJO1FBQ2xCLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQztLQUNmO0lBQ0QsYUFBYSxFQUFFLElBQUk7SUFDbkIsVUFBVSxFQUFFLDhEQUE4RDtDQUMxRSxDQUFDLENBQUM7QUFFSCxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUVyQyx1REFBdUQ7QUFDdkQsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7QUFDekIsTUFBYyxDQUFDLFVBQVUsR0FBSSxNQUFjLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztBQUUvRCxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsTUFBVztJQUN0QyxJQUFJO1FBQ0gsTUFBTSxXQUFXLEdBQUcsSUFBSSxpQkFBYyxDQUFDO1lBQ3RDLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixFQUFFLDZCQUE2QixDQUFDO1NBQ2hFLENBQUMsQ0FBQztRQUNILE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbkYsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDO0tBQzVCO0lBQUMsT0FBTyxHQUFHLEVBQUU7UUFDYixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ2pCO0lBQ0QsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQyxDQUFDIn0=
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
import * as messages from '@cucumber/messages';
|
|
2
|
-
import JsonFormatter from '@cucumber/cucumber/lib/formatter/json_formatter';
|
|
3
|
-
export interface IJsonFeature {
|
|
4
|
-
description: string;
|
|
5
|
-
elements: IJsonScenario[];
|
|
6
|
-
id: string;
|
|
7
|
-
keyword: string;
|
|
8
|
-
line: number;
|
|
9
|
-
name: string;
|
|
10
|
-
tags: IJsonTag[];
|
|
11
|
-
uri: string;
|
|
12
|
-
}
|
|
13
|
-
export interface IJsonScenario {
|
|
14
|
-
description: string;
|
|
15
|
-
id: string;
|
|
16
|
-
keyword: string;
|
|
17
|
-
line: number;
|
|
18
|
-
name: string;
|
|
19
|
-
steps: IJsonStep[];
|
|
20
|
-
tags: IJsonTag[];
|
|
21
|
-
type: string;
|
|
22
|
-
}
|
|
23
|
-
export interface IJsonStep {
|
|
24
|
-
arguments?: any;
|
|
25
|
-
embeddings?: any;
|
|
26
|
-
hidden?: boolean;
|
|
27
|
-
keyword?: string;
|
|
28
|
-
line?: number;
|
|
29
|
-
match?: any;
|
|
30
|
-
name?: string;
|
|
31
|
-
result?: any;
|
|
32
|
-
}
|
|
33
|
-
export interface IJsonTag {
|
|
34
|
-
name: string;
|
|
35
|
-
line: number;
|
|
36
|
-
}
|
|
37
|
-
interface IBuildJsonStepOptions {
|
|
38
|
-
isBeforeHook: boolean;
|
|
39
|
-
gherkinStepMap: Record<string, messages.Step>;
|
|
40
|
-
pickleStepMap: Record<string, messages.PickleStep>;
|
|
41
|
-
testStep: messages.TestStep;
|
|
42
|
-
testStepAttachments: messages.Attachment[];
|
|
43
|
-
testStepResult: messages.TestStepResult;
|
|
44
|
-
}
|
|
45
|
-
export default class BehaveJsonFormatter extends JsonFormatter {
|
|
46
|
-
static readonly documentation: string;
|
|
47
|
-
getStepData({ isBeforeHook, gherkinStepMap, pickleStepMap, testStep, testStepAttachments, testStepResult }: IBuildJsonStepOptions): IJsonStep;
|
|
48
|
-
}
|
|
49
|
-
export {};
|
|
1
|
+
import * as messages from '@cucumber/messages';
|
|
2
|
+
import JsonFormatter from '@cucumber/cucumber/lib/formatter/json_formatter';
|
|
3
|
+
export interface IJsonFeature {
|
|
4
|
+
description: string;
|
|
5
|
+
elements: IJsonScenario[];
|
|
6
|
+
id: string;
|
|
7
|
+
keyword: string;
|
|
8
|
+
line: number;
|
|
9
|
+
name: string;
|
|
10
|
+
tags: IJsonTag[];
|
|
11
|
+
uri: string;
|
|
12
|
+
}
|
|
13
|
+
export interface IJsonScenario {
|
|
14
|
+
description: string;
|
|
15
|
+
id: string;
|
|
16
|
+
keyword: string;
|
|
17
|
+
line: number;
|
|
18
|
+
name: string;
|
|
19
|
+
steps: IJsonStep[];
|
|
20
|
+
tags: IJsonTag[];
|
|
21
|
+
type: string;
|
|
22
|
+
}
|
|
23
|
+
export interface IJsonStep {
|
|
24
|
+
arguments?: any;
|
|
25
|
+
embeddings?: any;
|
|
26
|
+
hidden?: boolean;
|
|
27
|
+
keyword?: string;
|
|
28
|
+
line?: number;
|
|
29
|
+
match?: any;
|
|
30
|
+
name?: string;
|
|
31
|
+
result?: any;
|
|
32
|
+
}
|
|
33
|
+
export interface IJsonTag {
|
|
34
|
+
name: string;
|
|
35
|
+
line: number;
|
|
36
|
+
}
|
|
37
|
+
interface IBuildJsonStepOptions {
|
|
38
|
+
isBeforeHook: boolean;
|
|
39
|
+
gherkinStepMap: Record<string, messages.Step>;
|
|
40
|
+
pickleStepMap: Record<string, messages.PickleStep>;
|
|
41
|
+
testStep: messages.TestStep;
|
|
42
|
+
testStepAttachments: messages.Attachment[];
|
|
43
|
+
testStepResult: messages.TestStepResult;
|
|
44
|
+
}
|
|
45
|
+
export default class BehaveJsonFormatter extends JsonFormatter {
|
|
46
|
+
static readonly documentation: string;
|
|
47
|
+
getStepData({ isBeforeHook, gherkinStepMap, pickleStepMap, testStep, testStepAttachments, testStepResult }: IBuildJsonStepOptions): IJsonStep;
|
|
48
|
+
}
|
|
49
|
+
export {};
|
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
const index_1 = require("@cucumber/cucumber/lib/formatter/helpers/index");
|
|
30
|
-
const messages = __importStar(require("@cucumber/messages"));
|
|
31
|
-
const value_checker_1 = require("@cucumber/cucumber/lib/value_checker");
|
|
32
|
-
const json_formatter_1 = __importDefault(require("@cucumber/cucumber/lib/formatter/json_formatter"));
|
|
33
|
-
const { getStepKeyword } = index_1.PickleParser;
|
|
34
|
-
class BehaveJsonFormatter extends json_formatter_1.default {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
data.
|
|
41
|
-
data.
|
|
42
|
-
data.
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
data.
|
|
47
|
-
data.
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
const index_1 = require("@cucumber/cucumber/lib/formatter/helpers/index");
|
|
30
|
+
const messages = __importStar(require("@cucumber/messages"));
|
|
31
|
+
const value_checker_1 = require("@cucumber/cucumber/lib/value_checker");
|
|
32
|
+
const json_formatter_1 = __importDefault(require("@cucumber/cucumber/lib/formatter/json_formatter"));
|
|
33
|
+
const { getStepKeyword } = index_1.PickleParser;
|
|
34
|
+
class BehaveJsonFormatter extends json_formatter_1.default {
|
|
35
|
+
static documentation = 'Prints the feature as JSON that can be used with Behave Pro';
|
|
36
|
+
getStepData({ isBeforeHook, gherkinStepMap, pickleStepMap, testStep, testStepAttachments, testStepResult }) {
|
|
37
|
+
const data = {};
|
|
38
|
+
if ((0, value_checker_1.doesHaveValue)(testStep.pickleStepId)) {
|
|
39
|
+
const pickleStep = pickleStepMap[testStep.pickleStepId];
|
|
40
|
+
data.arguments = this.formatStepArgument(pickleStep.argument, gherkinStepMap[pickleStep.astNodeIds[0]]);
|
|
41
|
+
data.keyword = getStepKeyword({ pickleStep, gherkinStepMap });
|
|
42
|
+
data.line = gherkinStepMap[pickleStep.astNodeIds[0]].location.line;
|
|
43
|
+
data.name = pickleStep.text;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
data.keyword = isBeforeHook ? 'Before' : 'After';
|
|
47
|
+
data.hidden = true;
|
|
48
|
+
data.name = '';
|
|
49
|
+
}
|
|
50
|
+
if ((0, value_checker_1.doesHaveValue)(testStep.stepDefinitionIds) && testStep.stepDefinitionIds?.length === 1) {
|
|
51
|
+
const stepDefinitionId = testStep.stepDefinitionIds[0];
|
|
52
|
+
const stepDefinition = this.supportCodeLibrary.stepDefinitions.find(s => s.id === stepDefinitionId);
|
|
53
|
+
data.match = { location: (0, index_1.formatLocation)(stepDefinition) };
|
|
54
|
+
}
|
|
55
|
+
const { message, status } = testStepResult;
|
|
56
|
+
data.result = {
|
|
57
|
+
status: messages.TestStepResultStatus[status].toLowerCase()
|
|
58
|
+
};
|
|
59
|
+
if ((0, value_checker_1.doesHaveValue)(testStepResult.duration)) {
|
|
60
|
+
data.result.duration = messages.TimeConversion.durationToMilliseconds(testStepResult.duration) * 1000000;
|
|
61
|
+
}
|
|
62
|
+
if (status === messages.TestStepResultStatus.FAILED && (0, value_checker_1.doesHaveValue)(message)) {
|
|
63
|
+
data.result.error_message = message;
|
|
64
|
+
}
|
|
65
|
+
if (testStepAttachments?.length > 0) {
|
|
66
|
+
data.embeddings = testStepAttachments.map(attachment => ({
|
|
67
|
+
data: attachment.body,
|
|
68
|
+
mime_type: attachment.mediaType
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
return data;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.default = BehaveJsonFormatter;
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoYXZlLWpzb24tZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Zvcm1hdHRlcnMvYmVoYXZlLWpzb24tZm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwRUFBOEY7QUFDOUYsNkRBQStDO0FBQy9DLHdFQUFxRTtBQUNyRSxxR0FBNEU7QUFFNUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxHQUFHLG9CQUFZLENBQUM7QUErQ3hDLE1BQXFCLG1CQUFvQixTQUFRLHdCQUFhO0lBQ3RELE1BQU0sQ0FBVSxhQUFhLEdBQVcsNkRBQTZELENBQUM7SUFFN0csV0FBVyxDQUFDLEVBQ1gsWUFBWSxFQUNaLGNBQWMsRUFDZCxhQUFhLEVBQ2IsUUFBUSxFQUNSLG1CQUFtQixFQUNuQixjQUFjLEVBQ1M7UUFDdkIsTUFBTSxJQUFJLEdBQWMsRUFBRSxDQUFDO1FBQzNCLElBQUksSUFBQSw2QkFBYSxFQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUN6QyxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLFlBQXNCLENBQUMsQ0FBQztZQUNsRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FDdkMsVUFBVSxDQUFDLFFBQXVDLEVBQ2xELGNBQWMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3hDLENBQUM7WUFDRixJQUFJLENBQUMsT0FBTyxHQUFHLGNBQWMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO1lBQzlELElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ25FLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztTQUM1QjthQUFNO1lBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQ2pELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1NBQ2Y7UUFDRCxJQUFJLElBQUEsNkJBQWEsRUFBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsSUFBSSxRQUFRLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMxRixNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2RCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssZ0JBQWdCLENBQUMsQ0FBQztZQUNwRyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUEsc0JBQWMsRUFBQyxjQUE2QixDQUFDLEVBQUUsQ0FBQztTQUN6RTtRQUNELE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsY0FBYyxDQUFDO1FBQzNDLElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDYixNQUFNLEVBQUUsUUFBUSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRTtTQUMzRCxDQUFDO1FBQ0YsSUFBSSxJQUFBLDZCQUFhLEVBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzNDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHLE9BQU8sQ0FBQztTQUN6RztRQUNELElBQUksTUFBTSxLQUFLLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLElBQUksSUFBQSw2QkFBYSxFQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzlFLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztTQUNwQztRQUNELElBQUksbUJBQW1CLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3hELElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtnQkFDckIsU0FBUyxFQUFFLFVBQVUsQ0FBQyxTQUFTO2FBQy9CLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7O0FBaERGLHNDQWlEQyJ9
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { ISnippetSnytax, SnippetInterface } from '@cucumber/cucumber/lib/formatter/step_definition_snippet_builder/snippet_syntax';
|
|
2
|
-
/**
|
|
3
|
-
* Generate snippets for tsflow.
|
|
4
|
-
* NOTE: Needs to be an exported function for cucumber to
|
|
5
|
-
* load this correctly from common.js configuration
|
|
6
|
-
* @param snippetInterface
|
|
7
|
-
* @returns
|
|
8
|
-
*/
|
|
9
|
-
export declare function TsflowSnippetSyntax(snippetInterface: SnippetInterface): ISnippetSnytax;
|
|
1
|
+
import { ISnippetSnytax, SnippetInterface } from '@cucumber/cucumber/lib/formatter/step_definition_snippet_builder/snippet_syntax';
|
|
2
|
+
/**
|
|
3
|
+
* Generate snippets for tsflow.
|
|
4
|
+
* NOTE: Needs to be an exported function for cucumber to
|
|
5
|
+
* load this correctly from common.js configuration
|
|
6
|
+
* @param snippetInterface
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
9
|
+
export declare function TsflowSnippetSyntax(snippetInterface: SnippetInterface): ISnippetSnytax;
|
|
@@ -1,93 +1,90 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TsflowSnippetSyntax = void 0;
|
|
4
|
-
const snippet_syntax_1 = require("@cucumber/cucumber/lib/formatter/step_definition_snippet_builder/snippet_syntax");
|
|
5
|
-
const CALLBACK_NAME = 'callback';
|
|
6
|
-
const toCamelCase = (str) => {
|
|
7
|
-
return str
|
|
8
|
-
.replace(/\s(.)/g, function ($1) {
|
|
9
|
-
return $1.toUpperCase();
|
|
10
|
-
})
|
|
11
|
-
.replace(/\s/g, '')
|
|
12
|
-
.replace(/[^\w]/g, '')
|
|
13
|
-
.replace(/^(.)/, function ($1) {
|
|
14
|
-
return $1.toLowerCase();
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* format cucumber expression parameters for typescript
|
|
19
|
-
* @param parameters
|
|
20
|
-
* @returns
|
|
21
|
-
*/
|
|
22
|
-
const formatParameters = (parameters) => {
|
|
23
|
-
const params = parameters.map(param => {
|
|
24
|
-
return `${param}: ${matchType(param)}`;
|
|
25
|
-
});
|
|
26
|
-
return params.join(', ');
|
|
27
|
-
};
|
|
28
|
-
/**
|
|
29
|
-
* match the parameter name passed in with a typescript
|
|
30
|
-
* primitive type (string, number or boolean)
|
|
31
|
-
* @param paramName
|
|
32
|
-
* @returns
|
|
33
|
-
*/
|
|
34
|
-
const matchType = (paramName) => {
|
|
35
|
-
const numberTypes = ['int', 'float', 'bigdecimal', 'double', 'biginteger', 'byte', 'short', 'long'];
|
|
36
|
-
const stringTypes = ['string', 'word'];
|
|
37
|
-
if (stringTypes.find(x => paramName.indexOf(x) >= 0)) {
|
|
38
|
-
return 'string';
|
|
39
|
-
}
|
|
40
|
-
if (numberTypes.find(x => paramName.indexOf(x) >= 0)) {
|
|
41
|
-
return 'number';
|
|
42
|
-
}
|
|
43
|
-
if (paramName.indexOf('boolean') >= 0) {
|
|
44
|
-
return 'boolean';
|
|
45
|
-
}
|
|
46
|
-
return 'any';
|
|
47
|
-
};
|
|
48
|
-
/**
|
|
49
|
-
* Generate snippets for tsflow.
|
|
50
|
-
* NOTE: Needs to be an exported function for cucumber to
|
|
51
|
-
* load this correctly from common.js configuration
|
|
52
|
-
* @param snippetInterface
|
|
53
|
-
* @returns
|
|
54
|
-
*/
|
|
55
|
-
function TsflowSnippetSyntax(snippetInterface) {
|
|
56
|
-
return {
|
|
57
|
-
build({ comment, generatedExpressions, functionName, stepParameterNames }) {
|
|
58
|
-
let functionKeyword = '';
|
|
59
|
-
if (snippetInterface === snippet_syntax_1.SnippetInterface.AsyncAwait) {
|
|
60
|
-
functionKeyword = 'async ';
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if (snippetInterface === snippet_syntax_1.SnippetInterface.
|
|
67
|
-
implementation =
|
|
68
|
-
}
|
|
69
|
-
else
|
|
70
|
-
implementation = "return
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
// This is needed so that cucumber.js can load the function
|
|
92
|
-
module.exports = TsflowSnippetSyntax;
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNmbG93LXNuaXBwZXQtc3ludGF4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Zvcm1hdHRlcnMvdHNmbG93LXNuaXBwZXQtc3ludGF4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9IQUl5RjtBQUV6RixNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUM7QUFFakMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRTtJQUNuQyxPQUFPLEdBQUc7U0FDUixPQUFPLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRTtRQUM5QixPQUFPLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6QixDQUFDLENBQUM7U0FDRCxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztTQUNsQixPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztTQUNyQixPQUFPLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRTtRQUM1QixPQUFPLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6QixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLGdCQUFnQixHQUFHLENBQUMsVUFBb0IsRUFBVSxFQUFFO0lBQ3pELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDckMsT0FBTyxHQUFHLEtBQUssS0FBSyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUN4QyxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMxQixDQUFDLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILE1BQU0sU0FBUyxHQUFHLENBQUMsU0FBaUIsRUFBVSxFQUFFO0lBQy9DLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFN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
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TsflowSnippetSyntax = void 0;
|
|
4
|
+
const snippet_syntax_1 = require("@cucumber/cucumber/lib/formatter/step_definition_snippet_builder/snippet_syntax");
|
|
5
|
+
const CALLBACK_NAME = 'callback';
|
|
6
|
+
const toCamelCase = (str) => {
|
|
7
|
+
return str
|
|
8
|
+
.replace(/\s(.)/g, function ($1) {
|
|
9
|
+
return $1.toUpperCase();
|
|
10
|
+
})
|
|
11
|
+
.replace(/\s/g, '')
|
|
12
|
+
.replace(/[^\w]/g, '')
|
|
13
|
+
.replace(/^(.)/, function ($1) {
|
|
14
|
+
return $1.toLowerCase();
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* format cucumber expression parameters for typescript
|
|
19
|
+
* @param parameters
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
22
|
+
const formatParameters = (parameters) => {
|
|
23
|
+
const params = parameters.map(param => {
|
|
24
|
+
return `${param}: ${matchType(param)}`;
|
|
25
|
+
});
|
|
26
|
+
return params.join(', ');
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* match the parameter name passed in with a typescript
|
|
30
|
+
* primitive type (string, number or boolean)
|
|
31
|
+
* @param paramName
|
|
32
|
+
* @returns
|
|
33
|
+
*/
|
|
34
|
+
const matchType = (paramName) => {
|
|
35
|
+
const numberTypes = ['int', 'float', 'bigdecimal', 'double', 'biginteger', 'byte', 'short', 'long'];
|
|
36
|
+
const stringTypes = ['string', 'word'];
|
|
37
|
+
if (stringTypes.find(x => paramName.indexOf(x) >= 0)) {
|
|
38
|
+
return 'string';
|
|
39
|
+
}
|
|
40
|
+
if (numberTypes.find(x => paramName.indexOf(x) >= 0)) {
|
|
41
|
+
return 'number';
|
|
42
|
+
}
|
|
43
|
+
if (paramName.indexOf('boolean') >= 0) {
|
|
44
|
+
return 'boolean';
|
|
45
|
+
}
|
|
46
|
+
return 'any';
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Generate snippets for tsflow.
|
|
50
|
+
* NOTE: Needs to be an exported function for cucumber to
|
|
51
|
+
* load this correctly from common.js configuration
|
|
52
|
+
* @param snippetInterface
|
|
53
|
+
* @returns
|
|
54
|
+
*/
|
|
55
|
+
function TsflowSnippetSyntax(snippetInterface) {
|
|
56
|
+
return {
|
|
57
|
+
build({ comment, generatedExpressions, functionName, stepParameterNames }) {
|
|
58
|
+
let functionKeyword = '';
|
|
59
|
+
if (snippetInterface === snippet_syntax_1.SnippetInterface.AsyncAwait) {
|
|
60
|
+
functionKeyword = 'async ';
|
|
61
|
+
}
|
|
62
|
+
let implementation;
|
|
63
|
+
if (snippetInterface === snippet_syntax_1.SnippetInterface.Callback) {
|
|
64
|
+
implementation = `${CALLBACK_NAME}(null, 'pending');`;
|
|
65
|
+
}
|
|
66
|
+
else if (snippetInterface === snippet_syntax_1.SnippetInterface.Promise) {
|
|
67
|
+
implementation = "return Promise.resolve('pending');";
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
implementation = "return 'pending';";
|
|
71
|
+
}
|
|
72
|
+
// we only care about the first expression. TypeScript has a
|
|
73
|
+
// small number of primitive types
|
|
74
|
+
const generatedExpression = generatedExpressions[0];
|
|
75
|
+
const allParameterNames = generatedExpression.parameterNames.concat(stepParameterNames);
|
|
76
|
+
if (snippetInterface === snippet_syntax_1.SnippetInterface.Callback) {
|
|
77
|
+
allParameterNames.push(CALLBACK_NAME);
|
|
78
|
+
}
|
|
79
|
+
const pattern = generatedExpression.source.replace(/'/g, "\\'");
|
|
80
|
+
const methodName = toCamelCase(pattern);
|
|
81
|
+
const parametersStr = allParameterNames.length > 0 ? formatParameters(allParameterNames) : '';
|
|
82
|
+
const definitionChoices = `@${functionName.toLowerCase()}('${pattern}')\n` + `${functionKeyword}${methodName}(${parametersStr}): any {\n`;
|
|
83
|
+
return `${definitionChoices} //${comment}\n ${implementation}\n}`;
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
exports.TsflowSnippetSyntax = TsflowSnippetSyntax;
|
|
88
|
+
// This is needed so that cucumber.js can load the function
|
|
89
|
+
module.exports = TsflowSnippetSyntax;
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNmbG93LXNuaXBwZXQtc3ludGF4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Zvcm1hdHRlcnMvdHNmbG93LXNuaXBwZXQtc3ludGF4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9IQUl5RjtBQUV6RixNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUM7QUFFakMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRTtJQUNuQyxPQUFPLEdBQUc7U0FDUixPQUFPLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRTtRQUM5QixPQUFPLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6QixDQUFDLENBQUM7U0FDRCxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztTQUNsQixPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztTQUNyQixPQUFPLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRTtRQUM1QixPQUFPLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6QixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLGdCQUFnQixHQUFHLENBQUMsVUFBb0IsRUFBVSxFQUFFO0lBQ3pELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDckMsT0FBTyxHQUFHLEtBQUssS0FBSyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUN4QyxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMxQixDQUFDLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILE1BQU0sU0FBUyxHQUFHLENBQUMsU0FBaUIsRUFBVSxFQUFFO0lBQy9DLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3BHLE1BQU0sV0FBVyxHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRXZDLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7UUFDckQsT0FBTyxRQUFRLENBQUM7S0FDaEI7SUFDRCxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO1FBQ3JELE9BQU8sUUFBUSxDQUFDO0tBQ2hCO0lBQ0QsSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN0QyxPQUFPLFNBQVMsQ0FBQztLQUNqQjtJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUMsZ0JBQWtDO0lBQ3JFLE9BQU87UUFDTixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUE4QjtZQUNwRyxJQUFJLGVBQWUsR0FBRyxFQUFFLENBQUM7WUFDekIsSUFBSSxnQkFBZ0IsS0FBSyxpQ0FBZ0IsQ0FBQyxVQUFVLEVBQUU7Z0JBQ3JELGVBQWUsR0FBRyxRQUFRLENBQUM7YUFDM0I7WUFDRCxJQUFJLGNBQXNCLENBQUM7WUFDM0IsSUFBSSxnQkFBZ0IsS0FBSyxpQ0FBZ0IsQ0FBQyxRQUFRLEVBQUU7Z0JBQ25ELGNBQWMsR0FBRyxHQUFHLGFBQWEsb0JBQW9CLENBQUM7YUFDdEQ7aUJBQU0sSUFBSSxnQkFBZ0IsS0FBSyxpQ0FBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3pELGNBQWMsR0FBRyxvQ0FBb0MsQ0FBQzthQUN0RDtpQkFBTTtnQkFDTixjQUFjLEdBQUcsbUJBQW1CLENBQUM7YUFDckM7WUFDRCw0REFBNEQ7WUFDNUQsa0NBQWtDO1lBQ2xDLE1BQU0sbUJBQW1CLEdBQUcsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEQsTUFBTSxpQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDeEYsSUFBSSxnQkFBZ0IsS0FBSyxpQ0FBZ0IsQ0FBQyxRQUFRLEVBQUU7Z0JBQ25ELGlCQUFpQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUN0QztZQUNELE1BQU0sT0FBTyxHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2hFLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN4QyxNQUFNLGFBQWEsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDOUYsTUFBTSxpQkFBaUIsR0FDdEIsSUFBSSxZQUFZLENBQUMsV0FBVyxFQUFFLEtBQUssT0FBTyxNQUFNLEdBQUcsR0FBRyxlQUFlLEdBQUcsVUFBVSxJQUFJLGFBQWEsWUFBWSxDQUFDO1lBRWpILE9BQU8sR0FBRyxpQkFBaUIsT0FBTyxPQUFPLE9BQU8sY0FBYyxLQUFLLENBQUM7UUFDckUsQ0FBQztLQUNELENBQUM7QUFDSCxDQUFDO0FBL0JELGtEQStCQztBQUNELDJEQUEyRDtBQUMzRCxNQUFNLENBQUMsT0FBTyxHQUFHLG1CQUFtQixDQUFDIn0=
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
export
|
|
2
|
-
scenariosMustMatchFeatureFile: boolean;
|
|
3
|
-
stepsMustMatchFeatureFile: boolean;
|
|
4
|
-
allowScenariosNotInFeatureFile: boolean;
|
|
5
|
-
};
|
|
6
|
-
export
|
|
7
|
-
loadRelativePath?: boolean;
|
|
8
|
-
tagFilter?: string;
|
|
9
|
-
errors?: ErrorOptions | boolean;
|
|
10
|
-
scenarioNameTemplate?: (vars: ScenarioNameTemplateVars) => string;
|
|
11
|
-
};
|
|
12
|
-
export
|
|
13
|
-
featureTitle: string;
|
|
14
|
-
scenarioTitle: string;
|
|
15
|
-
scenarioTags: string[];
|
|
16
|
-
featureTags: string[];
|
|
17
|
-
};
|
|
18
|
-
export declare const defaultErrorSettings: {
|
|
19
|
-
scenariosMustMatchFeatureFile: boolean;
|
|
20
|
-
stepsMustMatchFeatureFile: boolean;
|
|
21
|
-
allowScenariosNotInFeatureFile: boolean;
|
|
22
|
-
};
|
|
23
|
-
export declare const defaultConfiguration: Options;
|
|
24
|
-
export declare const getJestCucumberConfiguration: (options?: Options
|
|
25
|
-
loadRelativePath?: boolean | undefined;
|
|
26
|
-
tagFilter?: string | undefined;
|
|
27
|
-
errors?: boolean | ErrorOptions | undefined;
|
|
28
|
-
scenarioNameTemplate?: ((vars: ScenarioNameTemplateVars) => string) | undefined;
|
|
29
|
-
};
|
|
30
|
-
export declare const setJestCucumberConfiguration: (options: Options) => void;
|
|
1
|
+
export type ErrorOptions = {
|
|
2
|
+
scenariosMustMatchFeatureFile: boolean;
|
|
3
|
+
stepsMustMatchFeatureFile: boolean;
|
|
4
|
+
allowScenariosNotInFeatureFile: boolean;
|
|
5
|
+
};
|
|
6
|
+
export type Options = {
|
|
7
|
+
loadRelativePath?: boolean;
|
|
8
|
+
tagFilter?: string;
|
|
9
|
+
errors?: ErrorOptions | boolean;
|
|
10
|
+
scenarioNameTemplate?: (vars: ScenarioNameTemplateVars) => string;
|
|
11
|
+
};
|
|
12
|
+
export type ScenarioNameTemplateVars = {
|
|
13
|
+
featureTitle: string;
|
|
14
|
+
scenarioTitle: string;
|
|
15
|
+
scenarioTags: string[];
|
|
16
|
+
featureTags: string[];
|
|
17
|
+
};
|
|
18
|
+
export declare const defaultErrorSettings: {
|
|
19
|
+
scenariosMustMatchFeatureFile: boolean;
|
|
20
|
+
stepsMustMatchFeatureFile: boolean;
|
|
21
|
+
allowScenariosNotInFeatureFile: boolean;
|
|
22
|
+
};
|
|
23
|
+
export declare const defaultConfiguration: Options;
|
|
24
|
+
export declare const getJestCucumberConfiguration: (options?: Options) => {
|
|
25
|
+
loadRelativePath?: boolean | undefined;
|
|
26
|
+
tagFilter?: string | undefined;
|
|
27
|
+
errors?: boolean | ErrorOptions | undefined;
|
|
28
|
+
scenarioNameTemplate?: ((vars: ScenarioNameTemplateVars) => string) | undefined;
|
|
29
|
+
};
|
|
30
|
+
export declare const setJestCucumberConfiguration: (options: Options) => void;
|