@sun-asterisk/sungen 3.2.33 → 3.2.34

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 (210) hide show
  1. package/dist/cli/commands/audit.d.ts +4 -0
  2. package/dist/cli/commands/audit.d.ts.map +1 -1
  3. package/dist/cli/commands/audit.js +16 -3
  4. package/dist/cli/commands/audit.js.map +1 -1
  5. package/dist/cli/commands/changed.d.ts.map +1 -1
  6. package/dist/cli/commands/changed.js +2 -3
  7. package/dist/cli/commands/changed.js.map +1 -1
  8. package/dist/cli/commands/dashboard.d.ts.map +1 -1
  9. package/dist/cli/commands/dashboard.js +2 -28
  10. package/dist/cli/commands/dashboard.js.map +1 -1
  11. package/dist/cli/commands/delivery.d.ts.map +1 -1
  12. package/dist/cli/commands/delivery.js +40 -35
  13. package/dist/cli/commands/delivery.js.map +1 -1
  14. package/dist/cli/commands/results-merge.d.ts +9 -0
  15. package/dist/cli/commands/results-merge.d.ts.map +1 -1
  16. package/dist/cli/commands/results-merge.js +7 -0
  17. package/dist/cli/commands/results-merge.js.map +1 -1
  18. package/dist/cli/commands/select.d.ts +12 -0
  19. package/dist/cli/commands/select.d.ts.map +1 -0
  20. package/dist/cli/commands/select.js +122 -0
  21. package/dist/cli/commands/select.js.map +1 -0
  22. package/dist/cli/commands/update.d.ts.map +1 -1
  23. package/dist/cli/commands/update.js +3 -0
  24. package/dist/cli/commands/update.js.map +1 -1
  25. package/dist/cli/index.js +7 -2
  26. package/dist/cli/index.js.map +1 -1
  27. package/dist/dashboard/templates/index.html +1 -1
  28. package/dist/dashboard/types.d.ts +1 -0
  29. package/dist/dashboard/types.d.ts.map +1 -1
  30. package/dist/exporters/csv-exporter.d.ts.map +1 -1
  31. package/dist/exporters/csv-exporter.js +11 -10
  32. package/dist/exporters/csv-exporter.js.map +1 -1
  33. package/dist/exporters/json-exporter.d.ts.map +1 -1
  34. package/dist/exporters/json-exporter.js +7 -0
  35. package/dist/exporters/json-exporter.js.map +1 -1
  36. package/dist/exporters/manual-hybrid-oracle.d.ts +54 -0
  37. package/dist/exporters/manual-hybrid-oracle.d.ts.map +1 -0
  38. package/dist/exporters/manual-hybrid-oracle.js +114 -0
  39. package/dist/exporters/manual-hybrid-oracle.js.map +1 -0
  40. package/dist/exporters/matrix/build.d.ts.map +1 -1
  41. package/dist/exporters/matrix/build.js +6 -2
  42. package/dist/exporters/matrix/build.js.map +1 -1
  43. package/dist/exporters/matrix/export.d.ts +3 -0
  44. package/dist/exporters/matrix/export.d.ts.map +1 -1
  45. package/dist/exporters/matrix/export.js +1 -0
  46. package/dist/exporters/matrix/export.js.map +1 -1
  47. package/dist/exporters/matrix/gates.js +6 -0
  48. package/dist/exporters/matrix/gates.js.map +1 -1
  49. package/dist/exporters/matrix/render-testcase-sheet.d.ts.map +1 -1
  50. package/dist/exporters/matrix/render-testcase-sheet.js +10 -4
  51. package/dist/exporters/matrix/render-testcase-sheet.js.map +1 -1
  52. package/dist/exporters/matrix/types.d.ts +8 -1
  53. package/dist/exporters/matrix/types.d.ts.map +1 -1
  54. package/dist/exporters/matrix/types.js.map +1 -1
  55. package/dist/exporters/matrix/wording.d.ts +1 -1
  56. package/dist/exporters/matrix/wording.d.ts.map +1 -1
  57. package/dist/exporters/matrix/wording.js +10 -1
  58. package/dist/exporters/matrix/wording.js.map +1 -1
  59. package/dist/exporters/run-environment.d.ts +32 -0
  60. package/dist/exporters/run-environment.d.ts.map +1 -0
  61. package/dist/exporters/run-environment.js +125 -0
  62. package/dist/exporters/run-environment.js.map +1 -0
  63. package/dist/exporters/scenario-merger.d.ts +18 -0
  64. package/dist/exporters/scenario-merger.d.ts.map +1 -1
  65. package/dist/exporters/scenario-merger.js +47 -3
  66. package/dist/exporters/scenario-merger.js.map +1 -1
  67. package/dist/exporters/test-data-resolver.d.ts +0 -4
  68. package/dist/exporters/test-data-resolver.d.ts.map +1 -1
  69. package/dist/exporters/test-data-resolver.js +0 -7
  70. package/dist/exporters/test-data-resolver.js.map +1 -1
  71. package/dist/generators/gherkin-parser/index.d.ts +11 -4
  72. package/dist/generators/gherkin-parser/index.d.ts.map +1 -1
  73. package/dist/generators/gherkin-parser/index.js +49 -19
  74. package/dist/generators/gherkin-parser/index.js.map +1 -1
  75. package/dist/generators/test-generator/adapters/adapter-interface.d.ts +4 -0
  76. package/dist/generators/test-generator/adapters/adapter-interface.d.ts.map +1 -1
  77. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/click-select-action.hbs +1 -1
  78. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/select-action.hbs +1 -1
  79. package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/pick-option.hbs +13 -0
  80. package/dist/generators/test-generator/adapters/playwright/templates/test-file.hbs +16 -0
  81. package/dist/generators/test-generator/code-generator.d.ts.map +1 -1
  82. package/dist/generators/test-generator/code-generator.js +23 -2
  83. package/dist/generators/test-generator/code-generator.js.map +1 -1
  84. package/dist/generators/test-generator/diagnostics.d.ts +3 -1
  85. package/dist/generators/test-generator/diagnostics.d.ts.map +1 -1
  86. package/dist/generators/test-generator/diagnostics.js +3 -1
  87. package/dist/generators/test-generator/diagnostics.js.map +1 -1
  88. package/dist/harness/audit.d.ts +3 -0
  89. package/dist/harness/audit.d.ts.map +1 -1
  90. package/dist/harness/audit.js +17 -8
  91. package/dist/harness/audit.js.map +1 -1
  92. package/dist/harness/data-driven-lint.d.ts.map +1 -1
  93. package/dist/harness/data-driven-lint.js +69 -27
  94. package/dist/harness/data-driven-lint.js.map +1 -1
  95. package/dist/harness/next-step.d.ts.map +1 -1
  96. package/dist/harness/next-step.js +1 -0
  97. package/dist/harness/next-step.js.map +1 -1
  98. package/dist/harness/parse.d.ts +24 -0
  99. package/dist/harness/parse.d.ts.map +1 -1
  100. package/dist/harness/parse.js +117 -13
  101. package/dist/harness/parse.js.map +1 -1
  102. package/dist/harness/quality-gates.d.ts.map +1 -1
  103. package/dist/harness/quality-gates.js +6 -4
  104. package/dist/harness/quality-gates.js.map +1 -1
  105. package/dist/harness/read-text.d.ts +15 -0
  106. package/dist/harness/read-text.d.ts.map +1 -1
  107. package/dist/harness/read-text.js +25 -0
  108. package/dist/harness/read-text.js.map +1 -1
  109. package/dist/harness/select-by-ids.d.ts +31 -0
  110. package/dist/harness/select-by-ids.d.ts.map +1 -0
  111. package/dist/harness/select-by-ids.js +106 -0
  112. package/dist/harness/select-by-ids.js.map +1 -0
  113. package/dist/harness/sensors.d.ts +8 -1
  114. package/dist/harness/sensors.d.ts.map +1 -1
  115. package/dist/harness/sensors.js +61 -9
  116. package/dist/harness/sensors.js.map +1 -1
  117. package/dist/harness/spec-branches.js +1 -1
  118. package/dist/harness/spec-branches.js.map +1 -1
  119. package/dist/harness/ui-inventory.d.ts +40 -0
  120. package/dist/harness/ui-inventory.d.ts.map +1 -0
  121. package/dist/harness/ui-inventory.js +191 -0
  122. package/dist/harness/ui-inventory.js.map +1 -0
  123. package/dist/harness/viewpoint-ledger.d.ts.map +1 -1
  124. package/dist/harness/viewpoint-ledger.js +64 -9
  125. package/dist/harness/viewpoint-ledger.js.map +1 -1
  126. package/dist/orchestrator/screen-manager.d.ts.map +1 -1
  127. package/dist/orchestrator/screen-manager.js +3 -11
  128. package/dist/orchestrator/screen-manager.js.map +1 -1
  129. package/dist/orchestrator/templates/ai-src/agents/discovery.md +11 -3
  130. package/dist/orchestrator/templates/ai-src/agents/reviewer.md +8 -0
  131. package/dist/orchestrator/templates/ai-src/commands/create-test.md +2 -2
  132. package/dist/orchestrator/templates/ai-src/commands/review.md +2 -2
  133. package/dist/orchestrator/templates/ai-src/commands/run-test.md +70 -13
  134. package/dist/orchestrator/templates/ai-src/skills/sungen-capture/mode-local.md +2 -2
  135. package/dist/orchestrator/templates/ai-src/skills/sungen-error-mapping/SKILL.md +20 -0
  136. package/dist/orchestrator/templates/ai-src/skills/sungen-gherkin-syntax/SKILL.md +17 -8
  137. package/dist/orchestrator/templates/ai-src/skills/sungen-selector-fix/SKILL.md +58 -14
  138. package/dist/orchestrator/templates/ai-src/skills/sungen-tc-generation/SKILL.md +41 -1
  139. package/dist/orchestrator/templates/ai-src/skills/sungen-tc-review/SKILL.md +7 -0
  140. package/dist/orchestrator/templates/playwright.config.ts +4 -2
  141. package/dist/orchestrator/templates/specs-url-assert.d.ts.map +1 -1
  142. package/dist/orchestrator/templates/specs-url-assert.js +24 -2
  143. package/dist/orchestrator/templates/specs-url-assert.js.map +1 -1
  144. package/dist/orchestrator/templates/specs-url-assert.ts +23 -2
  145. package/dist/orchestrator/trace-mode-install.d.ts +14 -0
  146. package/dist/orchestrator/trace-mode-install.d.ts.map +1 -0
  147. package/dist/orchestrator/trace-mode-install.js +132 -0
  148. package/dist/orchestrator/trace-mode-install.js.map +1 -0
  149. package/dist/orchestrator/viewpoint-pattern-catalog.d.ts +20 -0
  150. package/dist/orchestrator/viewpoint-pattern-catalog.d.ts.map +1 -0
  151. package/dist/orchestrator/viewpoint-pattern-catalog.js +45 -0
  152. package/dist/orchestrator/viewpoint-pattern-catalog.js.map +1 -0
  153. package/package.json +3 -3
  154. package/src/cli/commands/audit.ts +14 -3
  155. package/src/cli/commands/changed.ts +2 -4
  156. package/src/cli/commands/dashboard.ts +1 -26
  157. package/src/cli/commands/delivery.ts +37 -32
  158. package/src/cli/commands/results-merge.ts +7 -1
  159. package/src/cli/commands/select.ts +88 -0
  160. package/src/cli/commands/update.ts +3 -0
  161. package/src/cli/index.ts +7 -2
  162. package/src/dashboard/templates/index.html +1 -1
  163. package/src/dashboard/types.ts +1 -0
  164. package/src/exporters/csv-exporter.ts +7 -10
  165. package/src/exporters/json-exporter.ts +6 -1
  166. package/src/exporters/manual-hybrid-oracle.ts +112 -0
  167. package/src/exporters/matrix/build.ts +6 -2
  168. package/src/exporters/matrix/export.ts +4 -0
  169. package/src/exporters/matrix/gates.ts +6 -0
  170. package/src/exporters/matrix/render-testcase-sheet.ts +10 -4
  171. package/src/exporters/matrix/types.ts +8 -1
  172. package/src/exporters/matrix/wording.ts +10 -1
  173. package/src/exporters/run-environment.ts +89 -0
  174. package/src/exporters/scenario-merger.ts +49 -4
  175. package/src/exporters/test-data-resolver.ts +0 -6
  176. package/src/generators/gherkin-parser/index.ts +50 -18
  177. package/src/generators/test-generator/adapters/adapter-interface.ts +4 -0
  178. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/click-select-action.hbs +1 -1
  179. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/select-action.hbs +1 -1
  180. package/src/generators/test-generator/adapters/playwright/templates/steps/partials/pick-option.hbs +13 -0
  181. package/src/generators/test-generator/adapters/playwright/templates/test-file.hbs +16 -0
  182. package/src/generators/test-generator/code-generator.ts +23 -2
  183. package/src/generators/test-generator/diagnostics.ts +3 -1
  184. package/src/harness/audit.ts +20 -9
  185. package/src/harness/data-driven-lint.ts +82 -24
  186. package/src/harness/next-step.ts +1 -0
  187. package/src/harness/parse.ts +123 -16
  188. package/src/harness/quality-gates.ts +6 -4
  189. package/src/harness/read-text.ts +25 -0
  190. package/src/harness/select-by-ids.ts +83 -0
  191. package/src/harness/sensors.ts +59 -9
  192. package/src/harness/spec-branches.ts +1 -1
  193. package/src/harness/ui-inventory.ts +164 -0
  194. package/src/harness/viewpoint-ledger.ts +57 -11
  195. package/src/orchestrator/screen-manager.ts +3 -11
  196. package/src/orchestrator/templates/ai-src/agents/discovery.md +11 -3
  197. package/src/orchestrator/templates/ai-src/agents/reviewer.md +8 -0
  198. package/src/orchestrator/templates/ai-src/commands/create-test.md +2 -2
  199. package/src/orchestrator/templates/ai-src/commands/review.md +2 -2
  200. package/src/orchestrator/templates/ai-src/commands/run-test.md +70 -13
  201. package/src/orchestrator/templates/ai-src/skills/sungen-capture/mode-local.md +2 -2
  202. package/src/orchestrator/templates/ai-src/skills/sungen-error-mapping/SKILL.md +20 -0
  203. package/src/orchestrator/templates/ai-src/skills/sungen-gherkin-syntax/SKILL.md +17 -8
  204. package/src/orchestrator/templates/ai-src/skills/sungen-selector-fix/SKILL.md +58 -14
  205. package/src/orchestrator/templates/ai-src/skills/sungen-tc-generation/SKILL.md +41 -1
  206. package/src/orchestrator/templates/ai-src/skills/sungen-tc-review/SKILL.md +7 -0
  207. package/src/orchestrator/templates/playwright.config.ts +4 -2
  208. package/src/orchestrator/templates/specs-url-assert.ts +23 -2
  209. package/src/orchestrator/trace-mode-install.ts +94 -0
  210. package/src/orchestrator/viewpoint-pattern-catalog.ts +58 -0
@@ -33,6 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.PRIORITY_WORDS = exports.NON_DECLARATION_SECTION = void 0;
36
37
  exports.isIdLike = isIdLike;
37
38
  exports.idPrefix = idPrefix;
38
39
  exports.parseViewpointOverview = parseViewpointOverview;
@@ -50,6 +51,37 @@ const fs = __importStar(require("fs"));
50
51
  const gherkin_parser_1 = require("../generators/gherkin-parser");
51
52
  const read_text_1 = require("./read-text");
52
53
  const unit_paths_1 = require("./unit-paths");
54
+ /**
55
+ * Whole SECTIONS that declare something ABOUT the checklist rather than listing claims or
56
+ * viewpoints — known issues, traceability indexes, references, changelogs. Shared by the atomic
57
+ * ledger (their rows are not claims to prove, #630) and the viewpoint-overview parser (an id
58
+ * listed there is a reference, not a declaration, #833). `UI Patterns Identified` is the author's
59
+ * pick of WHICH sungen-viewpoint patterns apply — a `Skip` row there is not a claim to cover (#841).
60
+ * A `How to run` / `Procedure` section — that exact heading, optionally naming one id — is a manual
61
+ * check's steps, not claims of its own (#855); `How to test the login flow` stays a normal section.
62
+ */
63
+ exports.NON_DECLARATION_SECTION = /^(?:(?:ui patterns?(?: identified)?|(?:how to (?:run|test|reproduce|verify)|(?:manual )?procedures?)(?:\s+(?:vp|fl)-[^\s:]+)?)\s*:?$|(?:known issues?|open questions?|deferred|out of scope|viewpoint grouping|traceability|metadata|scope|journey phases?|revision history|references?|sources?|changelog)\b)/i;
64
+ /**
65
+ * Every word a viewpoint row may declare as its priority — ONE list for the overview parser, the
66
+ * atomic ledger and the integrity checks, which each carried their own copy and all missed the
67
+ * `Skip` that the `sungen add` / `add-flow` scaffolds themselves suggest (#853). `deferred` and the
68
+ * not-applicable words are declarations as well: such a row is not a claim to cover.
69
+ */
70
+ exports.PRIORITY_WORDS = 'critical|high|medium|normal|low|deferred|skip(?:ped)?|n\\/a|none|not applicable';
71
+ /** "Declared not applicable" — folded to `skip` so every consumer checks one word. */
72
+ const NOT_APPLICABLE = /^(?:skip(?:ped)?|n\/a|none|not applicable)$/i;
73
+ // The whole cell must BE the word (emphasis aside), as the old `| VP-… | high |` scan required:
74
+ // "Low risk" or "Not high" declares no priority.
75
+ const PRIORITY_WORD = new RegExp(`^[\\s*_\`]*(${exports.PRIORITY_WORDS})[\\s*_\`.]*$`, 'i');
76
+ /** Header names of a priority column, in the languages viewpoint files are written in. */
77
+ const PRIORITY_HEADER = /^(?:priority|pri|level|severity|優先度?|độ ưu tiên|ưu tiên)(?:\s|\(|$)/i;
78
+ /** A priority cell → the folded level plus the word as written. */
79
+ function priorityOf(cell) {
80
+ const raw = cell.match(PRIORITY_WORD)?.[1].toLowerCase();
81
+ const word = raw && NOT_APPLICABLE.test(raw) ? 'skip' : raw;
82
+ const priority = /high/i.test(cell) ? 'High' : /medium/i.test(cell) ? 'Medium' : /low/i.test(cell) ? 'Low' : 'Unknown';
83
+ return word ? { priority, priorityWord: word } : { priority };
84
+ }
53
85
  /** Format-tolerant: is this token an ID (project's scheme), not a prose word?
54
86
  * Accepts VP0, VP0-001, MS-HP-001, TV-01, VP-LIST-001 — requires a digit + uppercase start. */
55
87
  function isIdLike(s) {
@@ -104,7 +136,7 @@ function headingParts(line) {
104
136
  function parseViewpointOverview(filePath) {
105
137
  if (!fs.existsSync(filePath))
106
138
  return [];
107
- const text = (0, read_text_1.readTextFile)(filePath);
139
+ const text = (0, read_text_1.readViewpointText)(filePath);
108
140
  const lines = text.split('\n');
109
141
  const entries = new Map();
110
142
  // 1) Priority Viewpoints table: | VP | Priority | Reason |
@@ -126,8 +158,7 @@ function parseViewpointOverview(filePath) {
126
158
  // and an id read with its emphasis markers still attached matches no scenario tag.
127
159
  const id = cells[0].replace(/[*`]/g, '').trim();
128
160
  if (isViewpointId(id) && !/^-+$/.test(cells[1])) {
129
- const pr = /high/i.test(cells[1]) ? 'High' : /medium/i.test(cells[1]) ? 'Medium' : /low/i.test(cells[1]) ? 'Low' : 'Unknown';
130
- entries.set(id.toUpperCase(), { id: id.toUpperCase(), priority: pr, reason: cells[2] });
161
+ entries.set(id.toUpperCase(), { id: id.toUpperCase(), ...priorityOf(cells[1]), reason: cells[2] });
131
162
  }
132
163
  }
133
164
  }
@@ -185,6 +216,59 @@ function parseViewpointOverview(filePath) {
185
216
  }
186
217
  }
187
218
  }
219
+ // 3) ID-first tables (#833): per-axis tables such as `| ID | Priority | Input | Expected |`.
220
+ // A row whose FIRST cell is a viewpoint id declares that id — the same rows the
221
+ // PRIORITY-CONTRADICTED check always read, so the two readers now agree. Kept narrow on purpose,
222
+ // because a viewpoint file also holds tables that only MENTION ids:
223
+ // - the id must be a `VP-`/`FL-` id, or belong to a family this file already declared above
224
+ // (`MS-HP` in Priority Viewpoints → `MS-HP-001`); `TC-01`, `FR-001`, `ISO-27001` never are;
225
+ // - reference sections (Known Issues, Traceability…) are skipped WITH their subsections, the
226
+ // way the ledger inherits the exclusion (#657), and fenced blocks are skipped;
227
+ // - the header is the row directly above a `|---|` separator (structure, not guessed words);
228
+ // its Priority column (any position, any alias) gives the priority, else column 2 does, as
229
+ // the old scan read it;
230
+ // - `reason` stays empty: viewpoint reasons feed page-type detection, and these rows were never
231
+ // entries before — the page type of an untouched file must not move.
232
+ const declaredFamilies = [...entries.keys()];
233
+ const familyOk = (id) => /^(?:VP|FL)-/i.test(id) || declaredFamilies.some((f) => id.startsWith(`${f}-`) || id === f);
234
+ const isSeparator = (l) => /^\|[\s|:-]+\|?$/.test(l) && l.includes('-');
235
+ let excludedAt = null;
236
+ let inFence = false;
237
+ let priorityCol = 1;
238
+ for (let i = 0; i < lines.length; i++) {
239
+ const line = lines[i].trim();
240
+ if (/^(```|~~~)/.test(line)) {
241
+ inFence = !inFence;
242
+ continue;
243
+ }
244
+ if (inFence)
245
+ continue;
246
+ const head = headingParts(line);
247
+ if (head) {
248
+ if (excludedAt !== null && head.level > excludedAt)
249
+ continue; // subsection inherits
250
+ const text = head.text.replace(/[*`]/g, '').trim();
251
+ excludedAt = /^Priority Viewpoints/i.test(text) || exports.NON_DECLARATION_SECTION.test(text) ? head.level : null;
252
+ continue;
253
+ }
254
+ if (excludedAt !== null || !line.startsWith('|') || isSeparator(line))
255
+ continue;
256
+ const cells = line.split('|').map((c) => c.trim()).filter((_, k, a) => k > 0 && k < a.length - 1);
257
+ if (isSeparator((lines[i + 1] ?? '').trim())) { // header row
258
+ const col = cells.findIndex((c) => PRIORITY_HEADER.test(c.replace(/[*`]/g, '').trim()));
259
+ priorityCol = col >= 0 ? col : 1;
260
+ continue;
261
+ }
262
+ const id = (cells[0] ?? '').replace(/[*`]/g, '').trim().toUpperCase();
263
+ if (!isViewpointId(id) || !familyOk(id))
264
+ continue;
265
+ const declared = priorityOf(cells[priorityCol] ?? '');
266
+ const existing = entries.get(id);
267
+ if (!existing)
268
+ entries.set(id, { id, ...declared, reason: '' });
269
+ else if (!existing.priorityWord && declared.priorityWord)
270
+ existing.priorityWord = declared.priorityWord;
271
+ }
188
272
  return [...entries.values()];
189
273
  }
190
274
  // ---------- .feature ----------
@@ -267,15 +351,13 @@ function classifyScenario(sc) {
267
351
  last = kw;
268
352
  textParts.push(step.text);
269
353
  stepTextParts.push(step.text);
270
- orderedSteps.push({ bucket: (kw === 'And' || kw === 'But' ? last : kw).toLowerCase(), text: step.text });
271
- // normalized skeleton: keep [refs] (distinct targets = distinct tests),
272
- // but neutralize {{vars}} and quoted values so EP/data families collapse.
273
- const skel = step.text
274
- .replace(/\{\{[^}]*\}\}/g, '{}')
275
- .replace(/"[^"]*"/g, '""')
276
- .replace(/\s+/g, ' ')
277
- .trim()
278
- .toLowerCase();
354
+ // The data table is part of what a step says (#817): `User see tab order:` with [FieldA]→[Cancel]
355
+ // and with [Save]→[Close] are different tests, and comparing step text alone called them exact
356
+ // duplicates and one oracle asserted N times. Kept OUT of `text`, which the claim/keyword sensors
357
+ // read as prose.
358
+ const arg = tableArg(step);
359
+ orderedSteps.push({ bucket: (kw === 'And' || kw === 'But' ? last : kw).toLowerCase(), text: step.text, ...(arg ? { arg } : {}) });
360
+ const skel = skeletonOf(step.text) + (arg ? ` ${skeletonOf(arg)}` : '');
279
361
  skeletonParts.push(`${kw === 'And' || kw === 'But' ? last : kw}:${skel}`);
280
362
  if (last === 'Then') {
281
363
  thenCount++;
@@ -321,9 +403,11 @@ function loadScenarios(featurePath) {
321
403
  return [];
322
404
  const parser = new gherkin_parser_1.GherkinParser();
323
405
  const feature = parser.parseFeatureFile(featurePath);
406
+ // Kept apart from `manual` so the audit's accounting is unchanged; only `select` reads it.
407
+ const featureManual = (feature.tags || []).some((t) => /^@manual\b/i.test(t)) || undefined;
324
408
  return (feature.scenarios || [])
325
409
  .filter((s) => !s.stepsName && !s.hookType) // skip @steps/@hook blocks
326
- .map((s) => ({ ...classifyScenario(withBackground(s, feature.background)), sourceFile: featurePath }));
410
+ .map((s) => ({ ...classifyScenario(withBackground(s, feature.background)), sourceFile: featurePath, featureManual }));
327
411
  }
328
412
  /**
329
413
  * Scenarios of a WHOLE unit — every `.feature` in its features/ directory, not just the
@@ -344,4 +428,24 @@ function readUnitFeatureText(unitDir, unit) {
344
428
  .map((p) => (0, read_text_1.readTextFile)(p))
345
429
  .join('\n');
346
430
  }
431
+ /**
432
+ * Normalised skeleton of step text: keep [refs] (distinct targets = distinct tests), but neutralise
433
+ * {{vars}} and quoted values so EP/data families collapse.
434
+ */
435
+ function skeletonOf(text) {
436
+ return text
437
+ .replace(/\{\{[^}]*\}\}/g, '{}')
438
+ .replace(/"[^"]*"/g, '""')
439
+ .replace(/\s+/g, ' ')
440
+ .trim()
441
+ .toLowerCase();
442
+ }
443
+ /** A step's data table as one comparable string — `<h1|h2 / c1|c2 / …>` — or undefined. */
444
+ function tableArg(step) {
445
+ const t = step.dataTable;
446
+ if (!t || (!t.headers.length && !t.rows.length))
447
+ return undefined;
448
+ const rows = [t.headers, ...t.rows.map((r) => r.cells)].map((cells) => cells.map((c) => c.trim()).join('|'));
449
+ return `<${rows.join(' / ')}>`;
450
+ }
347
451
  //# sourceMappingURL=parse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/harness/parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/harness/parse.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"quality-gates.d.ts","sourceRoot":"","sources":["../../src/harness/quality-gates.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAA2B,MAAM,SAAS,CAAC;AAMhE,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAChD;;;;;;OAMG;IACH,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC3C;AAkCD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,SAAS,GAAG,OAAO,CAclG;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAMpF;AAkBD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAOnE;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,WAAW,SAAK,GAC5D,gBAAgB,CA4DlB;AAID,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAMD,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,CAgCpE;AAMD,+GAA+G;AAC/G,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,MAAM,EAAE,CAStE;AAID;kFACkF;AAClF,wBAAgB,YAAY,CAAC,SAAS,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAqBxJ;AAID,MAAM,WAAW,eAAe;IAAG,UAAU,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE;AAErF,kGAAkG;AAClG,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,eAAe,CAyBpG;AAGD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1C"}
1
+ {"version":3,"file":"quality-gates.d.ts","sourceRoot":"","sources":["../../src/harness/quality-gates.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAA2B,MAAM,SAAS,CAAC;AAOhE,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAChD;;;;;;OAMG;IACH,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC3C;AAkCD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,SAAS,GAAG,OAAO,CAclG;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAMpF;AAkBD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAOnE;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,WAAW,SAAK,GAC5D,gBAAgB,CA4DlB;AAID,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAMD,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,CAiCpE;AAMD,+GAA+G;AAC/G,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,MAAM,EAAE,CAStE;AAID;kFACkF;AAClF,wBAAgB,YAAY,CAAC,SAAS,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAqBxJ;AAID,MAAM,WAAW,eAAe;IAAG,UAAU,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE;AAErF,kGAAkG;AAClG,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,eAAe,CAyBpG;AAGD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1C"}
@@ -52,6 +52,7 @@ const path = __importStar(require("path"));
52
52
  const keyword_match_1 = require("./keyword-match");
53
53
  const parse_1 = require("./parse");
54
54
  const scenario_merger_1 = require("../exporters/scenario-merger");
55
+ const manual_hybrid_oracle_1 = require("../exporters/manual-hybrid-oracle");
55
56
  const read_text_1 = require("./read-text");
56
57
  /** Routes the spec hands off to (Navigation Flow / success), other than the screen's own route. */
57
58
  function downstreamRoutes(specText) {
@@ -248,15 +249,16 @@ function manualOracle(featureText) {
248
249
  // Observable:/Oracle:/Expected: line (parseManualComments — the SAME parser the
249
250
  // delivery exporter uses, so this gate can't drift from the exported cells).
250
251
  // Prose paragraphs / rationale-only comments export EMPTY Steps + Expected.
252
+ // • HAS a Then whose every assertion is a bare presence placeholder, with the real oracle
253
+ // in the comments (#810) — the same hybrid wearing a Then (manual-hybrid-oracle.ts, the
254
+ // SAME predicate as compile-time SG-W008).
251
255
  const hasGherkinSteps = /^\s*(Given|When|Then)\s/m.test(b);
256
+ const commentLines = (0, manual_hybrid_oracle_1.commentLinesOf)(b);
252
257
  let bad;
253
258
  if (hasGherkinSteps) {
254
- bad = !/^\s*Then\s/m.test(b);
259
+ bad = !/^\s*Then\s/m.test(b) || (0, manual_hybrid_oracle_1.isPresencePlaceholderHybrid)((0, manual_hybrid_oracle_1.keywordStepsOf)(b), commentLines);
255
260
  }
256
261
  else {
257
- const commentLines = b.split('\n')
258
- .filter((l) => /^\s*#/.test(l))
259
- .map((l) => l.replace(/^\s*#\s?/, ''));
260
262
  const parsed = (0, scenario_merger_1.parseManualComments)(commentLines);
261
263
  bad = !parsed.steps.length || !parsed.expected.length;
262
264
  }
@@ -1 +1 @@
1
- {"version":3,"file":"quality-gates.js","sourceRoot":"","sources":["../../src/harness/quality-gates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quality-gates.js","sourceRoot":"","sources":["../../src/harness/quality-gates.ts"],"names":[],"mappings":"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"}
@@ -25,4 +25,19 @@
25
25
  export declare function readTextFile(filePath: string): string;
26
26
  /** `readTextFile` split into lines — the common case for line-anchored parsers. */
27
27
  export declare function readTextLines(filePath: string): string[];
28
+ /**
29
+ * Drop HTML comments (`<!-- … -->`, multi-line too) — they are author notes and scaffold samples,
30
+ * never content. Newlines inside a comment are kept so every later line keeps its position (#841).
31
+ *
32
+ * Only a CLOSED comment is dropped. An unclosed `<!--` (a forgotten `-->`) stays text: dropping it
33
+ * to the end of the file would silently delete every declaration below it. A fenced code block is
34
+ * content, and so is a `<!--` written inside backticks: both are how a document SHOWS the syntax.
35
+ */
36
+ export declare function stripHtmlComments(text: string): string;
37
+ /**
38
+ * `test-viewpoint.md` as every harness sensor must read it: normalised, comments removed, and
39
+ * '' when the unit has none. `sungen add` scaffolds its samples inside `<!-- -->`; read raw, an
40
+ * untouched scaffold declared VP-UI/VP-VAL/VP-LOGIC/VP-SEC and carried 12 phantom claims (#841).
41
+ */
42
+ export declare function readViewpointText(filePath: string): string;
28
43
  //# sourceMappingURL=read-text.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"read-text.d.ts","sourceRoot":"","sources":["../../src/harness/read-text.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAExD"}
1
+ {"version":3,"file":"read-text.d.ts","sourceRoot":"","sources":["../../src/harness/read-text.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAExD;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMtD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE1D"}
@@ -35,6 +35,8 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.readTextFile = readTextFile;
37
37
  exports.readTextLines = readTextLines;
38
+ exports.stripHtmlComments = stripHtmlComments;
39
+ exports.readViewpointText = readViewpointText;
38
40
  const fs = __importStar(require("fs"));
39
41
  /**
40
42
  * Read a user-authored text file with line endings NORMALISED to `\n`.
@@ -67,4 +69,27 @@ function readTextFile(filePath) {
67
69
  function readTextLines(filePath) {
68
70
  return readTextFile(filePath).split('\n');
69
71
  }
72
+ /**
73
+ * Drop HTML comments (`<!-- … -->`, multi-line too) — they are author notes and scaffold samples,
74
+ * never content. Newlines inside a comment are kept so every later line keeps its position (#841).
75
+ *
76
+ * Only a CLOSED comment is dropped. An unclosed `<!--` (a forgotten `-->`) stays text: dropping it
77
+ * to the end of the file would silently delete every declaration below it. A fenced code block is
78
+ * content, and so is a `<!--` written inside backticks: both are how a document SHOWS the syntax.
79
+ */
80
+ function stripHtmlComments(text) {
81
+ // A comment body never holds another `<!--`: an opener with no `-->` before the next opener is
82
+ // the unclosed one, and must not reach a LATER comment's closer and eat everything between.
83
+ const blank = (s) => s.replace(/(?<!`)<!--(?:(?!<!--)[\s\S])*?-->/g, (m) => m.replace(/[^\n]/g, ''));
84
+ // split() with a capture group keeps the fences at the odd indexes.
85
+ return text.split(/(^```[^\n]*\n[\s\S]*?^```[^\n]*$)/m).map((part, i) => (i % 2 ? part : blank(part))).join('');
86
+ }
87
+ /**
88
+ * `test-viewpoint.md` as every harness sensor must read it: normalised, comments removed, and
89
+ * '' when the unit has none. `sungen add` scaffolds its samples inside `<!-- -->`; read raw, an
90
+ * untouched scaffold declared VP-UI/VP-VAL/VP-LOGIC/VP-SEC and carried 12 phantom claims (#841).
91
+ */
92
+ function readViewpointText(filePath) {
93
+ return fs.existsSync(filePath) ? stripHtmlComments(readTextFile(filePath)) : '';
94
+ }
70
95
  //# sourceMappingURL=read-text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"read-text.js","sourceRoot":"","sources":["../../src/harness/read-text.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,oCAEC;AAGD,sCAEC;AAjCD,uCAAyB;AAEzB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAgB,YAAY,CAAC,QAAgB;IAC3C,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC3F,CAAC;AAED,mFAAmF;AACnF,SAAgB,aAAa,CAAC,QAAgB;IAC5C,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"read-text.js","sourceRoot":"","sources":["../../src/harness/read-text.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,oCAEC;AAGD,sCAEC;AAUD,8CAMC;AAOD,8CAEC;AA1DD,uCAAyB;AAEzB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAgB,YAAY,CAAC,QAAgB;IAC3C,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC3F,CAAC;AAED,mFAAmF;AACnF,SAAgB,aAAa,CAAC,QAAgB;IAC5C,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAAC,IAAY;IAC5C,+FAA+F;IAC/F,4FAA4F;IAC5F,MAAM,KAAK,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,oCAAoC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;IACrH,oEAAoE;IACpE,OAAO,IAAI,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClH,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,QAAgB;IAChD,OAAO,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClF,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { ScenarioInfo } from './parse';
2
+ /**
3
+ * Escape scenario titles into one `-g` / `--mochaOpts.grep` regex. Full titles, not bare IDs:
4
+ * a title starts with its own ID, so it can only appear inside its own test's title — and a
5
+ * `@cases` row test (`<title> — <row label>`) still contains it.
6
+ */
7
+ export declare function titlesToGrep(titles: string[]): string;
8
+ export interface IdSelectionGroup {
9
+ /** Feature basename (`products`, `home-modal`) — names the spec and the result file. */
10
+ feature: string;
11
+ ids: string[];
12
+ titles: string[];
13
+ grep: string;
14
+ }
15
+ export interface IdSelection {
16
+ features: IdSelectionGroup[];
17
+ /** IDs no scenario carries, with near matches (`VP-VAL-001` → `VP-VAL-001-B`). */
18
+ unknown: Array<{
19
+ id: string;
20
+ didYouMean: string[];
21
+ }>;
22
+ /** IDs whose every scenario is manual, owned by a flow or waiting on a capability — nothing to run. */
23
+ notRunnable: Array<{
24
+ id: string;
25
+ reason: string;
26
+ }>;
27
+ }
28
+ /** `"VP-UI-001, vp-ui-002 VP-UI-001"` → `['VP-UI-001', 'VP-UI-002']`. */
29
+ export declare function parseIdList(raw: string): string[];
30
+ export declare function selectByIds(scenarios: ScenarioInfo[], ids: string[], unit: string, enabledCaps?: Set<string>): IdSelection;
31
+ //# sourceMappingURL=select-by-ids.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-by-ids.d.ts","sourceRoot":"","sources":["../../src/harness/select-by-ids.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAErD;AAED,MAAM,WAAW,gBAAgB;IAC/B,wFAAwF;IACxF,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,kFAAkF;IAClF,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACrD,uGAAuG;IACvG,WAAW,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpD;AAED,yEAAyE;AACzE,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAEjD;AAeD,wBAAgB,WAAW,CAAC,SAAS,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,GAAE,GAAG,CAAC,MAAM,CAAa,GAAG,WAAW,CA4BrI"}
@@ -0,0 +1,106 @@
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.titlesToGrep = titlesToGrep;
37
+ exports.parseIdList = parseIdList;
38
+ exports.selectByIds = selectByIds;
39
+ /**
40
+ * Select scenarios by test-case ID — backs `sungen select` and `run-test --ids` (#835).
41
+ *
42
+ * An ID means what it means everywhere else in the harness: `vpId`, the leading ID token of the
43
+ * scenario title (`VP-UI-001`, `MS-HP-001`, `VP0-001`). Matching is exact and case-insensitive —
44
+ * `VP-UI-001` never selects `VP-UI-0010` or `VP-UI-001-B` — and every ID that selects nothing
45
+ * runnable is reported, because the alternative is a 0-test run that reports green.
46
+ */
47
+ const path = __importStar(require("path"));
48
+ /**
49
+ * Escape scenario titles into one `-g` / `--mochaOpts.grep` regex. Full titles, not bare IDs:
50
+ * a title starts with its own ID, so it can only appear inside its own test's title — and a
51
+ * `@cases` row test (`<title> — <row label>`) still contains it.
52
+ */
53
+ function titlesToGrep(titles) {
54
+ return titles.map((t) => t.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')).join('|');
55
+ }
56
+ /** `"VP-UI-001, vp-ui-002 VP-UI-001"` → `['VP-UI-001', 'VP-UI-002']`. */
57
+ function parseIdList(raw) {
58
+ return [...new Set(raw.split(/[\s,]+/).map((s) => s.trim().toUpperCase()).filter(Boolean))];
59
+ }
60
+ /** `VP-C-002.` → `VP-C-002`: the title token may carry trailing punctuation the user never types. */
61
+ const idOf = (s) => s.vpId?.replace(/[.-]+$/, '') || undefined;
62
+ function notRunnableReason(s, enabledCaps) {
63
+ if (s.deferredToFlow)
64
+ return `owned by a flow${s.ownedByFlow ? ` (${s.ownedByFlow})` : ''} — run it there`;
65
+ if (s.featureManual)
66
+ return 'its Feature is @manual — no spec is generated for it';
67
+ if (s.manual)
68
+ return 'manual — no automated test exists';
69
+ // Compiled as `test.skip` while the capability is off: the run would report a skip, not a result.
70
+ const missing = (s.requiresCaps ?? []).filter((c) => !enabledCaps.has(c));
71
+ if (missing.length)
72
+ return `needs capability ${missing.join(', ')} — compiled as a skip until \`sungen capability add ${missing.join(' ')}\``;
73
+ return null;
74
+ }
75
+ function selectByIds(scenarios, ids, unit, enabledCaps = new Set()) {
76
+ const out = { features: [], unknown: [], notRunnable: [] };
77
+ const groups = new Map();
78
+ const allIds = [...new Set(scenarios.map(idOf).filter((v) => !!v))];
79
+ for (const id of ids) {
80
+ const hits = scenarios.filter((s) => idOf(s) === id);
81
+ if (hits.length === 0) {
82
+ const didYouMean = allIds.filter((v) => v.startsWith(`${id}-`) || id.startsWith(`${v}-`)).slice(0, 5);
83
+ out.unknown.push({ id, didYouMean });
84
+ continue;
85
+ }
86
+ const runnable = hits.filter((s) => !notRunnableReason(s, enabledCaps));
87
+ if (runnable.length === 0) {
88
+ out.notRunnable.push({ id, reason: notRunnableReason(hits[0], enabledCaps) });
89
+ continue;
90
+ }
91
+ for (const s of runnable) {
92
+ const feature = s.sourceFile ? path.basename(s.sourceFile, '.feature') : unit;
93
+ const g = groups.get(feature) ?? { feature, ids: [], titles: [], grep: '' };
94
+ if (!g.ids.includes(id))
95
+ g.ids.push(id);
96
+ if (!g.titles.includes(s.name))
97
+ g.titles.push(s.name);
98
+ groups.set(feature, g);
99
+ }
100
+ }
101
+ for (const g of groups.values())
102
+ g.grep = titlesToGrep(g.titles);
103
+ out.features = [...groups.values()];
104
+ return out;
105
+ }
106
+ //# sourceMappingURL=select-by-ids.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-by-ids.js","sourceRoot":"","sources":["../../src/harness/select-by-ids.ts"],"names":[],"mappings":"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"}
@@ -222,6 +222,9 @@ export interface TraceResult {
222
222
  mappedToOverview: number;
223
223
  withVpCodeRatio: number;
224
224
  mappedRatio: number;
225
+ /** Viewpoint IDs read from test-viewpoint.md. 0 = nothing to map to, so `mappedRatio` is not a
226
+ * measurement — the scenario IDs were never checked (#832). */
227
+ overviewIds: number;
225
228
  note: string;
226
229
  }
227
230
  export declare function traceability(scenarios: ScenarioInfo[], viewpoints: ViewpointEntry[]): TraceResult;
@@ -279,8 +282,12 @@ export declare function numericClaimGaps(scenarios: ScenarioInfo[]): Array<{
279
282
  * The Priority-Viewpoints table is where release selection is supposed to come from. When the
280
283
  * table says a flow is `Low` and its scenario is tagged `@high`, a smoke run picks up work the QA
281
284
  * deliberately deprioritised — and nobody can tell which of the two was the decision (#622).
285
+ *
286
+ * Reads the SAME parse traceability does (`parseViewpointOverview`). It used to scan the raw text
287
+ * for any `| VP-… | high |` row, so one audit run "saw" an id for this check and not for
288
+ * traceability (#833), and a row in a Known Issues table could raise a contradiction.
282
289
  */
283
- export declare function priorityMismatches(viewpointText: string, scenarios: ScenarioInfo[]): Array<{
290
+ export declare function priorityMismatches(viewpoints: ViewpointEntry[], scenarios: ScenarioInfo[]): Array<{
284
291
  id: string;
285
292
  declared: string;
286
293
  tagged: string;