vitest-cucumber-plugin 0.5.6 → 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.
Files changed (192) hide show
  1. package/RELEASE_NOTES.md +3 -0
  2. package/dist/config.d.ts +11 -0
  3. package/dist/config.d.ts.map +1 -0
  4. package/dist/config.js +2 -0
  5. package/dist/config.js.map +1 -0
  6. package/dist/generate/example.d.ts +5 -0
  7. package/dist/generate/example.d.ts.map +1 -0
  8. package/dist/generate/example.js +18 -0
  9. package/dist/generate/example.js.map +1 -0
  10. package/dist/generate/examples.d.ts +5 -0
  11. package/dist/generate/examples.d.ts.map +1 -0
  12. package/dist/generate/examples.js +46 -0
  13. package/dist/generate/examples.js.map +1 -0
  14. package/dist/generate/feature.d.ts +10 -0
  15. package/dist/generate/feature.d.ts.map +1 -0
  16. package/dist/generate/feature.js +77 -0
  17. package/dist/generate/feature.js.map +1 -0
  18. package/dist/generate/index.d.ts +3 -0
  19. package/dist/generate/index.d.ts.map +1 -0
  20. package/dist/generate/index.js +3 -0
  21. package/dist/generate/index.js.map +1 -0
  22. package/dist/generate/rule.d.ts +5 -0
  23. package/dist/generate/rule.d.ts.map +1 -0
  24. package/dist/generate/rule.js +19 -0
  25. package/dist/generate/rule.js.map +1 -0
  26. package/dist/generate/scenario-outline.d.ts +5 -0
  27. package/dist/generate/scenario-outline.d.ts.map +1 -0
  28. package/dist/generate/scenario-outline.js +18 -0
  29. package/dist/generate/scenario-outline.js.map +1 -0
  30. package/dist/generate/tests.d.ts +4 -0
  31. package/dist/generate/tests.d.ts.map +1 -0
  32. package/{src → dist}/generate/tests.js +10 -10
  33. package/dist/generate/tests.js.map +1 -0
  34. package/dist/generate/util.d.ts +6 -0
  35. package/dist/generate/util.d.ts.map +1 -0
  36. package/dist/generate/util.js +9 -0
  37. package/dist/generate/util.js.map +1 -0
  38. package/dist/gherkin-languages.json +3790 -0
  39. package/dist/gherkin-lexer-shared.d.ts +6 -0
  40. package/dist/gherkin-lexer-shared.d.ts.map +1 -0
  41. package/dist/gherkin-lexer-shared.js +4 -0
  42. package/dist/gherkin-lexer-shared.js.map +1 -0
  43. package/dist/gherkin-lexer.d.ts +4 -0
  44. package/dist/gherkin-lexer.d.ts.map +1 -0
  45. package/dist/gherkin-lexer.js +68 -0
  46. package/dist/gherkin-lexer.js.map +1 -0
  47. package/{src → dist}/gherkin.js +24 -31
  48. package/{src → dist}/gherkin.umd.js +23 -31
  49. package/dist/hooks.d.ts +25 -0
  50. package/dist/hooks.d.ts.map +1 -0
  51. package/dist/hooks.js +94 -0
  52. package/dist/hooks.js.map +1 -0
  53. package/dist/index.d.ts +4 -0
  54. package/dist/index.d.ts.map +1 -0
  55. package/dist/index.js +4 -0
  56. package/dist/index.js.map +1 -0
  57. package/dist/logger.d.ts +5 -0
  58. package/dist/logger.d.ts.map +1 -0
  59. package/dist/logger.js +8 -0
  60. package/dist/logger.js.map +1 -0
  61. package/dist/parameterize.d.ts +3 -0
  62. package/dist/parameterize.d.ts.map +1 -0
  63. package/dist/parameterize.js +8 -0
  64. package/dist/parameterize.js.map +1 -0
  65. package/dist/parse.d.ts +3 -0
  66. package/dist/parse.d.ts.map +1 -0
  67. package/dist/parse.js +28 -0
  68. package/dist/parse.js.map +1 -0
  69. package/dist/state.d.ts +4 -0
  70. package/dist/state.d.ts.map +1 -0
  71. package/dist/state.js +2 -0
  72. package/dist/state.js.map +1 -0
  73. package/dist/statement.d.ts +71 -0
  74. package/dist/statement.d.ts.map +1 -0
  75. package/dist/statement.js +10 -0
  76. package/dist/statement.js.map +1 -0
  77. package/dist/steps.d.ts +20 -0
  78. package/dist/steps.d.ts.map +1 -0
  79. package/{src → dist}/steps.js +17 -24
  80. package/dist/steps.js.map +1 -0
  81. package/dist/tags.d.ts +5 -0
  82. package/dist/tags.d.ts.map +1 -0
  83. package/{src → dist}/tags.js +20 -33
  84. package/dist/tags.js.map +1 -0
  85. package/dist/vitest-cucumber-plugin.d.ts +13 -0
  86. package/dist/vitest-cucumber-plugin.d.ts.map +1 -0
  87. package/dist/vitest-cucumber-plugin.js +69 -0
  88. package/dist/vitest-cucumber-plugin.js.map +1 -0
  89. package/package.json +64 -34
  90. package/generate-parsers +0 -6
  91. package/rollup-gherkin.js +0 -10
  92. package/rollup-tags-expression.js +0 -10
  93. package/run-tests +0 -9
  94. package/src/generate/example.js +0 -21
  95. package/src/generate/examples.js +0 -49
  96. package/src/generate/feature.js +0 -72
  97. package/src/generate/index.js +0 -15
  98. package/src/generate/rule.js +0 -22
  99. package/src/generate/scenario-outline.js +0 -21
  100. package/src/generate/util.js +0 -9
  101. package/src/gherkin.ne +0 -217
  102. package/src/hooks.js +0 -78
  103. package/src/index.js +0 -92
  104. package/src/logger.js +0 -14
  105. package/src/parameterize.js +0 -7
  106. package/src/parse.js +0 -21
  107. package/src/tags-expression.ne +0 -43
  108. package/tests/background/features/background.feature +0 -25
  109. package/tests/background/features/step_definitions/steps.js +0 -30
  110. package/tests/background/features/support/hooks.js +0 -3
  111. package/tests/background/package-lock.json +0 -1204
  112. package/tests/background/package.json +0 -11
  113. package/tests/background/vite.config.js +0 -13
  114. package/tests/comments/features/is-it-friday.feature +0 -10
  115. package/tests/comments/features/step_definitions/stepdefs.js +0 -15
  116. package/tests/comments/package-lock.json +0 -1933
  117. package/tests/comments/package.json +0 -11
  118. package/tests/comments/vite.config.js +0 -9
  119. package/tests/data-tables/features/data-tables-escaping.feature +0 -27
  120. package/tests/data-tables/features/data-tables.feature +0 -44
  121. package/tests/data-tables/features/step_definitions/data-tables.js +0 -21
  122. package/tests/data-tables/package-lock.json +0 -1933
  123. package/tests/data-tables/package.json +0 -11
  124. package/tests/data-tables/vite.config.js +0 -13
  125. package/tests/doc-strings/features/doc-strings.feature +0 -21
  126. package/tests/doc-strings/features/step_definitions/doc-strings.js +0 -15
  127. package/tests/doc-strings/package-lock.json +0 -1933
  128. package/tests/doc-strings/package.json +0 -11
  129. package/tests/doc-strings/vite.config.js +0 -13
  130. package/tests/hooks/features/after-all.feature +0 -5
  131. package/tests/hooks/features/after.feature +0 -5
  132. package/tests/hooks/features/before-all.feature +0 -14
  133. package/tests/hooks/features/before-step.feature +0 -6
  134. package/tests/hooks/features/before.feature +0 -14
  135. package/tests/hooks/features/step_definitions/steps.js +0 -28
  136. package/tests/hooks/features/support/hooks.js +0 -75
  137. package/tests/hooks/features/support/tags-hooks.js +0 -11
  138. package/tests/hooks/features/tags.feature +0 -14
  139. package/tests/hooks/package-lock.json +0 -1204
  140. package/tests/hooks/package.json +0 -11
  141. package/tests/hooks/vite.config.js +0 -13
  142. package/tests/is-it-friday/features/is-it-friday.feature +0 -7
  143. package/tests/is-it-friday/features/step_definitions/stepdefs.js +0 -15
  144. package/tests/is-it-friday/package-lock.json +0 -1933
  145. package/tests/is-it-friday/package.json +0 -11
  146. package/tests/is-it-friday/vite.config.js +0 -13
  147. package/tests/is-it-friday-scenario-outline/features/is-it-friday.feature +0 -13
  148. package/tests/is-it-friday-scenario-outline/features/step_definitions/stepdefs.js +0 -15
  149. package/tests/is-it-friday-scenario-outline/package-lock.json +0 -1933
  150. package/tests/is-it-friday-scenario-outline/package.json +0 -11
  151. package/tests/is-it-friday-scenario-outline/vite.config.js +0 -9
  152. package/tests/is-it-friday-two-scenarios/features/is-it-friday.feature +0 -12
  153. package/tests/is-it-friday-two-scenarios/features/step_definitions/stepdefs.js +0 -19
  154. package/tests/is-it-friday-two-scenarios/package-lock.json +0 -1933
  155. package/tests/is-it-friday-two-scenarios/package.json +0 -11
  156. package/tests/is-it-friday-two-scenarios/vite.config.js +0 -9
  157. package/tests/is-it-friday-two-scenarios-multiple-feature-files/features/friday.feature +0 -7
  158. package/tests/is-it-friday-two-scenarios-multiple-feature-files/features/step_definitions/stepdefs.js +0 -19
  159. package/tests/is-it-friday-two-scenarios-multiple-feature-files/features/sunday.feature +0 -8
  160. package/tests/is-it-friday-two-scenarios-multiple-feature-files/package-lock.json +0 -1933
  161. package/tests/is-it-friday-two-scenarios-multiple-feature-files/package.json +0 -11
  162. package/tests/is-it-friday-two-scenarios-multiple-feature-files/vite.config.js +0 -9
  163. package/tests/keyword-aliases/features/scenario-outline.feature +0 -20
  164. package/tests/keyword-aliases/features/scenario.feature +0 -14
  165. package/tests/keyword-aliases/features/step_definitions/steps.js +0 -30
  166. package/tests/keyword-aliases/features/steps.feature +0 -28
  167. package/tests/keyword-aliases/features/support/hooks.js +0 -6
  168. package/tests/keyword-aliases/package-lock.json +0 -1933
  169. package/tests/keyword-aliases/package.json +0 -11
  170. package/tests/keyword-aliases/vite.config.js +0 -9
  171. package/tests/rule/features/rule.feature +0 -14
  172. package/tests/rule/features/step_definitions/stepdefs.js +0 -19
  173. package/tests/rule/package-lock.json +0 -1933
  174. package/tests/rule/package.json +0 -11
  175. package/tests/rule/vite.config.js +0 -9
  176. package/tests/tags/features/skip.feature +0 -9
  177. package/tests/tags/features/step_definitions/steps.js +0 -30
  178. package/tests/tags/features/support/hooks.js +0 -6
  179. package/tests/tags/features/tags-scenario-outline.feature +0 -37
  180. package/tests/tags/features/tags.feature +0 -26
  181. package/tests/tags/package-lock.json +0 -1204
  182. package/tests/tags/package.json +0 -11
  183. package/tests/tags/vite.config.js +0 -12
  184. package/tests/vue/features/step_definitions/test.js +0 -25
  185. package/tests/vue/features/support/components.js +0 -19
  186. package/tests/vue/features/test.feature +0 -10
  187. package/tests/vue/package-lock.json +0 -2164
  188. package/tests/vue/package.json +0 -18
  189. package/tests/vue/src/test.vue +0 -10
  190. package/tests/vue/vite.config.js +0 -15
  191. /package/{src → dist}/tags-expression.js +0 -0
  192. /package/{src → dist}/tags-expression.umd.js +0 -0
package/RELEASE_NOTES.md CHANGED
@@ -1,3 +1,6 @@
1
+ * v0.6.2 : Fixed package.json files
2
+ * v0.6.1 : TypeScript rewrite & support
3
+ * v0.6.0 : Language support
1
4
  * v0.5.6 : Fixed issue #25 which was preventing at symbols from being used in data tables
2
5
  * v0.5.5 : Changed dynamic import statements to static ones so that Vitest watch works correctly
3
6
  * v0.5.4 : Added vue test
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=config.js.map
@@ -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"}
@@ -0,0 +1,18 @@
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 generateExample = (config, example) => {
6
+ log.debug(`generateExample config: ${JSON.stringify(config)} example: ${JSON.stringify(example)}`);
7
+ var tests = '';
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' : '';
11
+ const code = ` // tags : ${JSON.stringify(example.tags)}
12
+ describe${skip}('${escape(example.type.name)}: ${escape(example.name)}', () => {${tests}
13
+ });
14
+ `;
15
+ return code;
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,3 @@
1
+ import { generateFeature } from './feature.js';
2
+ export { generateFeature };
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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,3 @@
1
+ import { generateFeature } from './feature.js';
2
+ export { generateFeature };
3
+ //# sourceMappingURL=index.js.map
@@ -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,5 @@
1
+ import { Rule } from '../statement.js';
2
+ import { VitestCucumberPluginConfig } from '../config.js';
3
+ declare const generateRule: (config: VitestCucumberPluginConfig, rule: Rule) => string;
4
+ export { generateRule };
5
+ //# sourceMappingURL=rule.d.ts.map
@@ -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"}
@@ -0,0 +1,19 @@
1
+ import _ from 'lodash/fp.js';
2
+ import { escape, shouldSkip } from './util.js';
3
+ import { log } from '../logger.js';
4
+ import { generateExample } from './example.js';
5
+ const generateRule = (config, rule) => {
6
+ log.debug(`generateRule config: ${JSON.stringify(config)} rule: ${JSON.stringify(rule)}`);
7
+ const examplesCode = _.reduce((examplesCode, example) => {
8
+ return examplesCode + generateExample(config, example);
9
+ }, '')(rule.examples);
10
+ const skip = shouldSkip(config, rule.tags) ? '.skip' : '';
11
+ const tagsStr = JSON.stringify(rule.tags);
12
+ const code = ` // tags : ${tagsStr}
13
+ describe${skip}('${escape(rule.type.name)}: ${escape(rule.name)}', () => {
14
+ ${examplesCode}});
15
+ `;
16
+ return code;
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,4 @@
1
+ import { StepStatement } from '../statement.js';
2
+ declare const generateTests: (steps: StepStatement[], parameterMap: Record<string, string>, tags?: string[], extraIndent?: string) => string;
3
+ export { generateTests };
4
+ //# sourceMappingURL=tests.d.ts.map
@@ -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,9 +2,8 @@ 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) => {
7
- log.debug('generateTests steps : '+JSON.stringify(steps));
5
+ const generateTests = (steps, parameterMap, tags, extraIndent) => {
6
+ log.debug(`generateTests steps : ${JSON.stringify(steps)}`);
8
7
  const tagsStr = JSON.stringify(tags);
9
8
  const indent = extraIndent ? extraIndent : '';
10
9
  let tests = `
@@ -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 = ( parameterMap ? parameterizeText(step.text,parameterMap) : step.text);
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 = 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"}
@@ -0,0 +1,9 @@
1
+ import { log } from '../logger.js';
2
+ const escape = (str) => str.replace(/'/g, "\\'");
3
+ const shouldSkip = (config, tags) => {
4
+ const result = !config.tagsFunction(tags);
5
+ log.debug(`shouldSkip? ${result} tags: ${JSON.stringify(tags)}`);
6
+ return result;
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"}