vitest-cucumber-plugin 0.6.0 → 0.6.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/RELEASE_NOTES.md +2 -0
- package/dist/config.d.ts +11 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -0
- package/dist/generate/example.d.ts +5 -0
- package/dist/generate/example.d.ts.map +1 -0
- package/{src → dist}/generate/example.js +7 -10
- package/dist/generate/example.js.map +1 -0
- package/dist/generate/examples.d.ts +5 -0
- package/dist/generate/examples.d.ts.map +1 -0
- package/dist/generate/examples.js +46 -0
- package/dist/generate/examples.js.map +1 -0
- package/dist/generate/feature.d.ts +10 -0
- package/dist/generate/feature.d.ts.map +1 -0
- package/dist/generate/feature.js +77 -0
- package/dist/generate/feature.js.map +1 -0
- package/dist/generate/index.d.ts +3 -0
- package/dist/generate/index.d.ts.map +1 -0
- package/dist/generate/index.js +3 -0
- package/dist/generate/index.js.map +1 -0
- package/dist/generate/rule.d.ts +5 -0
- package/dist/generate/rule.d.ts.map +1 -0
- package/{src → dist}/generate/rule.js +9 -12
- package/dist/generate/rule.js.map +1 -0
- package/dist/generate/scenario-outline.d.ts +5 -0
- package/dist/generate/scenario-outline.d.ts.map +1 -0
- package/dist/generate/scenario-outline.js +18 -0
- package/dist/generate/scenario-outline.js.map +1 -0
- package/dist/generate/tests.d.ts +4 -0
- package/dist/generate/tests.d.ts.map +1 -0
- package/{src → dist}/generate/tests.js +9 -9
- package/dist/generate/tests.js.map +1 -0
- package/dist/generate/util.d.ts +6 -0
- package/dist/generate/util.d.ts.map +1 -0
- package/{src → dist}/generate/util.js +5 -5
- package/dist/generate/util.js.map +1 -0
- package/dist/gherkin-lexer-shared.d.ts +6 -0
- package/dist/gherkin-lexer-shared.d.ts.map +1 -0
- package/dist/gherkin-lexer-shared.js +4 -0
- package/dist/gherkin-lexer-shared.js.map +1 -0
- package/dist/gherkin-lexer.d.ts +4 -0
- package/dist/gherkin-lexer.d.ts.map +1 -0
- package/dist/gherkin-lexer.js +68 -0
- package/dist/gherkin-lexer.js.map +1 -0
- package/{src → dist}/gherkin.js +1 -1
- package/{src → dist}/gherkin.umd.js +1 -1
- package/dist/hooks.d.ts +25 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +94 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +5 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +8 -0
- package/dist/logger.js.map +1 -0
- package/dist/parameterize.d.ts +3 -0
- package/dist/parameterize.d.ts.map +1 -0
- package/dist/parameterize.js +8 -0
- package/dist/parameterize.js.map +1 -0
- package/dist/parse.d.ts +3 -0
- package/dist/parse.d.ts.map +1 -0
- package/{src → dist}/parse.js +5 -9
- package/dist/parse.js.map +1 -0
- package/dist/state.d.ts +4 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +2 -0
- package/dist/state.js.map +1 -0
- package/dist/statement.d.ts +71 -0
- package/dist/statement.d.ts.map +1 -0
- package/dist/statement.js +10 -0
- package/dist/statement.js.map +1 -0
- package/dist/steps.d.ts +20 -0
- package/dist/steps.d.ts.map +1 -0
- package/{src → dist}/steps.js +16 -23
- package/dist/steps.js.map +1 -0
- package/dist/tags.d.ts +5 -0
- package/dist/tags.d.ts.map +1 -0
- package/{src → dist}/tags.js +15 -28
- package/dist/tags.js.map +1 -0
- package/dist/vitest-cucumber-plugin.d.ts +13 -0
- package/dist/vitest-cucumber-plugin.d.ts.map +1 -0
- package/dist/vitest-cucumber-plugin.js +69 -0
- package/dist/vitest-cucumber-plugin.js.map +1 -0
- package/package.json +64 -34
- package/generate-parsers +0 -6
- package/rollup-gherkin.js +0 -12
- package/rollup-tags-expression.js +0 -11
- package/run-tests +0 -9
- package/src/generate/examples.js +0 -48
- package/src/generate/feature.js +0 -72
- package/src/generate/index.js +0 -15
- package/src/generate/scenario-outline.js +0 -21
- package/src/gherkin-lexer-shared.cjs +0 -4
- package/src/gherkin-lexer.js +0 -63
- package/src/gherkin.ne +0 -211
- package/src/hooks.js +0 -77
- package/src/index.js +0 -95
- package/src/logger.js +0 -14
- package/src/parameterize.js +0 -7
- package/src/tags-expression.ne +0 -43
- package/tests/background/features/background.feature +0 -25
- package/tests/background/features/step_definitions/steps.js +0 -30
- package/tests/background/features/support/hooks.js +0 -3
- package/tests/background/package-lock.json +0 -1204
- package/tests/background/package.json +0 -11
- package/tests/background/vite.config.js +0 -13
- package/tests/comments/features/is-it-friday.feature +0 -10
- package/tests/comments/features/step_definitions/stepdefs.js +0 -15
- package/tests/comments/package-lock.json +0 -1933
- package/tests/comments/package.json +0 -11
- package/tests/comments/vite.config.js +0 -9
- package/tests/data-tables/features/data-tables-escaping.feature +0 -27
- package/tests/data-tables/features/data-tables.feature +0 -44
- package/tests/data-tables/features/step_definitions/data-tables.js +0 -21
- package/tests/data-tables/package-lock.json +0 -1933
- package/tests/data-tables/package.json +0 -11
- package/tests/data-tables/vite.config.js +0 -13
- package/tests/doc-strings/features/doc-strings.feature +0 -21
- package/tests/doc-strings/features/step_definitions/doc-strings.js +0 -15
- package/tests/doc-strings/package-lock.json +0 -1933
- package/tests/doc-strings/package.json +0 -11
- package/tests/doc-strings/vite.config.js +0 -13
- package/tests/hooks/features/after-all.feature +0 -5
- package/tests/hooks/features/after.feature +0 -5
- package/tests/hooks/features/before-all.feature +0 -14
- package/tests/hooks/features/before-step.feature +0 -6
- package/tests/hooks/features/before.feature +0 -14
- package/tests/hooks/features/step_definitions/steps.js +0 -28
- package/tests/hooks/features/support/hooks.js +0 -75
- package/tests/hooks/features/support/tags-hooks.js +0 -11
- package/tests/hooks/features/tags.feature +0 -14
- package/tests/hooks/package-lock.json +0 -1204
- package/tests/hooks/package.json +0 -11
- package/tests/hooks/vite.config.js +0 -13
- package/tests/is-it-friday/features/is-it-friday.feature +0 -7
- package/tests/is-it-friday/features/step_definitions/stepdefs.js +0 -15
- package/tests/is-it-friday/package-lock.json +0 -1933
- package/tests/is-it-friday/package.json +0 -11
- package/tests/is-it-friday/vite.config.js +0 -13
- package/tests/is-it-friday-scenario-outline/features/is-it-friday.feature +0 -13
- package/tests/is-it-friday-scenario-outline/features/step_definitions/stepdefs.js +0 -15
- package/tests/is-it-friday-scenario-outline/package-lock.json +0 -1933
- package/tests/is-it-friday-scenario-outline/package.json +0 -11
- package/tests/is-it-friday-scenario-outline/vite.config.js +0 -9
- package/tests/is-it-friday-two-scenarios/features/is-it-friday.feature +0 -12
- package/tests/is-it-friday-two-scenarios/features/step_definitions/stepdefs.js +0 -19
- package/tests/is-it-friday-two-scenarios/package-lock.json +0 -1933
- package/tests/is-it-friday-two-scenarios/package.json +0 -11
- package/tests/is-it-friday-two-scenarios/vite.config.js +0 -9
- package/tests/is-it-friday-two-scenarios-multiple-feature-files/features/friday.feature +0 -7
- package/tests/is-it-friday-two-scenarios-multiple-feature-files/features/step_definitions/stepdefs.js +0 -19
- package/tests/is-it-friday-two-scenarios-multiple-feature-files/features/sunday.feature +0 -8
- package/tests/is-it-friday-two-scenarios-multiple-feature-files/package-lock.json +0 -1933
- package/tests/is-it-friday-two-scenarios-multiple-feature-files/package.json +0 -11
- package/tests/is-it-friday-two-scenarios-multiple-feature-files/vite.config.js +0 -9
- package/tests/keyword-aliases/features/scenario-outline.feature +0 -20
- package/tests/keyword-aliases/features/scenario.feature +0 -14
- package/tests/keyword-aliases/features/step_definitions/steps.js +0 -30
- package/tests/keyword-aliases/features/steps.feature +0 -28
- package/tests/keyword-aliases/features/support/hooks.js +0 -6
- package/tests/keyword-aliases/package-lock.json +0 -1933
- package/tests/keyword-aliases/package.json +0 -11
- package/tests/keyword-aliases/vite.config.js +0 -9
- package/tests/languages/features/en.feature +0 -8
- package/tests/languages/features/no.feature +0 -10
- package/tests/languages/features/step_definitions/en.js +0 -15
- package/tests/languages/features/step_definitions/no.js +0 -21
- package/tests/languages/package-lock.json +0 -1204
- package/tests/languages/package.json +0 -11
- package/tests/languages/vite.config.js +0 -13
- package/tests/rule/features/rule.feature +0 -14
- package/tests/rule/features/step_definitions/stepdefs.js +0 -19
- package/tests/rule/package-lock.json +0 -1933
- package/tests/rule/package.json +0 -11
- package/tests/rule/vite.config.js +0 -9
- package/tests/tags/features/skip.feature +0 -9
- package/tests/tags/features/step_definitions/steps.js +0 -30
- package/tests/tags/features/support/hooks.js +0 -6
- package/tests/tags/features/tags-scenario-outline.feature +0 -37
- package/tests/tags/features/tags.feature +0 -26
- package/tests/tags/package-lock.json +0 -1204
- package/tests/tags/package.json +0 -11
- package/tests/tags/vite.config.js +0 -12
- package/tests/vue/features/step_definitions/test.js +0 -25
- package/tests/vue/features/support/components.js +0 -19
- package/tests/vue/features/test.feature +0 -10
- package/tests/vue/package-lock.json +0 -2164
- package/tests/vue/package.json +0 -18
- package/tests/vue/src/test.vue +0 -10
- package/tests/vue/vite.config.js +0 -15
- /package/{src → dist}/gherkin-languages.json +0 -0
- /package/{src → dist}/tags-expression.js +0 -0
- /package/{src → dist}/tags-expression.umd.js +0 -0
package/RELEASE_NOTES.md
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
* v0.6.2 : Fixed package.json files
|
|
2
|
+
* v0.6.1 : TypeScript rewrite & support
|
|
1
3
|
* v0.6.0 : Language support
|
|
2
4
|
* v0.5.6 : Fixed issue #25 which was preventing at symbols from being used in data tables
|
|
3
5
|
* v0.5.5 : Changed dynamic import statements to static ones so that Vitest watch works correctly
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Tags } from './statement.js';
|
|
2
|
+
import { LoggerOptions } from './logger.js';
|
|
3
|
+
interface VitestCucumberPluginConfig {
|
|
4
|
+
tagsFunction: (tags?: Tags) => boolean;
|
|
5
|
+
log: LoggerOptions;
|
|
6
|
+
stepDefinitions: {
|
|
7
|
+
include: string | string[];
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export { VitestCucumberPluginConfig };
|
|
11
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,UAAU,0BAA0B;IAChC,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC;IACvC,GAAG,EAAE,aAAa,CAAC;IACnB,eAAe,EAAE;QACb,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;KAC9B,CAAC;CACL;AAED,OAAO,EAAE,0BAA0B,EAAE,CAAC"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Example } from '../statement.js';
|
|
2
|
+
import { VitestCucumberPluginConfig } from '../config.js';
|
|
3
|
+
declare const generateExample: (config: VitestCucumberPluginConfig, example: Example) => string;
|
|
4
|
+
export { generateExample, Example };
|
|
5
|
+
//# sourceMappingURL=example.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"example.d.ts","sourceRoot":"","sources":["../../src/generate/example.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE1D,QAAA,MAAM,eAAe,EAAE,CAAC,MAAM,EAAE,0BAA0B,EAAE,OAAO,EAAE,OAAO,KAAK,MAehF,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -2,20 +2,17 @@ import { escape, shouldSkip } from './util.js';
|
|
|
2
2
|
import { generateTests } from './tests.js';
|
|
3
3
|
import _ from 'lodash/fp.js';
|
|
4
4
|
import { log } from '../logger.js';
|
|
5
|
-
|
|
6
|
-
export const generateExample = (config,example) => {
|
|
5
|
+
const generateExample = (config, example) => {
|
|
7
6
|
log.debug(`generateExample config: ${JSON.stringify(config)} example: ${JSON.stringify(example)}`);
|
|
8
7
|
var tests = '';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
tests += generateTests(steps,{},example.tags);
|
|
13
|
-
|
|
14
|
-
const skip = shouldSkip(config,example.tags) ? '.skip' : '';
|
|
15
|
-
|
|
8
|
+
const steps = example.background ? _.concat(example.background.steps, example.steps) : example.steps;
|
|
9
|
+
tests += generateTests(steps, {}, example.tags);
|
|
10
|
+
const skip = shouldSkip(config, example.tags) ? '.skip' : '';
|
|
16
11
|
const code = ` // tags : ${JSON.stringify(example.tags)}
|
|
17
12
|
describe${skip}('${escape(example.type.name)}: ${escape(example.name)}', () => {${tests}
|
|
18
13
|
});
|
|
19
14
|
`;
|
|
20
15
|
return code;
|
|
21
|
-
}
|
|
16
|
+
};
|
|
17
|
+
export { generateExample };
|
|
18
|
+
//# sourceMappingURL=example.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"example.js","sourceRoot":"","sources":["../../src/generate/example.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,CAAC,MAAM,cAAc,CAAC;AAC7B,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAInC,MAAM,eAAe,GAAqE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;IAC1G,GAAG,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACnG,IAAI,KAAK,GAAG,EAAE,CAAC;IAEf,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAErG,KAAK,IAAI,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7D,MAAM,IAAI,GAAG,eAAe,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;YAChD,IAAI,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,KAAK;;CAExF,CAAC;IACE,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,OAAO,EAAE,eAAe,EAAW,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Examples, StepStatement } from '../statement.js';
|
|
2
|
+
import { VitestCucumberPluginConfig } from '../config.js';
|
|
3
|
+
declare const generateExamples: (config: VitestCucumberPluginConfig, steps: Array<StepStatement>, examplesStatement: Examples) => string;
|
|
4
|
+
export { generateExamples };
|
|
5
|
+
//# sourceMappingURL=examples.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"examples.d.ts","sourceRoot":"","sources":["../../src/generate/examples.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AA6D1D,QAAA,MAAM,gBAAgB,EAAE,CACpB,MAAM,EAAE,0BAA0B,EAClC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,EAC3B,iBAAiB,EAAE,QAAQ,KAC1B,MAkBJ,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { escape, shouldSkip } from './util.js';
|
|
2
|
+
import { generateTests } from './tests.js';
|
|
3
|
+
import _ from 'lodash/fp.js';
|
|
4
|
+
import { log } from '../logger.js';
|
|
5
|
+
const createParameterMap = (parameters, values) => {
|
|
6
|
+
const parameterMap = _.reduce((parameterMap, value) => {
|
|
7
|
+
return {
|
|
8
|
+
map: _.set(parameters[parameterMap.index], value, parameterMap.map),
|
|
9
|
+
index: parameterMap.index + 1,
|
|
10
|
+
};
|
|
11
|
+
}, { map: {}, index: 0 })(values);
|
|
12
|
+
return parameterMap.map;
|
|
13
|
+
};
|
|
14
|
+
const generateAllTests = (steps, parameters, parameterValues, tags) => {
|
|
15
|
+
parameters = parameters ?? [];
|
|
16
|
+
parameterValues = parameterValues ?? [];
|
|
17
|
+
tags = tags ?? [];
|
|
18
|
+
const allTests = _.reduce((allTests, values) => {
|
|
19
|
+
const parameterMap = createParameterMap(parameters, values);
|
|
20
|
+
log.debug(`parameterMap : ${JSON.stringify(parameterMap)}`);
|
|
21
|
+
const tests = generateTests(steps, parameterMap, tags, ' ');
|
|
22
|
+
return {
|
|
23
|
+
tests: allTests.tests +
|
|
24
|
+
`
|
|
25
|
+
describe('${allTests.index}',() => {${tests}
|
|
26
|
+
});`,
|
|
27
|
+
index: allTests.index + 1,
|
|
28
|
+
};
|
|
29
|
+
}, { tests: '', index: 0 })(parameterValues);
|
|
30
|
+
return allTests.tests;
|
|
31
|
+
};
|
|
32
|
+
const generateExamples = (config, steps, examplesStatement) => {
|
|
33
|
+
log.debug(`generateExamples steps:${JSON.stringify(steps)} examples: ${JSON.stringify(examplesStatement)}`);
|
|
34
|
+
const parameters = _.head(examplesStatement.dataTable);
|
|
35
|
+
const parameterValues = _.tail(examplesStatement.dataTable);
|
|
36
|
+
log.debug(`generateExamples parameters:${JSON.stringify(parameters)} parameterValues: ${JSON.stringify(parameterValues)}`);
|
|
37
|
+
const skip = shouldSkip(config, examplesStatement.tags) ? '.skip' : '';
|
|
38
|
+
const allTests = generateAllTests(steps, parameters, parameterValues, examplesStatement.tags);
|
|
39
|
+
const code = `
|
|
40
|
+
// tags : ${JSON.stringify(examplesStatement.tags)}
|
|
41
|
+
describe${skip}('${escape(examplesStatement.type.name)}: ${escape(examplesStatement.name)}', () => {${allTests}
|
|
42
|
+
});`;
|
|
43
|
+
return code;
|
|
44
|
+
};
|
|
45
|
+
export { generateExamples };
|
|
46
|
+
//# sourceMappingURL=examples.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"examples.js","sourceRoot":"","sources":["../../src/generate/examples.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Feature } from '../statement.js';
|
|
2
|
+
import { VitestCucumberPluginConfig } from '../config.js';
|
|
3
|
+
interface GenerateFeatureOptions {
|
|
4
|
+
config: VitestCucumberPluginConfig;
|
|
5
|
+
feature: Feature;
|
|
6
|
+
featurePath: string;
|
|
7
|
+
}
|
|
8
|
+
declare const generateFeature: (options: GenerateFeatureOptions) => Promise<string>;
|
|
9
|
+
export { generateFeature };
|
|
10
|
+
//# sourceMappingURL=feature.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature.d.ts","sourceRoot":"","sources":["../../src/generate/feature.ts"],"names":[],"mappings":"AAMA,OAAO,EAA6C,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAErF,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAS1D,UAAU,sBAAsB;IAC5B,MAAM,EAAE,0BAA0B,CAAC;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,QAAA,MAAM,eAAe,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,OAAO,CAAC,MAAM,CA2EzE,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import _ from 'lodash/fp.js';
|
|
2
|
+
import { log } from '../logger.js';
|
|
3
|
+
import { escape, shouldSkip } from './util.js';
|
|
4
|
+
import { glob } from 'glob';
|
|
5
|
+
import { generateExample } from './example.js';
|
|
6
|
+
import { generateRule } from './rule.js';
|
|
7
|
+
import { isStatementType } from '../statement.js';
|
|
8
|
+
import { generateScenarioOutline } from './scenario-outline.js';
|
|
9
|
+
import path from 'node:path';
|
|
10
|
+
const findJsFiles = async (options) => glob(options.include);
|
|
11
|
+
const generateFeature = async (options) => {
|
|
12
|
+
log.debug({ generateFeature: { options } });
|
|
13
|
+
const { config, feature, featurePath } = options;
|
|
14
|
+
const name = feature.name;
|
|
15
|
+
const statements = feature.statements;
|
|
16
|
+
const testStatements = _.reduce((testStatements, statement) => {
|
|
17
|
+
if (feature.background) {
|
|
18
|
+
statement = _.set('background', feature.background, statement);
|
|
19
|
+
}
|
|
20
|
+
statement = _.set('tags', _.concat(feature.tags, statement.tags), statement);
|
|
21
|
+
if (isStatementType(statement, 'example')) {
|
|
22
|
+
return testStatements + generateExample(config, statement);
|
|
23
|
+
}
|
|
24
|
+
else if (isStatementType(statement, 'scenarioOutline')) {
|
|
25
|
+
return testStatements + generateScenarioOutline(config, statement);
|
|
26
|
+
}
|
|
27
|
+
else if (isStatementType(statement, 'rule')) {
|
|
28
|
+
return testStatements + generateRule(config, statement);
|
|
29
|
+
}
|
|
30
|
+
return testStatements;
|
|
31
|
+
}, '')(statements);
|
|
32
|
+
const skip = shouldSkip(config, feature.tags) ? '.skip' : '';
|
|
33
|
+
const tagsStr = JSON.stringify(feature.tags);
|
|
34
|
+
const cwd = process.cwd();
|
|
35
|
+
const jsFilesImportReducer = (imports, file) => {
|
|
36
|
+
const absolutePath = `${cwd}/${file}`;
|
|
37
|
+
const relativePath = path.relative(path.dirname(featurePath), absolutePath);
|
|
38
|
+
return (imports +
|
|
39
|
+
`
|
|
40
|
+
import './${relativePath}';`);
|
|
41
|
+
};
|
|
42
|
+
const jsFiles = await findJsFiles(config.stepDefinitions);
|
|
43
|
+
log.debug({ featurePath, cwd, jsFiles });
|
|
44
|
+
const jsFilesImport = _.reduce(jsFilesImportReducer, '', jsFiles);
|
|
45
|
+
const code = `import { expect, test, describe, beforeAll, afterAll, beforeEach, afterEach } from 'vitest';
|
|
46
|
+
import {
|
|
47
|
+
Test,
|
|
48
|
+
applyBeforeAllHooks,
|
|
49
|
+
applyBeforeHooks,
|
|
50
|
+
applyBeforeStepHooks,
|
|
51
|
+
applyAfterAllHooks,
|
|
52
|
+
applyAfterHooks,
|
|
53
|
+
applyAfterStepHooks,
|
|
54
|
+
} from 'vitest-cucumber-plugin';
|
|
55
|
+
import { readdir } from 'node:fs/promises';
|
|
56
|
+
import { log, logConfig } from 'vitest-cucumber-plugin';${jsFilesImport}
|
|
57
|
+
|
|
58
|
+
logConfig(${JSON.stringify(config.log)});
|
|
59
|
+
|
|
60
|
+
var state = {};
|
|
61
|
+
|
|
62
|
+
beforeAll(async () => {
|
|
63
|
+
state = await applyBeforeAllHooks(state,${tagsStr});
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
afterAll(async () => {
|
|
67
|
+
state = await applyAfterAllHooks(state,${tagsStr});
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
// tags : ${tagsStr}
|
|
71
|
+
describe${skip}('${escape(feature.type.name)}: ${escape(name)}', () => {
|
|
72
|
+
${testStatements}});
|
|
73
|
+
`;
|
|
74
|
+
return code;
|
|
75
|
+
};
|
|
76
|
+
export { generateFeature };
|
|
77
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature.js","sourceRoot":"","sources":["../../src/generate/feature.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../src/generate/rule.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE1D,QAAA,MAAM,YAAY,EAAE,CAAC,MAAM,EAAE,0BAA0B,EAAE,IAAI,EAAE,IAAI,KAAK,MAgBvE,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -1,22 +1,19 @@
|
|
|
1
1
|
import _ from 'lodash/fp.js';
|
|
2
|
-
import { generateExample } from './index.js';
|
|
3
2
|
import { escape, shouldSkip } from './util.js';
|
|
4
3
|
import { log } from '../logger.js';
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
import { generateExample } from './example.js';
|
|
5
|
+
const generateRule = (config, rule) => {
|
|
7
6
|
log.debug(`generateRule config: ${JSON.stringify(config)} rule: ${JSON.stringify(rule)}`);
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const skip = shouldSkip(config,rule.tags) ? '.skip' : '';
|
|
7
|
+
const examplesCode = _.reduce((examplesCode, example) => {
|
|
8
|
+
return examplesCode + generateExample(config, example);
|
|
9
|
+
}, '')(rule.examples);
|
|
10
|
+
const skip = shouldSkip(config, rule.tags) ? '.skip' : '';
|
|
14
11
|
const tagsStr = JSON.stringify(rule.tags);
|
|
15
|
-
|
|
16
12
|
const code = ` // tags : ${tagsStr}
|
|
17
13
|
describe${skip}('${escape(rule.type.name)}: ${escape(rule.name)}', () => {
|
|
18
14
|
${examplesCode}});
|
|
19
15
|
`;
|
|
20
|
-
|
|
21
16
|
return code;
|
|
22
|
-
}
|
|
17
|
+
};
|
|
18
|
+
export { generateRule };
|
|
19
|
+
//# sourceMappingURL=rule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule.js","sourceRoot":"","sources":["../../src/generate/rule.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,cAAc,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,eAAe,EAAW,MAAM,cAAc,CAAC;AAIxD,MAAM,YAAY,GAA+D,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;IAC9F,GAAG,CAAC,KAAK,CAAC,wBAAwB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE1F,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,YAAoB,EAAE,OAAgB,EAAE,EAAE;QACrE,OAAO,YAAY,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEtB,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE1C,MAAM,IAAI,GAAG,eAAe,OAAO;YAC3B,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;EAC/D,YAAY;CACb,CAAC;IAEE,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ScenarioOutline } from '../statement.js';
|
|
2
|
+
import { VitestCucumberPluginConfig } from '../config.js';
|
|
3
|
+
declare const generateScenarioOutline: (config: VitestCucumberPluginConfig, scenarioOutline: ScenarioOutline) => string;
|
|
4
|
+
export { generateScenarioOutline };
|
|
5
|
+
//# sourceMappingURL=scenario-outline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scenario-outline.d.ts","sourceRoot":"","sources":["../../src/generate/scenario-outline.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAY,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE1D,QAAA,MAAM,uBAAuB,EAAE,CAAC,MAAM,EAAE,0BAA0B,EAAE,eAAe,EAAE,eAAe,KAAK,MAmBxG,CAAC;AAEF,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import _ from 'lodash/fp.js';
|
|
2
|
+
import { generateExamples } from './examples.js';
|
|
3
|
+
import { escape, shouldSkip } from './util.js';
|
|
4
|
+
const generateScenarioOutline = (config, scenarioOutline) => {
|
|
5
|
+
const examplesStatements = _.reduce((examplesStatements, examplesStatement) => {
|
|
6
|
+
examplesStatement = _.set('tags', _.concat(scenarioOutline.tags, examplesStatement.tags), examplesStatement);
|
|
7
|
+
return examplesStatements + generateExamples(config, scenarioOutline.steps, examplesStatement);
|
|
8
|
+
}, '')(scenarioOutline.examples);
|
|
9
|
+
const skip = shouldSkip(config, scenarioOutline.tags) ? '.skip' : '';
|
|
10
|
+
const code = ` // tags : ${JSON.stringify(scenarioOutline.tags)}
|
|
11
|
+
describe${skip}('${escape(scenarioOutline.type.name)}: ${escape(scenarioOutline.name)}', () => {
|
|
12
|
+
${examplesStatements}
|
|
13
|
+
});
|
|
14
|
+
`;
|
|
15
|
+
return code;
|
|
16
|
+
};
|
|
17
|
+
export { generateScenarioOutline };
|
|
18
|
+
//# sourceMappingURL=scenario-outline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scenario-outline.js","sourceRoot":"","sources":["../../src/generate/scenario-outline.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,cAAc,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAI/C,MAAM,uBAAuB,GAAqF,CAC9G,MAAM,EACN,eAAe,EACjB,EAAE;IACA,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,kBAA0B,EAAE,iBAA2B,EAAE,EAAE;QAC5F,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,iBAAiB,CAAC,CAAC;QAE7G,OAAO,kBAAkB,GAAG,gBAAgB,CAAC,MAAM,EAAE,eAAe,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;IACnG,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAEjC,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAErE,MAAM,IAAI,GAAG,eAAe,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC;YACxD,IAAI,KAAK,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC;EACrF,kBAAkB;;CAEnB,CAAC;IAEE,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../src/generate/tests.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,QAAA,MAAM,aAAa,EAAE,CACjB,KAAK,EAAE,aAAa,EAAE,EACtB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,IAAI,CAAC,EAAE,MAAM,EAAE,EACf,WAAW,CAAC,EAAE,MAAM,KACnB,MAwBJ,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -2,8 +2,7 @@ import _ from 'lodash/fp.js';
|
|
|
2
2
|
import { escape } from './util.js';
|
|
3
3
|
import { parameterizeText } from '../parameterize.js';
|
|
4
4
|
import { log } from '../logger.js';
|
|
5
|
-
|
|
6
|
-
export const generateTests = (steps,parameterMap,tags,extraIndent) => {
|
|
5
|
+
const generateTests = (steps, parameterMap, tags, extraIndent) => {
|
|
7
6
|
log.debug(`generateTests steps : ${JSON.stringify(steps)}`);
|
|
8
7
|
const tagsStr = JSON.stringify(tags);
|
|
9
8
|
const indent = extraIndent ? extraIndent : '';
|
|
@@ -13,16 +12,17 @@ ${indent} beforeEach(async () => { state = await applyBeforeStepHooks(state,$
|
|
|
13
12
|
${indent} afterAll(async () => { state = await applyAfterHooks(state,${tagsStr}); });
|
|
14
13
|
${indent} afterEach(async () => { state = await applyAfterStepHooks(state,${tagsStr}); });
|
|
15
14
|
`;
|
|
16
|
-
|
|
17
15
|
_.forEach((step) => {
|
|
18
|
-
const parameterizedText =
|
|
16
|
+
const parameterizedText = parameterMap ? parameterizeText(step.text, parameterMap) : step.text;
|
|
19
17
|
const name = parameterizedText;
|
|
20
|
-
const parameterizedStep = _.set('text',parameterizedText,step);
|
|
21
|
-
|
|
18
|
+
const parameterizedStep = _.set('text', parameterizedText, step);
|
|
22
19
|
const stepString = JSON.stringify(parameterizedStep);
|
|
23
|
-
tests =
|
|
20
|
+
tests =
|
|
21
|
+
tests +
|
|
22
|
+
`
|
|
24
23
|
${indent} test('${escape(step.type.name)} ${escape(name)}', () => { state = Test(state,${stepString}); });`;
|
|
25
|
-
},steps);
|
|
26
|
-
|
|
24
|
+
}, steps);
|
|
27
25
|
return tests;
|
|
28
26
|
};
|
|
27
|
+
export { generateTests };
|
|
28
|
+
//# sourceMappingURL=tests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tests.js","sourceRoot":"","sources":["../../src/generate/tests.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,cAAc,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,MAAM,aAAa,GAKL,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE;IACrD,GAAG,CAAC,KAAK,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,IAAI,KAAK,GAAG;EACd,MAAM,oEAAoE,OAAO;EACjF,MAAM,yEAAyE,OAAO;EACtF,MAAM,kEAAkE,OAAO;EAC/E,MAAM,uEAAuE,OAAO;CACrF,CAAC;IAEE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACf,MAAM,iBAAiB,GAAG,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/F,MAAM,IAAI,GAAG,iBAAiB,CAAC;QAC/B,MAAM,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;QAEjE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACrD,KAAK;YACD,KAAK;gBACL;EACV,MAAM,aAAa,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,iCAAiC,UAAU,QAAQ,CAAC;IAC3G,CAAC,EAAE,KAAK,CAAC,CAAC;IAEV,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Tags } from '../statement.js';
|
|
2
|
+
import { VitestCucumberPluginConfig } from '../config.js';
|
|
3
|
+
declare const escape: (str: string) => string;
|
|
4
|
+
declare const shouldSkip: (config: VitestCucumberPluginConfig, tags?: Tags) => boolean;
|
|
5
|
+
export { escape, shouldSkip };
|
|
6
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/generate/util.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE1D,QAAA,MAAM,MAAM,GAAI,KAAK,MAAM,WAA6B,CAAC;AACzD,QAAA,MAAM,UAAU,GAAI,QAAQ,0BAA0B,EAAE,OAAO,IAAI,YAIlE,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import _ from 'lodash/fp.js';
|
|
2
1
|
import { log } from '../logger.js';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export const shouldSkip = (config,tags) => {
|
|
2
|
+
const escape = (str) => str.replace(/'/g, "\\'");
|
|
3
|
+
const shouldSkip = (config, tags) => {
|
|
6
4
|
const result = !config.tagsFunction(tags);
|
|
7
5
|
log.debug(`shouldSkip? ${result} tags: ${JSON.stringify(tags)}`);
|
|
8
6
|
return result;
|
|
9
|
-
}
|
|
7
|
+
};
|
|
8
|
+
export { escape, shouldSkip };
|
|
9
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/generate/util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAInC,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACzD,MAAM,UAAU,GAAG,CAAC,MAAkC,EAAE,IAAW,EAAE,EAAE;IACnE,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC1C,GAAG,CAAC,KAAK,CAAC,eAAe,MAAM,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjE,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gherkin-lexer-shared.d.ts","sourceRoot":"","sources":["../src/gherkin-lexer-shared.ts"],"names":[],"mappings":";;;;AAGA,wBAAoC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gherkin-lexer-shared.js","sourceRoot":"","sources":["../src/gherkin-lexer-shared.ts"],"names":[],"mappings":"AAAA,IAAI,MAAM,GAAG,EAAE,CAAC;AAChB,IAAI,QAAQ,GAAG,IAAI,CAAC;AAEpB,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gherkin-lexer.d.ts","sourceRoot":"","sources":["../src/gherkin-lexer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AA+DzD,QAAA,MAAM,kBAAkB,EAAE,CAAC,OAAO,EAAE,0BAA0B,KAAK,IAalE,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import _ from 'lodash/fp.js';
|
|
2
|
+
import gherkinLexerShared from './gherkin-lexer-shared.js';
|
|
3
|
+
import fs from 'fs';
|
|
4
|
+
const base = {
|
|
5
|
+
language: { match: /^#[ \t]*language:[ \t]*[a-z\-A-Z]+\n/, lineBreaks: true },
|
|
6
|
+
emptyLine: { match: /^[ \t]*(?:\#[^\n]+)?\n/, lineBreaks: true },
|
|
7
|
+
newline: { match: '\n', lineBreaks: true },
|
|
8
|
+
ws: /[ \t]+/,
|
|
9
|
+
at: '@',
|
|
10
|
+
colon: ':',
|
|
11
|
+
repeatStep: '*',
|
|
12
|
+
pipe: '|',
|
|
13
|
+
escapedPipe: '\\|',
|
|
14
|
+
escapedNewline: '\\n',
|
|
15
|
+
escapedBackSlash: '\\\\',
|
|
16
|
+
scenarioOutline: [],
|
|
17
|
+
docString: ['```', '"""'],
|
|
18
|
+
word: {
|
|
19
|
+
match: /[^ \t\n\:\|\@\*]+/,
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
const trimKeywords = () => _.map(_.trim);
|
|
23
|
+
const filterStars = () => _.filter((v) => v !== '*');
|
|
24
|
+
const cleanKeywords = (keywords) => filterStars()(trimKeywords()(keywords));
|
|
25
|
+
const createState = (languageKeywords) => {
|
|
26
|
+
let state = base;
|
|
27
|
+
if (!_.isArray(languageKeywords.scenarioOutline)) {
|
|
28
|
+
throw new Error(`Scenario Outline was not an array`);
|
|
29
|
+
}
|
|
30
|
+
state = _.set('scenarioOutline', cleanKeywords(languageKeywords.scenarioOutline), state);
|
|
31
|
+
let keywords = {};
|
|
32
|
+
let repeatStepKeys = ['and', 'but'];
|
|
33
|
+
const repeatStepReducer = (keywords, repeatStepKey) => {
|
|
34
|
+
const repeatStepKeywords = languageKeywords[repeatStepKey];
|
|
35
|
+
if (!_.isArray(repeatStepKeywords)) {
|
|
36
|
+
throw new Error(`${repeatStepKey} was not an array`);
|
|
37
|
+
}
|
|
38
|
+
return _.concat(keywords, cleanKeywords(repeatStepKeywords));
|
|
39
|
+
};
|
|
40
|
+
const repeatStepKeywords = _.reduce(repeatStepReducer, [])(repeatStepKeys);
|
|
41
|
+
let otherKeys = ['feature', 'examples', 'given', 'when', 'then', 'scenario', 'background', 'rule'];
|
|
42
|
+
const otherKeyReducer = (acc, key) => {
|
|
43
|
+
const otherKeyKeywords = languageKeywords[key];
|
|
44
|
+
if (!_.isArray(otherKeyKeywords)) {
|
|
45
|
+
throw new Error(`${key} was not an array`);
|
|
46
|
+
}
|
|
47
|
+
return _.set(key, cleanKeywords(otherKeyKeywords), acc);
|
|
48
|
+
};
|
|
49
|
+
const otherKeywords = _.reduce(otherKeyReducer, {})(otherKeys);
|
|
50
|
+
keywords = _.set('repeatStep', repeatStepKeywords, otherKeywords);
|
|
51
|
+
state = _.set(['word', 'rawKeywords'], keywords, state);
|
|
52
|
+
return state;
|
|
53
|
+
};
|
|
54
|
+
const gherkinLexerConfig = (options) => {
|
|
55
|
+
const gherkinLanguagesPath = new URL('./gherkin-languages.json', import.meta.url);
|
|
56
|
+
const gherkinLanguages = JSON.parse(fs.readFileSync(gherkinLanguagesPath).toString('utf-8'));
|
|
57
|
+
const language = _.getOr('en', 'language', options);
|
|
58
|
+
const languageKeys = _.keys(gherkinLanguages);
|
|
59
|
+
const languageKeyReducer = (acc, languageKey) => _.set(languageKey, createState(gherkinLanguages[languageKey]), acc);
|
|
60
|
+
const states = _.reduce(languageKeyReducer, {}, languageKeys);
|
|
61
|
+
if (!_.has(language, states)) {
|
|
62
|
+
throw new Error('unknown language "' + language + '"');
|
|
63
|
+
}
|
|
64
|
+
gherkinLexerShared.states = states;
|
|
65
|
+
gherkinLexerShared.language = language;
|
|
66
|
+
};
|
|
67
|
+
export { gherkinLexerConfig };
|
|
68
|
+
//# sourceMappingURL=gherkin-lexer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gherkin-lexer.js","sourceRoot":"","sources":["../src/gherkin-lexer.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,cAAc,CAAC;AAC7B,OAAO,kBAAkB,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,MAAM,IAAI,CAAC;AAGpB,MAAM,IAAI,GAAG;IACT,QAAQ,EAAE,EAAE,KAAK,EAAE,sCAAsC,EAAE,UAAU,EAAE,IAAI,EAAE;IAC7E,SAAS,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,UAAU,EAAE,IAAI,EAAE;IAChE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;IAC1C,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,GAAG;IACP,KAAK,EAAE,GAAG;IACV,UAAU,EAAE,GAAG;IACf,IAAI,EAAE,GAAG;IACT,WAAW,EAAE,KAAK;IAClB,cAAc,EAAE,KAAK;IACrB,gBAAgB,EAAE,MAAM;IACxB,eAAe,EAAE,EAAE;IACnB,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;IACzB,IAAI,EAAE;QACF,KAAK,EAAE,mBAAmB;KAC7B;CACJ,CAAC;AAEF,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACzC,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;AAC7D,MAAM,aAAa,GAAG,CAAC,QAAkB,EAAY,EAAE,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEhG,MAAM,WAAW,GAAoE,CAAC,gBAAgB,EAAE,EAAE;IACtG,IAAI,KAAK,GAAG,IAAI,CAAC;IAEjB,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACzD,CAAC;IACD,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE,aAAa,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,CAAC;IAEzF,IAAI,QAAQ,GAAG,EAAE,CAAC;IAElB,IAAI,cAAc,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACpC,MAAM,iBAAiB,GAAG,CAAC,QAAkB,EAAE,aAAqB,EAAY,EAAE;QAC9E,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAC3D,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,GAAG,aAAa,mBAAmB,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC;IACF,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC;IAE3E,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IACnG,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,GAAW,EAAU,EAAE;QACzD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,mBAAmB,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5D,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;IAE/D,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,kBAAkB,EAAE,aAAa,CAAC,CAAC;IAElE,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAExD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAkD,CAAC,OAAO,EAAE,EAAE;IAClF,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,0BAA0B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClF,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7F,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC9C,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAE,WAAmB,EAAE,EAAE,CAC5D,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,kBAAkB,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC;IAC9D,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;IAC3D,CAAC;IACD,kBAAkB,CAAC,MAAM,GAAG,MAAM,CAAC;IACnC,kBAAkB,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC3C,CAAC,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
package/{src → dist}/gherkin.js
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import require$$0 from 'lodash/fp.js';
|
|
2
2
|
import require$$1 from 'moo';
|
|
3
|
-
import require$$2 from './gherkin-lexer-shared.
|
|
3
|
+
import require$$2 from './gherkin-lexer-shared.js';
|
|
4
4
|
|
|
5
5
|
function getDefaultExportFromCjs (x) {
|
|
6
6
|
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
@@ -6,7 +6,7 @@ function id(x) { return x[0]; }
|
|
|
6
6
|
const fp = require('lodash/fp.js');
|
|
7
7
|
const moo = require('moo');
|
|
8
8
|
|
|
9
|
-
const gherkinLexerShared = require('./gherkin-lexer-shared.
|
|
9
|
+
const gherkinLexerShared = require('./gherkin-lexer-shared.js');
|
|
10
10
|
|
|
11
11
|
const transformKeywords = (state) => fp.set(['word','type'],moo.keywords(state.word.rawKeywords),state);
|
|
12
12
|
|
package/dist/hooks.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { State } from './state.js';
|
|
2
|
+
import { Tags } from './statement.js';
|
|
3
|
+
interface HookOptsObject {
|
|
4
|
+
name: string;
|
|
5
|
+
tags?: string;
|
|
6
|
+
}
|
|
7
|
+
type MaybePromise<T> = T | Promise<T>;
|
|
8
|
+
type HookFunction<S extends State = State, R extends State | undefined = undefined> = [R] extends [undefined] ? (state: S) => MaybePromise<void | object> : (state: S) => MaybePromise<R>;
|
|
9
|
+
type HookOpts = HookFunction | string | HookOptsObject;
|
|
10
|
+
type ApplyHooksFunction = (state: State, tags?: Tags) => Promise<State>;
|
|
11
|
+
type AddHookFunction = <S extends State = State, R extends State = State>(opts: HookOpts, f: HookFunction<S, R>) => void;
|
|
12
|
+
declare const BeforeAll: AddHookFunction;
|
|
13
|
+
declare const applyBeforeAllHooks: ApplyHooksFunction;
|
|
14
|
+
declare const Before: AddHookFunction;
|
|
15
|
+
declare const applyBeforeHooks: ApplyHooksFunction;
|
|
16
|
+
declare const BeforeStep: AddHookFunction;
|
|
17
|
+
declare const applyBeforeStepHooks: ApplyHooksFunction;
|
|
18
|
+
declare const AfterAll: AddHookFunction;
|
|
19
|
+
declare const applyAfterAllHooks: ApplyHooksFunction;
|
|
20
|
+
declare const After: AddHookFunction;
|
|
21
|
+
declare const applyAfterHooks: ApplyHooksFunction;
|
|
22
|
+
declare const AfterStep: AddHookFunction;
|
|
23
|
+
declare const applyAfterStepHooks: ApplyHooksFunction;
|
|
24
|
+
export { applyAfterStepHooks, AfterStep, applyAfterHooks, After, applyAfterAllHooks, AfterAll, applyBeforeStepHooks, BeforeStep, applyBeforeHooks, Before, applyBeforeAllHooks, BeforeAll, };
|
|
25
|
+
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,UAAU,cAAc;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEtC,KAAK,YAAY,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,CAAC,SAAS,KAAK,GAAG,SAAS,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,GACvG,CAAC,KAAK,EAAE,CAAC,KAAK,YAAY,CAAC,IAAI,GAAG,MAAM,CAAC,GACzC,CAAC,KAAK,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC;AAEpC,KAAK,QAAQ,GAAG,YAAY,GAAG,MAAM,GAAG,cAAc,CAAC;AACvD,KAAK,kBAAkB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;AACxE,KAAK,eAAe,GAAG,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,CAAC,SAAS,KAAK,GAAG,KAAK,EACpE,IAAI,EAAE,QAAQ,EACd,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KACpB,IAAI,CAAC;AA6FV,QAAA,MAAM,SAAS,EAAE,eAEhB,CAAC;AACF,QAAA,MAAM,mBAAmB,EAAE,kBAAkF,CAAC;AAE9G,QAAA,MAAM,MAAM,EAAE,eAEb,CAAC;AACF,QAAA,MAAM,gBAAgB,EAAE,kBAA+E,CAAC;AAExG,QAAA,MAAM,UAAU,EAAE,eAEjB,CAAC;AACF,QAAA,MAAM,oBAAoB,EAAE,kBAAmF,CAAC;AAEhH,QAAA,MAAM,QAAQ,EAAE,eAEf,CAAC;AACF,QAAA,MAAM,kBAAkB,EAAE,kBAAiF,CAAC;AAE5G,QAAA,MAAM,KAAK,EAAE,eAEZ,CAAC;AACF,QAAA,MAAM,eAAe,EAAE,kBAA8E,CAAC;AAEtG,QAAA,MAAM,SAAS,EAAE,eAEhB,CAAC;AACF,QAAA,MAAM,mBAAmB,EAAE,kBAAkF,CAAC;AAE9G,OAAO,EACH,mBAAmB,EACnB,SAAS,EACT,eAAe,EACf,KAAK,EACL,kBAAkB,EAClB,QAAQ,EACR,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,MAAM,EACN,mBAAmB,EACnB,SAAS,GACZ,CAAC"}
|