@sun-asterisk/sungen 3.2.16-beta.1 → 3.2.16-beta.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/dist/cli/commands/delivery.d.ts.map +1 -1
- package/dist/cli/commands/delivery.js +1 -0
- package/dist/cli/commands/delivery.js.map +1 -1
- package/dist/exporters/matrix/build.d.ts +8 -1
- package/dist/exporters/matrix/build.d.ts.map +1 -1
- package/dist/exporters/matrix/build.js +158 -22
- package/dist/exporters/matrix/build.js.map +1 -1
- package/dist/exporters/matrix/export.d.ts +2 -0
- package/dist/exporters/matrix/export.d.ts.map +1 -1
- package/dist/exporters/matrix/export.js +7 -0
- package/dist/exporters/matrix/export.js.map +1 -1
- package/dist/exporters/matrix/gates.d.ts.map +1 -1
- package/dist/exporters/matrix/gates.js +37 -0
- package/dist/exporters/matrix/gates.js.map +1 -1
- package/dist/exporters/matrix/map-loader.d.ts.map +1 -1
- package/dist/exporters/matrix/map-loader.js +18 -0
- package/dist/exporters/matrix/map-loader.js.map +1 -1
- package/dist/exporters/matrix/render-csv.d.ts +3 -2
- package/dist/exporters/matrix/render-csv.d.ts.map +1 -1
- package/dist/exporters/matrix/render-csv.js +48 -28
- package/dist/exporters/matrix/render-csv.js.map +1 -1
- package/dist/exporters/matrix/render-xlsx.d.ts +16 -8
- package/dist/exporters/matrix/render-xlsx.d.ts.map +1 -1
- package/dist/exporters/matrix/render-xlsx.js +116 -52
- package/dist/exporters/matrix/render-xlsx.js.map +1 -1
- package/dist/exporters/matrix/types.d.ts +23 -1
- package/dist/exporters/matrix/types.d.ts.map +1 -1
- package/dist/exporters/matrix/types.js.map +1 -1
- package/dist/exporters/matrix/wording.d.ts +45 -0
- package/dist/exporters/matrix/wording.d.ts.map +1 -0
- package/dist/exporters/matrix/wording.js +150 -0
- package/dist/exporters/matrix/wording.js.map +1 -0
- package/dist/orchestrator/templates/ai-src/commands/delivery.md +27 -1
- package/dist/orchestrator/templates/ai-src/skills/sungen-delivery/SKILL.md +31 -8
- package/package.json +3 -3
- package/src/cli/commands/delivery.ts +1 -0
- package/src/exporters/matrix/build.ts +160 -22
- package/src/exporters/matrix/export.ts +10 -0
- package/src/exporters/matrix/gates.ts +41 -0
- package/src/exporters/matrix/map-loader.ts +20 -1
- package/src/exporters/matrix/render-csv.ts +49 -29
- package/src/exporters/matrix/render-xlsx.ts +122 -55
- package/src/exporters/matrix/types.ts +27 -1
- package/src/exporters/matrix/wording.ts +157 -0
- package/src/orchestrator/templates/ai-src/commands/delivery.md +27 -1
- package/src/orchestrator/templates/ai-src/skills/sungen-delivery/SKILL.md +31 -8
|
@@ -3,14 +3,21 @@
|
|
|
3
3
|
* Render the Test Case & Coverage Matrix workbook.
|
|
4
4
|
*
|
|
5
5
|
* Sheets:
|
|
6
|
-
* 1. Testcases — one parent row per delivery item
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
6
|
+
* 1. Testcases — one parent row per delivery item; EVERY item (including
|
|
7
|
+
* single-variant ones) carries variant sub-rows on Excel outline level 1 —
|
|
8
|
+
* the sub-row is where source traceability (VP-id), test data, and the
|
|
9
|
+
* manual result/evidence entry live (review B-05/B-06). Collapse outline
|
|
10
|
+
* level 1 for the customer/review view; expand to execute.
|
|
11
|
+
* 2. Coverage — requirement coverage (id ↔ items ↔ status), the target ×
|
|
12
|
+
* category grid (explicit `—` gaps), dispositions, and the manifest.
|
|
11
13
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
+
* Manual-execution support: variant Result cells carry a dropdown
|
|
15
|
+
* (Passed/Failed/Blocked/Pending/N/A) and the parent Result is a live Excel
|
|
16
|
+
* formula derived from its children — a parent can never contradict its
|
|
17
|
+
* variants, even after QA edits results by hand (review B-06).
|
|
18
|
+
*
|
|
19
|
+
* Every sheet keeps the company ISO masthead. A draft matrix (unapproved
|
|
20
|
+
* groups / review findings) carries a red DRAFT banner.
|
|
14
21
|
*/
|
|
15
22
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
16
23
|
if (k2 === undefined) k2 = k;
|
|
@@ -46,6 +53,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
46
53
|
};
|
|
47
54
|
})();
|
|
48
55
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
56
|
+
exports.itemResultLabel = itemResultLabel;
|
|
49
57
|
exports.renderMatrixXlsx = renderMatrixXlsx;
|
|
50
58
|
const ExcelJS = __importStar(require("exceljs"));
|
|
51
59
|
const xlsx_report_builder_1 = require("../xlsx-report-builder");
|
|
@@ -54,6 +62,7 @@ const CATEGORY_ORDER = ['normal', 'abnormal', 'security', 'nfr'];
|
|
|
54
62
|
const SOFT_BLUE = { argb: 'FFDCE6F1' };
|
|
55
63
|
const DRAFT_RED = { argb: 'FFC00000' };
|
|
56
64
|
const GAP_FILL = { argb: 'FFFCE4EC' };
|
|
65
|
+
const RESULT_STATES = 'Passed,Failed,Blocked,Pending,N/A';
|
|
57
66
|
function headerCell(c, label) {
|
|
58
67
|
c.value = label;
|
|
59
68
|
c.font = { bold: true, size: 10, color: xlsx_report_builder_1.BLACK, name: xlsx_report_builder_1.ARIAL_FONT };
|
|
@@ -62,7 +71,10 @@ function headerCell(c, label) {
|
|
|
62
71
|
c.border = xlsx_report_builder_1.allBordersBlack;
|
|
63
72
|
}
|
|
64
73
|
function dataCell(c, value, opts) {
|
|
65
|
-
|
|
74
|
+
// An empty value stays a genuinely blank cell — never an empty shared string,
|
|
75
|
+
// which some renderers display as its string-table index (review M-03).
|
|
76
|
+
if (value !== '' && value !== undefined && value !== null)
|
|
77
|
+
c.value = value;
|
|
66
78
|
c.font = { bold: opts?.bold ?? false, size: 10, name: xlsx_report_builder_1.ARIAL_FONT, ...(opts?.color ? { color: opts.color } : {}) };
|
|
67
79
|
c.alignment = { horizontal: opts?.center ? 'center' : 'left', vertical: 'top', wrapText: true };
|
|
68
80
|
c.border = xlsx_report_builder_1.allBordersBlack;
|
|
@@ -86,6 +98,15 @@ function variantResultLabel(v) {
|
|
|
86
98
|
return 'Pending';
|
|
87
99
|
return (0, playwright_report_parser_1.statusToTestResult)(v.result.status);
|
|
88
100
|
}
|
|
101
|
+
/** ISO date (2026-08-04) — unambiguous across locales (review §9). */
|
|
102
|
+
function isoDate(startTime) {
|
|
103
|
+
if (!startTime)
|
|
104
|
+
return '';
|
|
105
|
+
const d = new Date(startTime);
|
|
106
|
+
if (isNaN(d.getTime()))
|
|
107
|
+
return '';
|
|
108
|
+
return `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, '0')}-${String(d.getDate()).padStart(2, '0')}`;
|
|
109
|
+
}
|
|
89
110
|
function numbered(lines) {
|
|
90
111
|
if (lines.length === 0)
|
|
91
112
|
return '';
|
|
@@ -93,6 +114,13 @@ function numbered(lines) {
|
|
|
93
114
|
return lines[0];
|
|
94
115
|
return lines.map((l, i) => `${i + 1}. ${l}`).join('\n');
|
|
95
116
|
}
|
|
117
|
+
/** Expected cell = observable outcomes; the HOW moves under a separate heading. */
|
|
118
|
+
function expectedWithVerification(oracle, verification) {
|
|
119
|
+
const expected = numbered(oracle);
|
|
120
|
+
if (verification.length === 0)
|
|
121
|
+
return expected;
|
|
122
|
+
return `${expected}\nVerification method: ${verification.join(' ')}`;
|
|
123
|
+
}
|
|
96
124
|
/** Red DRAFT banner on row 5 when the matrix is not approved for official delivery. */
|
|
97
125
|
function draftBanner(ws, model) {
|
|
98
126
|
if (model.manifest.approvalState !== 'draft')
|
|
@@ -109,15 +137,16 @@ function draftBanner(ws, model) {
|
|
|
109
137
|
// ---------------------------------------------------------------------------
|
|
110
138
|
const MATRIX_HEADERS = [
|
|
111
139
|
'ID', 'Target', 'Test Intent / Condition', 'Category', 'Priority', 'Precondition',
|
|
112
|
-
'Coverage / Test Data', 'Action / Trigger', 'Expected
|
|
140
|
+
'Coverage / Test Data', 'Action / Trigger', 'Expected Result', 'Mode', 'Trace',
|
|
113
141
|
'Result', 'Executed Date', 'Executor', 'Note\n(Evidence, DefectID)',
|
|
114
142
|
];
|
|
143
|
+
const RESULT_COL = 13; // column M
|
|
115
144
|
function addMatrixSheet(wb, model, sungenVersion) {
|
|
116
145
|
const ws = wb.addWorksheet('Testcases');
|
|
117
146
|
ws.properties.outlineLevelRow = 1;
|
|
118
147
|
ws.columns = [
|
|
119
148
|
{ width: 3 }, // A margin
|
|
120
|
-
{ width:
|
|
149
|
+
{ width: 22 }, // B ID
|
|
121
150
|
{ width: 18 }, // C Target
|
|
122
151
|
{ width: 42 }, // D Intent / Condition
|
|
123
152
|
{ width: 11 }, // E Category
|
|
@@ -128,8 +157,8 @@ function addMatrixSheet(wb, model, sungenVersion) {
|
|
|
128
157
|
{ width: 42 }, // J Expected
|
|
129
158
|
{ width: 11 }, // K Mode
|
|
130
159
|
{ width: 13 }, // L Trace
|
|
131
|
-
{ width:
|
|
132
|
-
{ width:
|
|
160
|
+
{ width: 22 }, // M Result
|
|
161
|
+
{ width: 12 }, // N Executed
|
|
133
162
|
{ width: 13 }, // O Executor
|
|
134
163
|
{ width: 24 }, // P Note
|
|
135
164
|
];
|
|
@@ -155,13 +184,50 @@ function addMatrixSheet(wb, model, sungenVersion) {
|
|
|
155
184
|
MATRIX_HEADERS.forEach((label, i) => headerCell(hr.getCell(2 + i), label));
|
|
156
185
|
let rowIdx = HEADER_ROW + 1;
|
|
157
186
|
for (const item of model.items) {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
const
|
|
163
|
-
|
|
164
|
-
|
|
187
|
+
const parentRowIdx = rowIdx++;
|
|
188
|
+
// --- Variant sub-rows FIRST (to know their cell range for the parent formula).
|
|
189
|
+
// Every item gets sub-rows — the sub-row is where the source scenario id, the
|
|
190
|
+
// resolved data, and the manual result/evidence entry live (review B-05).
|
|
191
|
+
const firstChild = rowIdx;
|
|
192
|
+
for (const v of item.variants) {
|
|
193
|
+
const vr = ws.getRow(rowIdx++);
|
|
194
|
+
vr.outlineLevel = 1;
|
|
195
|
+
const vValues = [
|
|
196
|
+
v.ref,
|
|
197
|
+
'',
|
|
198
|
+
v.condition,
|
|
199
|
+
'', '', '',
|
|
200
|
+
numbered(v.data),
|
|
201
|
+
numbered(v.trigger),
|
|
202
|
+
expectedWithVerification(v.oracle, v.verification),
|
|
203
|
+
v.mode === 'manual' ? `Manual${v.manualReason ? ` (${v.manualReason})` : ''}` : 'Auto',
|
|
204
|
+
v.traces.join(', '),
|
|
205
|
+
variantResultLabel(v),
|
|
206
|
+
isoDate(v.result?.startTime),
|
|
207
|
+
'',
|
|
208
|
+
v.result?.error ? String(v.result.error).slice(0, 200) : '',
|
|
209
|
+
];
|
|
210
|
+
vValues.forEach((val, i) => dataCell(vr.getCell(2 + i), val, { center: i === 9 }));
|
|
211
|
+
// Manual-execution entry: constrain the Result cell to the known states.
|
|
212
|
+
vr.getCell(2 + 11).dataValidation = {
|
|
213
|
+
type: 'list', allowBlank: true, formulae: [`"${RESULT_STATES}"`],
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
const lastChild = rowIdx - 1;
|
|
217
|
+
// --- Parent row: only values that are genuinely COMMON to the whole item
|
|
218
|
+
// (review M-04); everything variant-specific stays on the sub-rows.
|
|
219
|
+
const pr = ws.getRow(parentRowIdx);
|
|
220
|
+
const triggerTexts = new Set(item.variants.map((v) => v.trigger.join('\n')));
|
|
221
|
+
const commonTrigger = triggerTexts.size === 1 ? item.variants[0].trigger : null;
|
|
222
|
+
const coverage = `${item.variants.length} variant(s): ${item.variants.map((v) => v.condition).join(' · ')}`;
|
|
223
|
+
// Live roll-up: derived from the child Result cells so hand-entered results
|
|
224
|
+
// recompute the parent — precedence failed → blocked → pending → partial → passed.
|
|
225
|
+
const rng = `M${firstChild}:M${lastChild}`;
|
|
226
|
+
const n = item.variants.length;
|
|
227
|
+
const rollUpFormula = `IF(COUNTIF(${rng},"Failed")>0,COUNTIF(${rng},"Passed")&"/${n} Passed · "&COUNTIF(${rng},"Failed")&" Failed",` +
|
|
228
|
+
`IF(COUNTIF(${rng},"Blocked")>0,"Blocked",` +
|
|
229
|
+
`IF(COUNTIF(${rng},"Passed")=${n},"${n}/${n} Passed",` +
|
|
230
|
+
`IF(COUNTIF(${rng},"Passed")=0,"Pending",COUNTIF(${rng},"Passed")&"/${n} Passed · pending"))))`;
|
|
165
231
|
const values = [
|
|
166
232
|
item.id,
|
|
167
233
|
item.target,
|
|
@@ -170,12 +236,12 @@ function addMatrixSheet(wb, model, sungenVersion) {
|
|
|
170
236
|
item.priority,
|
|
171
237
|
numbered(item.precondition),
|
|
172
238
|
coverage,
|
|
173
|
-
numbered(
|
|
239
|
+
commonTrigger ? numbered(commonTrigger) : '(differs per variant — see sub-rows)',
|
|
174
240
|
item.oracle,
|
|
175
|
-
item.mode === 'manual' ?
|
|
241
|
+
item.mode === 'manual' ? 'Manual' : 'Auto',
|
|
176
242
|
item.traces.join(', '),
|
|
177
|
-
itemResultLabel(item),
|
|
178
|
-
|
|
243
|
+
{ formula: rollUpFormula, result: itemResultLabel(item) },
|
|
244
|
+
'',
|
|
179
245
|
'',
|
|
180
246
|
item.review === 'proposed' ? 'REVIEW REQUIRED' : '',
|
|
181
247
|
];
|
|
@@ -183,48 +249,46 @@ function addMatrixSheet(wb, model, sungenVersion) {
|
|
|
183
249
|
bold: true,
|
|
184
250
|
fill: SOFT_BLUE,
|
|
185
251
|
center: i === 3 || i === 4 || i === 9,
|
|
186
|
-
...(
|
|
252
|
+
...(i === 14 && item.review === 'proposed' ? { color: DRAFT_RED } : {}),
|
|
187
253
|
}));
|
|
188
|
-
// Variant sub-rows — the execution units (outline level 1; collapse for review).
|
|
189
|
-
if (!single) {
|
|
190
|
-
for (const v of item.variants) {
|
|
191
|
-
const vr = ws.getRow(rowIdx++);
|
|
192
|
-
vr.outlineLevel = 1;
|
|
193
|
-
const vValues = [
|
|
194
|
-
v.ref,
|
|
195
|
-
'',
|
|
196
|
-
v.condition,
|
|
197
|
-
'', '', '',
|
|
198
|
-
numbered(v.data),
|
|
199
|
-
numbered(v.trigger),
|
|
200
|
-
numbered(v.oracle),
|
|
201
|
-
v.mode === 'manual' ? `Manual${v.manualReason ? ` (${v.manualReason})` : ''}` : 'Auto',
|
|
202
|
-
v.traces.join(', '),
|
|
203
|
-
variantResultLabel(v),
|
|
204
|
-
(0, playwright_report_parser_1.formatExecutedDate)(v.result?.startTime),
|
|
205
|
-
'',
|
|
206
|
-
v.result?.error ? String(v.result.error).slice(0, 200) : '',
|
|
207
|
-
];
|
|
208
|
-
vValues.forEach((val, i) => dataCell(vr.getCell(2 + i), val, { center: i === 9 }));
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
254
|
}
|
|
212
255
|
ws.autoFilter = { from: { row: HEADER_ROW, column: 2 }, to: { row: rowIdx - 1, column: 16 } };
|
|
213
|
-
|
|
256
|
+
// Freeze the header band AND the ID + Target columns (review §9).
|
|
257
|
+
ws.views = [{ state: 'frozen', xSplit: 3, ySplit: HEADER_ROW }];
|
|
214
258
|
}
|
|
215
259
|
// ---------------------------------------------------------------------------
|
|
216
|
-
// Sheet 2 — Coverage (overview grid + dispositions + manifest)
|
|
260
|
+
// Sheet 2 — Coverage (requirements + overview grid + dispositions + manifest)
|
|
217
261
|
// ---------------------------------------------------------------------------
|
|
218
262
|
function addCoverageSheet(wb, model, sungenVersion) {
|
|
219
263
|
const ws = wb.addWorksheet('Coverage');
|
|
220
264
|
ws.columns = [
|
|
221
|
-
{ width: 3 }, { width:
|
|
222
|
-
{ width: 16 }, { width:
|
|
265
|
+
{ width: 3 }, { width: 22 }, { width: 18 }, { width: 16 }, { width: 16 }, { width: 16 },
|
|
266
|
+
{ width: 16 }, { width: 44 },
|
|
223
267
|
];
|
|
224
268
|
(0, xlsx_report_builder_1.renderReportHeaderBand)(wb, ws, `${model.unit.toUpperCase()} COVERAGE OVERVIEW`, sungenVersion, model.formNo);
|
|
225
269
|
draftBanner(ws, model);
|
|
226
|
-
// --- Target × category grid ---
|
|
227
270
|
let rowIdx = 7;
|
|
271
|
+
// --- Requirement coverage (review §6): every requirement id gets ONE explicit status.
|
|
272
|
+
if (model.requirements.length > 0) {
|
|
273
|
+
dataCell(ws.getRow(rowIdx).getCell(2), 'Requirement coverage — every id has an explicit status', { bold: true });
|
|
274
|
+
rowIdx += 1;
|
|
275
|
+
const rh = ws.getRow(rowIdx++);
|
|
276
|
+
['Requirement', 'Status', 'Delivery items', 'Variants', 'Note'].forEach((l, i) => headerCell(rh.getCell(2 + i), l));
|
|
277
|
+
for (const r of model.requirements) {
|
|
278
|
+
const row = ws.getRow(rowIdx++);
|
|
279
|
+
dataCell(row.getCell(2), r.id, { bold: true });
|
|
280
|
+
dataCell(row.getCell(3), r.status, {
|
|
281
|
+
center: true,
|
|
282
|
+
...(r.status === 'gap' ? { fill: GAP_FILL, bold: true } : {}),
|
|
283
|
+
});
|
|
284
|
+
ws.mergeCells(rowIdx - 1, 4, rowIdx - 1, 6);
|
|
285
|
+
dataCell(row.getCell(4), r.items.join(', '));
|
|
286
|
+
dataCell(row.getCell(7), r.variantCount > 0 ? String(r.variantCount) : '', { center: true });
|
|
287
|
+
dataCell(row.getCell(8), r.note);
|
|
288
|
+
}
|
|
289
|
+
rowIdx += 1;
|
|
290
|
+
}
|
|
291
|
+
// --- Target × category grid ---
|
|
228
292
|
dataCell(ws.getRow(rowIdx).getCell(2), 'Coverage matrix — delivery items (coverage variants) per target × category', { bold: true });
|
|
229
293
|
rowIdx += 1;
|
|
230
294
|
const gridHeader = ws.getRow(rowIdx++);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-xlsx.js","sourceRoot":"","sources":["../../../src/exporters/matrix/render-xlsx.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"render-xlsx.js","sourceRoot":"","sources":["../../../src/exporters/matrix/render-xlsx.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,11 @@ export interface MapDisposition {
|
|
|
29
29
|
as: DispositionKind;
|
|
30
30
|
reason?: string;
|
|
31
31
|
}
|
|
32
|
+
export type RequirementStatus = 'covered' | 'partially_covered' | 'covered_elsewhere' | 'planned' | 'gap' | 'not_applicable';
|
|
33
|
+
export interface RequirementOverride {
|
|
34
|
+
status: RequirementStatus;
|
|
35
|
+
note?: string;
|
|
36
|
+
}
|
|
32
37
|
export interface DeliveryMap {
|
|
33
38
|
version: number;
|
|
34
39
|
unit: string;
|
|
@@ -37,6 +42,9 @@ export interface DeliveryMap {
|
|
|
37
42
|
groups: MapGroup[];
|
|
38
43
|
/** VP-id → intentionally-not-grouped disposition. */
|
|
39
44
|
dispositions: Record<string, MapDisposition>;
|
|
45
|
+
/** Requirement-id → reviewed status override (partially_covered / not_applicable / …).
|
|
46
|
+
* Without an override a requirement is `covered` when a variant traces to it, else `gap`. */
|
|
47
|
+
requirements: Record<string, RequirementOverride>;
|
|
40
48
|
/** VP-id → scenario fingerprint stamped at approval time (drift detector input). */
|
|
41
49
|
fingerprints: Record<string, string>;
|
|
42
50
|
}
|
|
@@ -75,6 +83,9 @@ export interface CoverageVariant {
|
|
|
75
83
|
oracleShape: string[];
|
|
76
84
|
/** Oracle for display. */
|
|
77
85
|
oracle: string[];
|
|
86
|
+
/** HOW to check (manual `Oracle:` lines — tools, panes, queries). Rendered as
|
|
87
|
+
* "Verification method" under the expected result, never inside it. */
|
|
88
|
+
verification: string[];
|
|
78
89
|
/** Precondition profile: auth role + scenario-level Given shapes — signature input. */
|
|
79
90
|
preconditionProfile: string;
|
|
80
91
|
/** Human preconditions (auth + own Given steps). */
|
|
@@ -119,7 +130,16 @@ export interface MatrixDisposition {
|
|
|
119
130
|
as: DispositionKind;
|
|
120
131
|
reason: string;
|
|
121
132
|
}
|
|
122
|
-
|
|
133
|
+
/** One row of the requirement-coverage table (Coverage sheet). */
|
|
134
|
+
export interface RequirementCoverage {
|
|
135
|
+
id: string;
|
|
136
|
+
status: RequirementStatus;
|
|
137
|
+
/** Delivery items whose variants trace to this requirement. */
|
|
138
|
+
items: string[];
|
|
139
|
+
variantCount: number;
|
|
140
|
+
note: string;
|
|
141
|
+
}
|
|
142
|
+
export type GateId = 'A' | 'B' | 'C' | 'D' | 'E' | 'G' | 'R' | 'W';
|
|
123
143
|
export type FindingSeverity = 'error' | 'review' | 'warning';
|
|
124
144
|
export interface MatrixFinding {
|
|
125
145
|
gate: GateId;
|
|
@@ -145,6 +165,8 @@ export interface MatrixModel {
|
|
|
145
165
|
formNo: string;
|
|
146
166
|
items: DeliveryItem[];
|
|
147
167
|
dispositions: MatrixDisposition[];
|
|
168
|
+
/** Requirement coverage — empty when the unit has no requirements/spec.md ids. */
|
|
169
|
+
requirements: RequirementCoverage[];
|
|
148
170
|
findings: MatrixFinding[];
|
|
149
171
|
manifest: MatrixManifest;
|
|
150
172
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/exporters/matrix/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/exporters/matrix/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/exporters/matrix/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/exporters/matrix/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAgMH,kFAAkF;AACrE,QAAA,qBAAqB,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wording normalization — deterministic rendering step AFTER semantic
|
|
3
|
+
* normalization (review feedback §10): turn sungen DSL steps into controlled
|
|
4
|
+
* manual-test English without changing the target, condition, trigger,
|
|
5
|
+
* precondition, oracle, or trace.
|
|
6
|
+
*
|
|
7
|
+
* - Actions render in the imperative: "User fill [Email] field with X"
|
|
8
|
+
* → "Enter X in the Email field."
|
|
9
|
+
* - Expected results render as observable assertions (never tester actions):
|
|
10
|
+
* "User see [Jobs] page" → "The Jobs page is displayed."
|
|
11
|
+
* - Manual `# Tester verifies:` labels (Setup:/Action:/Observable:/Oracle:)
|
|
12
|
+
* become structured fields instead of prose: Setup → precondition,
|
|
13
|
+
* Action → action, Observable → expected, Oracle → verification method.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Render one action step in the imperative. Pattern table covers the common
|
|
17
|
+
* sungen step verbs; anything unmatched falls back to actor-stripped text —
|
|
18
|
+
* still readable, never a raw `User fill`.
|
|
19
|
+
*/
|
|
20
|
+
export declare function renderAction(raw: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Render one expected step as an observable assertion (no tester action, no
|
|
23
|
+
* `should`, no DSL `User see`).
|
|
24
|
+
*/
|
|
25
|
+
export declare function renderExpected(raw: string): string;
|
|
26
|
+
/** Precondition wording: a state, not an action ("The user is signed out."). */
|
|
27
|
+
export declare function renderPrecondition(raw: string): string;
|
|
28
|
+
export interface ManualProcedure {
|
|
29
|
+
/** Setup/Precondition/Arrange lines — the state to establish first. */
|
|
30
|
+
preconditions: string[];
|
|
31
|
+
/** Action/unlabelled lines — the imperative procedure. */
|
|
32
|
+
actions: string[];
|
|
33
|
+
/** Observable/Expect/Result/Assert lines — the observable outcome. */
|
|
34
|
+
expected: string[];
|
|
35
|
+
/** Oracle/Verify lines — HOW to check (tools, panes, queries). */
|
|
36
|
+
verification: string[];
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Split a manual scenario's numbered comment lines into the four structured
|
|
40
|
+
* fields. Labels are consumed (structured), never left inside the prose —
|
|
41
|
+
* review feedback §10.2(3). Continuation lines append to the previous item;
|
|
42
|
+
* pre-amble (rationale/header/dividers) is skipped.
|
|
43
|
+
*/
|
|
44
|
+
export declare function classifyManualComments(comments: string[]): ManualProcedure;
|
|
45
|
+
//# sourceMappingURL=wording.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wording.d.ts","sourceRoot":"","sources":["../../../src/exporters/matrix/wording.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAeH;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAkChD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAyBlD;AAED,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKtD;AAMD,MAAM,WAAW,eAAe;IAC9B,uEAAuE;IACvE,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,0DAA0D;IAC1D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,sEAAsE;IACtE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,kEAAkE;IAClE,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,eAAe,CA2B1E"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Wording normalization — deterministic rendering step AFTER semantic
|
|
4
|
+
* normalization (review feedback §10): turn sungen DSL steps into controlled
|
|
5
|
+
* manual-test English without changing the target, condition, trigger,
|
|
6
|
+
* precondition, oracle, or trace.
|
|
7
|
+
*
|
|
8
|
+
* - Actions render in the imperative: "User fill [Email] field with X"
|
|
9
|
+
* → "Enter X in the Email field."
|
|
10
|
+
* - Expected results render as observable assertions (never tester actions):
|
|
11
|
+
* "User see [Jobs] page" → "The Jobs page is displayed."
|
|
12
|
+
* - Manual `# Tester verifies:` labels (Setup:/Action:/Observable:/Oracle:)
|
|
13
|
+
* become structured fields instead of prose: Setup → precondition,
|
|
14
|
+
* Action → action, Observable → expected, Oracle → verification method.
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.renderAction = renderAction;
|
|
18
|
+
exports.renderExpected = renderExpected;
|
|
19
|
+
exports.renderPrecondition = renderPrecondition;
|
|
20
|
+
exports.classifyManualComments = classifyManualComments;
|
|
21
|
+
// `[Email] field` → `Email field` (the visible label + its element type).
|
|
22
|
+
function deRef(text) {
|
|
23
|
+
return text.replace(/\[([^\]]+)\]/g, '$1');
|
|
24
|
+
}
|
|
25
|
+
function sentence(text) {
|
|
26
|
+
let s = text.trim().replace(/\s+/g, ' ');
|
|
27
|
+
if (!s)
|
|
28
|
+
return s;
|
|
29
|
+
s = s.charAt(0).toUpperCase() + s.slice(1);
|
|
30
|
+
if (!/[.!?…]$/.test(s))
|
|
31
|
+
s += '.';
|
|
32
|
+
return s;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Render one action step in the imperative. Pattern table covers the common
|
|
36
|
+
* sungen step verbs; anything unmatched falls back to actor-stripped text —
|
|
37
|
+
* still readable, never a raw `User fill`.
|
|
38
|
+
*/
|
|
39
|
+
function renderAction(raw) {
|
|
40
|
+
let s = raw.trim().replace(/^(User|The user)\s+/i, '');
|
|
41
|
+
const rules = [
|
|
42
|
+
// fill [X] field with V
|
|
43
|
+
[/^fills? \[([^\]]+)\][a-z ]* with (.+)$/i, (m) => `Enter ${m[2]} in the ${m[1]} field`],
|
|
44
|
+
// clear [X] field
|
|
45
|
+
[/^clears? \[([^\]]+)\](.*)$/i, (m) => `Clear the ${m[1]}${m[2] || ' field'}`],
|
|
46
|
+
// click [X] <type>
|
|
47
|
+
[/^clicks? \[([^\]]+)\]\s*(\w+)?$/i, (m) => `Click the ${m[1]}${m[2] ? ` ${m[2]}` : ''}`],
|
|
48
|
+
// press <Key> at/in [X] field
|
|
49
|
+
[/^press(?:es)? (.+?) (?:at|in|inside) \[([^\]]+)\](?: field)?$/i, (m) => `Press ${m[1]} in the ${m[2]} field`],
|
|
50
|
+
[/^press(?:es)? (.+)$/i, (m) => `Press ${m[1]}`],
|
|
51
|
+
// select V in/from [X] dropdown
|
|
52
|
+
[/^selects? (.+?) (?:in|from) \[([^\]]+)\]\s*(\w+)?$/i, (m) => `Select ${m[1]} in the ${m[2]}${m[3] ? ` ${m[3]}` : ''}`],
|
|
53
|
+
// check/uncheck [X] checkbox
|
|
54
|
+
[/^(un)?checks? \[([^\]]+)\]\s*(\w+)?$/i, (m) => `${m[1] ? 'Uncheck' : 'Check'} the ${m[2]}${m[3] ? ` ${m[3]}` : ''}`],
|
|
55
|
+
// hover [X]
|
|
56
|
+
[/^hovers? (?:over )?\[([^\]]+)\]\s*(\w+)?$/i, (m) => `Hover over the ${m[1]}${m[2] ? ` ${m[2]}` : ''}`],
|
|
57
|
+
// upload V to [X]
|
|
58
|
+
[/^uploads? (.+?) (?:to|into) \[([^\]]+)\]\s*(\w+)?$/i, (m) => `Upload ${m[1]} to the ${m[2]}${m[3] ? ` ${m[3]}` : ''}`],
|
|
59
|
+
// is on [X] page (as an action = navigate)
|
|
60
|
+
[/^is on \[([^\]]+)\] page(.*)$/i, (m) => `Open the ${m[1]} page${m[2] ?? ''}`],
|
|
61
|
+
// wait for [X] <type> (is )?visible
|
|
62
|
+
[/^waits? for \[([^\]]+)\]\s*(\w+)?(?: is)?(?: visible)?$/i, (m) => `Wait until the ${m[1]}${m[2] ? ` ${m[2]}` : ''} is visible`],
|
|
63
|
+
// scroll to [X]
|
|
64
|
+
[/^scrolls? (?:to|into) \[([^\]]+)\]\s*(\w+)?$/i, (m) => `Scroll to the ${m[1]}${m[2] ? ` ${m[2]}` : ''}`],
|
|
65
|
+
];
|
|
66
|
+
for (const [re, out] of rules) {
|
|
67
|
+
const m = s.match(re);
|
|
68
|
+
if (m)
|
|
69
|
+
return sentence(deRef(out(m)));
|
|
70
|
+
}
|
|
71
|
+
return sentence(deRef(s));
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Render one expected step as an observable assertion (no tester action, no
|
|
75
|
+
* `should`, no DSL `User see`).
|
|
76
|
+
*/
|
|
77
|
+
function renderExpected(raw) {
|
|
78
|
+
let s = raw.trim().replace(/^(User|The user)\s+/i, '');
|
|
79
|
+
const rules = [
|
|
80
|
+
// see [X] page
|
|
81
|
+
[/^sees? \[([^\]]+)\] page$/i, (m) => `The ${m[1]} page is displayed`],
|
|
82
|
+
// see [X] <type> with V
|
|
83
|
+
[/^sees? \[([^\]]+)\]\s*(\w+)? with (.+)$/i, (m) => `The ${m[1]}${m[2] ? ` ${m[2]}` : ''} shows ${m[3]}`],
|
|
84
|
+
// see [X] <type> contains V
|
|
85
|
+
[/^sees? \[([^\]]+)\]\s*(\w+)? contains (.+)$/i, (m) => `The ${m[1]}${m[2] ? ` ${m[2]}` : ''} contains ${m[3]}`],
|
|
86
|
+
// see [X] <type> has text V
|
|
87
|
+
[/^sees? \[([^\]]+)\]\s*(\w+)? has text (.+)$/i, (m) => `The ${m[1]}${m[2] ? ` ${m[2]}` : ''} shows ${m[3]}`],
|
|
88
|
+
// see [X] <type> is hidden / is disabled / is enabled / …
|
|
89
|
+
[/^sees? \[([^\]]+)\]\s*(\w+)? is (.+)$/i, (m) => `The ${m[1]}${m[2] ? ` ${m[2]}` : ''} is ${m[3]}`],
|
|
90
|
+
// not see [X] <type>
|
|
91
|
+
[/^(?:do(?:es)? )?not sees? \[([^\]]+)\]\s*(\w+)?$/i, (m) => `The ${m[1]}${m[2] ? ` ${m[2]}` : ''} is not displayed`],
|
|
92
|
+
// see [X] <type>
|
|
93
|
+
[/^sees? \[([^\]]+)\]\s*(\w+)?$/i, (m) => `The ${m[1]}${m[2] ? ` ${m[2]}` : ''} is visible`],
|
|
94
|
+
];
|
|
95
|
+
for (const [re, out] of rules) {
|
|
96
|
+
const m = s.match(re);
|
|
97
|
+
if (m)
|
|
98
|
+
return sentence(deRef(out(m)));
|
|
99
|
+
}
|
|
100
|
+
return sentence(deRef(s));
|
|
101
|
+
}
|
|
102
|
+
/** Precondition wording: a state, not an action ("The user is signed out."). */
|
|
103
|
+
function renderPrecondition(raw) {
|
|
104
|
+
const s = raw.trim().replace(/^(User|The user)\s+/i, '');
|
|
105
|
+
const m = s.match(/^is on \[([^\]]+)\] page(.*)$/i);
|
|
106
|
+
if (m)
|
|
107
|
+
return sentence(`The user is on the ${m[1]} page${m[2] ?? ''}`);
|
|
108
|
+
return sentence(deRef(`The user ${s.charAt(0).toLowerCase()}${s.slice(1)}`));
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Split a manual scenario's numbered comment lines into the four structured
|
|
112
|
+
* fields. Labels are consumed (structured), never left inside the prose —
|
|
113
|
+
* review feedback §10.2(3). Continuation lines append to the previous item;
|
|
114
|
+
* pre-amble (rationale/header/dividers) is skipped.
|
|
115
|
+
*/
|
|
116
|
+
function classifyManualComments(comments) {
|
|
117
|
+
const out = { preconditions: [], actions: [], expected: [], verification: [] };
|
|
118
|
+
let last = null;
|
|
119
|
+
const bucketOf = (label) => {
|
|
120
|
+
if (/setup|precondition|arrange|given/i.test(label))
|
|
121
|
+
return 'preconditions';
|
|
122
|
+
if (/oracle|verify|verification|how to check/i.test(label))
|
|
123
|
+
return 'verification';
|
|
124
|
+
if (/observ|expect|result|then|assert/i.test(label))
|
|
125
|
+
return 'expected';
|
|
126
|
+
return 'actions';
|
|
127
|
+
};
|
|
128
|
+
for (const raw of comments) {
|
|
129
|
+
const line = raw.trim();
|
|
130
|
+
if (!line)
|
|
131
|
+
continue;
|
|
132
|
+
if (/^[-=*_]{2,}/.test(line)) {
|
|
133
|
+
last = null;
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
const m = line.match(/^\d+[.)]\s*(?:([A-Za-z][A-Za-z /]*?):\s*)?(.+)$/);
|
|
137
|
+
if (m) {
|
|
138
|
+
const label = (m[1] || '').trim();
|
|
139
|
+
const text = m[2].trim();
|
|
140
|
+
const list = out[bucketOf(label)];
|
|
141
|
+
list.push(text);
|
|
142
|
+
last = { list, idx: list.length - 1 };
|
|
143
|
+
}
|
|
144
|
+
else if (last) {
|
|
145
|
+
last.list[last.idx] += ' ' + line;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return out;
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=wording.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wording.js","sourceRoot":"","sources":["../../../src/exporters/matrix/wording.ts"],"names":[],"mappings":"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"}
|