@sun-asterisk/sungen 2.6.8 → 2.6.10
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/dashboard.d.ts +2 -1
- package/dist/cli/commands/dashboard.d.ts.map +1 -1
- package/dist/cli/commands/dashboard.js +9 -9
- package/dist/cli/commands/dashboard.js.map +1 -1
- package/dist/cli/commands/delivery.d.ts.map +1 -1
- package/dist/cli/commands/delivery.js +33 -0
- package/dist/cli/commands/delivery.js.map +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/dashboard/history-store.d.ts +13 -9
- package/dist/dashboard/history-store.d.ts.map +1 -1
- package/dist/dashboard/history-store.js +19 -28
- package/dist/dashboard/history-store.js.map +1 -1
- package/dist/dashboard/html-renderer.d.ts +1 -1
- package/dist/dashboard/html-renderer.d.ts.map +1 -1
- package/dist/dashboard/html-renderer.js +2 -2
- package/dist/dashboard/html-renderer.js.map +1 -1
- package/dist/dashboard/snapshot-builder.d.ts.map +1 -1
- package/dist/dashboard/snapshot-builder.js +38 -2
- package/dist/dashboard/snapshot-builder.js.map +1 -1
- package/dist/dashboard/templates/index.html +142 -221
- package/dist/exporters/csv-exporter.d.ts +4 -0
- package/dist/exporters/csv-exporter.d.ts.map +1 -1
- package/dist/exporters/csv-exporter.js +35 -26
- package/dist/exporters/csv-exporter.js.map +1 -1
- package/dist/exporters/feature-parser.d.ts.map +1 -1
- package/dist/exporters/feature-parser.js +16 -4
- package/dist/exporters/feature-parser.js.map +1 -1
- package/dist/exporters/json-exporter.d.ts.map +1 -1
- package/dist/exporters/json-exporter.js +28 -20
- package/dist/exporters/json-exporter.js.map +1 -1
- package/dist/exporters/playwright-report-parser.d.ts.map +1 -1
- package/dist/exporters/playwright-report-parser.js +22 -5
- package/dist/exporters/playwright-report-parser.js.map +1 -1
- package/dist/exporters/scenario-merger.d.ts +23 -1
- package/dist/exporters/scenario-merger.d.ts.map +1 -1
- package/dist/exporters/scenario-merger.js +39 -0
- package/dist/exporters/scenario-merger.js.map +1 -1
- package/dist/exporters/step-formatter.d.ts +31 -3
- package/dist/exporters/step-formatter.d.ts.map +1 -1
- package/dist/exporters/step-formatter.js +52 -19
- package/dist/exporters/step-formatter.js.map +1 -1
- package/dist/exporters/sun-logo.d.ts +10 -0
- package/dist/exporters/sun-logo.d.ts.map +1 -0
- package/dist/exporters/sun-logo.js +13 -0
- package/dist/exporters/sun-logo.js.map +1 -0
- package/dist/exporters/test-data-resolver.d.ts +13 -5
- package/dist/exporters/test-data-resolver.d.ts.map +1 -1
- package/dist/exporters/test-data-resolver.js +36 -14
- package/dist/exporters/test-data-resolver.js.map +1 -1
- package/dist/exporters/types.d.ts +16 -0
- package/dist/exporters/types.d.ts.map +1 -1
- package/dist/exporters/xlsx-exporter.d.ts.map +1 -1
- package/dist/exporters/xlsx-exporter.js +169 -99
- package/dist/exporters/xlsx-exporter.js.map +1 -1
- package/dist/orchestrator/templates/playwright.config.d.ts.map +1 -1
- package/dist/orchestrator/templates/playwright.config.js +2 -0
- package/dist/orchestrator/templates/playwright.config.js.map +1 -1
- package/dist/orchestrator/templates/playwright.config.ts +2 -0
- package/dist/orchestrator/templates/specs-base.d.ts.map +1 -1
- package/dist/orchestrator/templates/specs-base.js +1 -5
- package/dist/orchestrator/templates/specs-base.js.map +1 -1
- package/dist/orchestrator/templates/specs-base.ts +1 -5
- package/package.json +1 -1
- package/src/cli/commands/dashboard.ts +9 -9
- package/src/cli/commands/delivery.ts +30 -0
- package/src/cli/index.ts +1 -1
- package/src/dashboard/history-store.ts +22 -28
- package/src/dashboard/html-renderer.ts +6 -2
- package/src/dashboard/snapshot-builder.ts +36 -2
- package/src/dashboard/templates/index.html +142 -221
- package/src/dashboard/types.ts +1 -1
- package/src/exporters/csv-exporter.ts +44 -27
- package/src/exporters/feature-parser.ts +27 -8
- package/src/exporters/json-exporter.ts +31 -21
- package/src/exporters/playwright-report-parser.ts +23 -5
- package/src/exporters/scenario-merger.ts +65 -1
- package/src/exporters/step-formatter.ts +48 -23
- package/src/exporters/sun-logo.ts +10 -0
- package/src/exporters/test-data-resolver.ts +37 -13
- package/src/exporters/types.ts +18 -1
- package/src/exporters/xlsx-exporter.ts +176 -101
- package/src/orchestrator/templates/playwright.config.ts +2 -0
- package/src/orchestrator/templates/specs-base.ts +1 -5
|
@@ -52,11 +52,12 @@ const fs = __importStar(require("fs"));
|
|
|
52
52
|
const path = __importStar(require("path"));
|
|
53
53
|
const exceljs_1 = __importDefault(require("exceljs"));
|
|
54
54
|
const package_info_1 = require("./package-info");
|
|
55
|
+
const sun_logo_1 = require("./sun-logo");
|
|
55
56
|
const COL_COUNT = 16;
|
|
56
|
-
const HEADER_FILL = '
|
|
57
|
-
const HEADER_FONT = '
|
|
57
|
+
const HEADER_FILL = 'FFD9D2E9'; // lavender — matches the summary-header band on row 6
|
|
58
|
+
const HEADER_FONT = 'FF000000'; // black text reads better on the light lavender
|
|
58
59
|
const META_FILL = 'FFDCE6F1'; // soft blue for meta rows
|
|
59
|
-
const CATEGORY_FILL = '
|
|
60
|
+
const CATEGORY_FILL = 'FFD9D2E9'; // same lavender for group dividers (Accessing / GUI / Function)
|
|
60
61
|
const BORDER_COLOR = 'FFBFBFBF';
|
|
61
62
|
function applyBorder(cell) {
|
|
62
63
|
cell.border = {
|
|
@@ -77,103 +78,172 @@ function renderXlsx(summary, rows, specLink) {
|
|
|
77
78
|
const d = new Date();
|
|
78
79
|
return `${String(d.getDate()).padStart(2, '0')}/${String(d.getMonth() + 1).padStart(2, '0')}/${d.getFullYear()}`;
|
|
79
80
|
})();
|
|
80
|
-
|
|
81
|
-
const pct = (n) => `${Math.round((n / total) * 100)}%`;
|
|
82
|
-
// -- Column widths (matches CSV column order) --
|
|
81
|
+
// -- Column widths matching template_report.xlsx (Sample sheet) --
|
|
83
82
|
ws.columns = [
|
|
84
|
-
{ width:
|
|
85
|
-
{ width:
|
|
86
|
-
{ width:
|
|
87
|
-
{ width:
|
|
88
|
-
{ width:
|
|
89
|
-
{ width:
|
|
90
|
-
{ width:
|
|
91
|
-
{ width:
|
|
92
|
-
{ width:
|
|
93
|
-
{ width:
|
|
94
|
-
{ width:
|
|
95
|
-
{ width:
|
|
96
|
-
{ width:
|
|
97
|
-
{ width: 16 }, // Test Executor
|
|
98
|
-
{ width:
|
|
99
|
-
{ width:
|
|
83
|
+
{ width: 6.38 }, // A — TC ID
|
|
84
|
+
{ width: 12.5 }, // B — Screen/Function
|
|
85
|
+
{ width: 15.38 }, // C — Big item
|
|
86
|
+
{ width: 16.25 }, // D — Medium item
|
|
87
|
+
{ width: 17 }, // E — Test Object
|
|
88
|
+
{ width: 25.5 }, // F — Pre-condition
|
|
89
|
+
{ width: 24.88 }, // G — Test Data
|
|
90
|
+
{ width: 24.88 }, // H — Steps
|
|
91
|
+
{ width: 41 }, // I — Expected results
|
|
92
|
+
{ width: 12 }, // J — Priority
|
|
93
|
+
{ width: 13.5 }, // K — Testcase type
|
|
94
|
+
{ width: 15.88 }, // L — Test Result
|
|
95
|
+
{ width: 13.5 }, // M — Executed Date
|
|
96
|
+
{ width: 16.5 }, // N — Test Executor
|
|
97
|
+
{ width: 23 }, // O — Test Environment
|
|
98
|
+
{ width: 29 }, // P — Note
|
|
100
99
|
];
|
|
101
|
-
// -- Top metadata band (rows 1-4) --
|
|
100
|
+
// -- Top metadata band (rows 1-4) — 1:1 with template_report.xlsx --
|
|
101
|
+
const TIMES = 'Times New Roman';
|
|
102
|
+
const ARIAL_FONT = 'Arial';
|
|
103
|
+
const BLACK = { argb: 'FF000000' };
|
|
104
|
+
const WHITE = { argb: 'FFFFFFFF' };
|
|
105
|
+
const LAVENDER = { argb: 'FFD9D2E9' };
|
|
106
|
+
const thinBlack = { style: 'thin', color: BLACK };
|
|
107
|
+
const allBordersBlack = { top: thinBlack, left: thinBlack, bottom: thinBlack, right: thinBlack };
|
|
108
|
+
// Ensure rows 1..8 exist before merging.
|
|
109
|
+
for (let r = 1; r <= 8; r++)
|
|
110
|
+
ws.getRow(r);
|
|
111
|
+
ws.mergeCells('A1:C3');
|
|
112
|
+
ws.mergeCells('D1:F3');
|
|
113
|
+
ws.mergeCells('G1:H1');
|
|
114
|
+
ws.mergeCells('G2:H2');
|
|
115
|
+
ws.mergeCells('G3:H3');
|
|
116
|
+
ws.mergeCells('A4:F4');
|
|
117
|
+
ws.mergeCells('G4:H4');
|
|
118
|
+
// A1 (logo band, merged A1:C3) — give it bordering + embed the Sun* logo.
|
|
119
|
+
const a1 = ws.getCell('A1');
|
|
120
|
+
a1.alignment = { horizontal: 'center', vertical: 'middle' };
|
|
121
|
+
a1.border = allBordersBlack;
|
|
122
|
+
// Embed Sun* logo using a oneCellAnchor + explicit pixel `ext`, exactly
|
|
123
|
+
// like the template. tl is offset into the merged band so the logo lands
|
|
124
|
+
// centred in A1:C3 instead of pinned to the top-left corner.
|
|
125
|
+
try {
|
|
126
|
+
const imageId = wb.addImage({
|
|
127
|
+
buffer: Buffer.from(sun_logo_1.SUN_LOGO_PNG_BASE64, 'base64'),
|
|
128
|
+
extension: 'png',
|
|
129
|
+
});
|
|
130
|
+
// A1:C3 ≈ 240 × 60 px. For a 90×50 logo centred horizontally / vertically:
|
|
131
|
+
// left margin = (240 − 90)/2 ≈ 75 px → 9525 EMU/px → 714375 EMU
|
|
132
|
+
// top margin = (60 − 50)/2 ≈ 5 px → 47625 EMU
|
|
133
|
+
// ExcelJS's fractional `col`/`row` clamps to a small EMU range, so we
|
|
134
|
+
// bypass it and write `native*` fields directly (the underlying XML uses
|
|
135
|
+
// the same field names).
|
|
136
|
+
ws.addImage(imageId, {
|
|
137
|
+
tl: { nativeCol: 0, nativeColOff: 714375, nativeRow: 0, nativeRowOff: 47625 },
|
|
138
|
+
ext: { width: 90, height: 50 },
|
|
139
|
+
editAs: 'oneCell',
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
catch { /* logo is decorative — never block export */ }
|
|
143
|
+
// D1 (TESTCASE title)
|
|
102
144
|
const titleLabel = `${summary.screen.toUpperCase()} TESTCASE`;
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
const
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
145
|
+
const d1 = ws.getCell('D1');
|
|
146
|
+
d1.value = titleLabel;
|
|
147
|
+
d1.font = { bold: true, size: 18, name: TIMES };
|
|
148
|
+
d1.alignment = { horizontal: 'center', vertical: 'middle', wrapText: true };
|
|
149
|
+
d1.border = allBordersBlack;
|
|
150
|
+
// G1 — No: BM-2-901-13
|
|
151
|
+
const g1 = ws.getCell('G1');
|
|
152
|
+
g1.value = 'No: BM-2-901-13';
|
|
153
|
+
g1.font = { size: 12, name: TIMES };
|
|
154
|
+
g1.alignment = { vertical: 'middle' };
|
|
155
|
+
g1.border = { top: thinBlack, left: thinBlack, right: thinBlack };
|
|
156
|
+
// G2 — Version
|
|
157
|
+
const g2 = ws.getCell('G2');
|
|
158
|
+
g2.value = `Version: ${(0, package_info_1.getPackageVersion)()}`;
|
|
159
|
+
g2.font = { size: 12, name: TIMES };
|
|
160
|
+
g2.alignment = { vertical: 'middle' };
|
|
161
|
+
g2.border = { left: thinBlack, right: thinBlack };
|
|
162
|
+
// G3 — Issue Date
|
|
163
|
+
const g3 = ws.getCell('G3');
|
|
164
|
+
g3.value = `Issue Date: ${issueDate}`;
|
|
165
|
+
g3.font = { size: 12, name: TIMES };
|
|
166
|
+
g3.alignment = { vertical: 'middle' };
|
|
167
|
+
g3.border = { left: thinBlack, right: thinBlack, bottom: thinBlack };
|
|
168
|
+
// A4 — SUN ASTERISK VIETNAM CO., LTD
|
|
169
|
+
const a4 = ws.getCell('A4');
|
|
170
|
+
a4.value = 'SUN ASTERISK VIETNAM CO., LTD';
|
|
171
|
+
a4.font = { bold: true, size: 10, name: TIMES };
|
|
172
|
+
a4.alignment = { vertical: 'middle' };
|
|
173
|
+
a4.border = allBordersBlack;
|
|
174
|
+
// G4 — ISO/IEC ...
|
|
175
|
+
const g4 = ws.getCell('G4');
|
|
176
|
+
g4.value = 'ISO/IEC 27001:2022 & ISO 9001:2015';
|
|
177
|
+
g4.font = { bold: true, size: 10, name: TIMES };
|
|
178
|
+
g4.alignment = { horizontal: 'right', vertical: 'middle', wrapText: true };
|
|
179
|
+
g4.border = allBordersBlack;
|
|
180
|
+
// -- Row 5: spacer (height 12) --
|
|
181
|
+
ws.getRow(5).height = 12;
|
|
182
|
+
// -- Row 6: Summary headers (cols C..H), lavender fill --
|
|
183
|
+
const sumLabels = {
|
|
184
|
+
C: 'Total TCs', D: 'Passed', E: 'Failed', F: 'Pending', G: 'N/A', H: 'Remaining',
|
|
185
|
+
};
|
|
186
|
+
for (const [col, label] of Object.entries(sumLabels)) {
|
|
187
|
+
const c = ws.getCell(`${col}6`);
|
|
188
|
+
c.value = label;
|
|
189
|
+
c.font = { bold: true, size: 10, color: BLACK, name: ARIAL_FONT };
|
|
190
|
+
c.fill = { type: 'pattern', pattern: 'solid', fgColor: LAVENDER };
|
|
191
|
+
c.alignment = { horizontal: 'center', vertical: 'top' };
|
|
192
|
+
c.border = allBordersBlack;
|
|
142
193
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
summary.
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
194
|
+
ws.getRow(6).height = 12;
|
|
195
|
+
// -- Row 7: Counts (cols C..H), live formulas referencing the data area --
|
|
196
|
+
// Data table starts at row 15 (col header at row 14, divider at row 14? actually
|
|
197
|
+
// header at row 13 + divider at 14 + first data at 15). The formulas read col L
|
|
198
|
+
// (Test Result) for status counts, col A (TC ID) for total via COUNTA.
|
|
199
|
+
const COUNT_RANGE_END = 10000;
|
|
200
|
+
const r7Values = {
|
|
201
|
+
C: { formula: `COUNTA(A15:A${COUNT_RANGE_END})`, result: summary.total },
|
|
202
|
+
D: { formula: `COUNTIF(L15:L${COUNT_RANGE_END},"Passed")`, result: summary.passed },
|
|
203
|
+
E: { formula: `COUNTIF(L15:L${COUNT_RANGE_END},"Failed")`, result: summary.failed },
|
|
204
|
+
F: { formula: `COUNTIF(L15:L${COUNT_RANGE_END},"Pending")`, result: summary.pending },
|
|
205
|
+
G: { formula: `COUNTIF(L15:L${COUNT_RANGE_END},"N/A")`, result: summary.na },
|
|
206
|
+
H: { formula: 'C7-D7-G7', result: summary.failed + summary.pending },
|
|
207
|
+
};
|
|
208
|
+
for (const [col, val] of Object.entries(r7Values)) {
|
|
209
|
+
const c = ws.getCell(`${col}7`);
|
|
210
|
+
c.value = val;
|
|
211
|
+
c.font = { size: 10, color: BLACK, name: ARIAL_FONT };
|
|
212
|
+
c.fill = { type: 'pattern', pattern: 'solid', fgColor: WHITE };
|
|
213
|
+
c.alignment = { horizontal: 'center', vertical: 'top' };
|
|
214
|
+
c.border = allBordersBlack;
|
|
215
|
+
if (col === 'H')
|
|
216
|
+
c.numFmt = '#,##0';
|
|
159
217
|
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
218
|
+
ws.getRow(7).height = 12;
|
|
219
|
+
// C8 has no value in the template but still needs a border so the band
|
|
220
|
+
// visually closes underneath "Total TCs".
|
|
221
|
+
const c8 = ws.getCell('C8');
|
|
222
|
+
c8.font = { size: 10, color: BLACK, name: ARIAL_FONT };
|
|
223
|
+
c8.fill = { type: 'pattern', pattern: 'solid', fgColor: WHITE };
|
|
224
|
+
c8.alignment = { horizontal: 'center', vertical: 'top' };
|
|
225
|
+
c8.border = allBordersBlack;
|
|
226
|
+
// -- Row 8: Percentages (cols D..H), formula = count / (Total − N/A) --
|
|
227
|
+
const r8Values = {
|
|
228
|
+
D: { formula: 'IFERROR(D7/(C7-G7),0)', result: summary.passed / Math.max(1, summary.total - summary.na) },
|
|
229
|
+
E: { formula: 'IFERROR(E7/(C7-G7),0)', result: summary.failed / Math.max(1, summary.total - summary.na) },
|
|
230
|
+
F: { formula: 'IFERROR(F7/(C7-G7),0)', result: summary.pending / Math.max(1, summary.total - summary.na) },
|
|
231
|
+
G: { formula: 'IFERROR(G7/(C7-G7),0)', result: summary.na / Math.max(1, summary.total - summary.na) },
|
|
232
|
+
H: { formula: 'IFERROR(H7/(C7-G7),0)', result: (summary.failed + summary.pending) / Math.max(1, summary.total - summary.na) },
|
|
233
|
+
};
|
|
234
|
+
for (const [col, val] of Object.entries(r8Values)) {
|
|
235
|
+
const c = ws.getCell(`${col}8`);
|
|
236
|
+
c.value = val;
|
|
237
|
+
c.font = { size: 10, color: BLACK, name: ARIAL_FONT };
|
|
238
|
+
c.fill = { type: 'pattern', pattern: 'solid', fgColor: WHITE };
|
|
239
|
+
c.alignment = { horizontal: 'center', vertical: 'top' };
|
|
240
|
+
c.border = allBordersBlack;
|
|
241
|
+
c.numFmt = '0%';
|
|
175
242
|
}
|
|
176
|
-
ws.
|
|
243
|
+
ws.getRow(8).height = 12;
|
|
244
|
+
// After rows 1-8 are populated, append a blank row 9 spacer.
|
|
245
|
+
while (ws.rowCount < 9)
|
|
246
|
+
ws.addRow([]);
|
|
177
247
|
const specRow = ws.addRow(['Spec/Design link:', specLink]);
|
|
178
248
|
specRow.getCell(1).font = { bold: true };
|
|
179
249
|
specRow.getCell(2).font = { color: { argb: 'FF1F4E78' }, underline: true };
|
|
@@ -183,10 +253,10 @@ function renderXlsx(summary, rows, specLink) {
|
|
|
183
253
|
// -- Column header row (bold, filled, wrapped) --
|
|
184
254
|
const headerRow = ws.addRow([
|
|
185
255
|
'TC ID*',
|
|
186
|
-
'
|
|
187
|
-
'
|
|
188
|
-
'
|
|
189
|
-
'
|
|
256
|
+
'Screen/Function',
|
|
257
|
+
'Big item',
|
|
258
|
+
'Medium item',
|
|
259
|
+
'Test Object',
|
|
190
260
|
'Pre-condition',
|
|
191
261
|
'Test Data',
|
|
192
262
|
'Steps*',
|
|
@@ -232,10 +302,10 @@ function renderXlsx(summary, rows, specLink) {
|
|
|
232
302
|
for (const r of groupRows) {
|
|
233
303
|
const row = ws.addRow([
|
|
234
304
|
r.tcId,
|
|
235
|
-
r.category1,
|
|
236
305
|
'',
|
|
237
306
|
'',
|
|
238
307
|
'',
|
|
308
|
+
r.category1,
|
|
239
309
|
r.precondition,
|
|
240
310
|
r.testData,
|
|
241
311
|
r.steps,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xlsx-exporter.js","sourceRoot":"","sources":["../../src/exporters/xlsx-exporter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"xlsx-exporter.js","sourceRoot":"","sources":["../../src/exporters/xlsx-exporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playwright.config.d.ts","sourceRoot":"","sources":["../../../src/orchestrator/templates/playwright.config.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAKH;;GAEG;;AACH,
|
|
1
|
+
{"version":3,"file":"playwright.config.d.ts","sourceRoot":"","sources":["../../../src/orchestrator/templates/playwright.config.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAKH;;GAEG;;AACH,wBAiGG"}
|
|
@@ -13,6 +13,8 @@ const test_1 = require("@playwright/test");
|
|
|
13
13
|
*/
|
|
14
14
|
exports.default = (0, test_1.defineConfig)({
|
|
15
15
|
testDir: './specs/generated',
|
|
16
|
+
/* Output directory for test artifacts (screenshots, videos, traces). */
|
|
17
|
+
outputDir: './test-results',
|
|
16
18
|
/* Run tests in files in parallel */
|
|
17
19
|
fullyParallel: true,
|
|
18
20
|
/* Fail the build on CI if you accidentally left test.only in the source code. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playwright.config.js","sourceRoot":"","sources":["../../../src/orchestrator/templates/playwright.config.ts"],"names":[],"mappings":";;AAAA,2CAAyD;AAEzD;;;GAGG;AACH,+BAA+B;AAC/B,2BAA2B;AAC3B,4DAA4D;AAE5D;;GAEG;AACH,kBAAe,IAAA,mBAAY,EAAC;IAC1B,OAAO,EAAE,mBAAmB;IAC5B,oCAAoC;IACpC,aAAa,EAAE,IAAI;IACnB,iFAAiF;IACjF,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;IAC5B,sBAAsB;IACtB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,6BAA6B;IAC7B,OAAO,EAAE,KAAM;IACf,qEAAqE;IACrE,yGAAyG;IACzG,qGAAqG;IACrG,QAAQ,EAAE;QACR,CAAC,MAAM,CAAC;QACR;YACE,MAAM;YACN;gBACE,UAAU,EACR,OAAO,CAAC,GAAG,CAAC,2BAA2B;oBACvC,2BAA2B;aAC9B;SACF;KACF;IACD,wGAAwG;IACxG,GAAG,EAAE;QACH,4DAA4D;QAC5D,OAAO,EAAE,qBAAqB;QAE9B,4CAA4C;QAC5C,aAAa,EAAE,KAAM;QAErB,+FAA+F;QAC/F,KAAK,EAAE,gBAAgB;QAEvB;;;WAGG;QACH,UAAU,EAAE,iBAAiB;QAE7B;;;WAGG;QACH,8BAA8B;KAC/B;IAED,2CAA2C;IAC3C,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,UAAU;YAChB,GAAG,EAAE,EAAE,GAAG,cAAO,CAAC,gBAAgB,CAAC,EAAE;SACtC;QAED;;;;;;;;;;;;;;;;;;;;;4CAqBoC;QACpC,IAAI;QACJ,4BAA4B;QAC5B,4DAA4D;QAC5D,KAAK;QACL,IAAI;QACJ,2BAA2B;QAC3B,8DAA8D;QAC9D,KAAK;KACN;IAED,yDAAyD;IACzD,eAAe;IACf,8BAA8B;IAC9B,kCAAkC;IAClC,0CAA0C;IAC1C,KAAK;CACN,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"playwright.config.js","sourceRoot":"","sources":["../../../src/orchestrator/templates/playwright.config.ts"],"names":[],"mappings":";;AAAA,2CAAyD;AAEzD;;;GAGG;AACH,+BAA+B;AAC/B,2BAA2B;AAC3B,4DAA4D;AAE5D;;GAEG;AACH,kBAAe,IAAA,mBAAY,EAAC;IAC1B,OAAO,EAAE,mBAAmB;IAC5B,wEAAwE;IACxE,SAAS,EAAE,gBAAgB;IAC3B,oCAAoC;IACpC,aAAa,EAAE,IAAI;IACnB,iFAAiF;IACjF,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;IAC5B,sBAAsB;IACtB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,6BAA6B;IAC7B,OAAO,EAAE,KAAM;IACf,qEAAqE;IACrE,yGAAyG;IACzG,qGAAqG;IACrG,QAAQ,EAAE;QACR,CAAC,MAAM,CAAC;QACR;YACE,MAAM;YACN;gBACE,UAAU,EACR,OAAO,CAAC,GAAG,CAAC,2BAA2B;oBACvC,2BAA2B;aAC9B;SACF;KACF;IACD,wGAAwG;IACxG,GAAG,EAAE;QACH,4DAA4D;QAC5D,OAAO,EAAE,qBAAqB;QAE9B,4CAA4C;QAC5C,aAAa,EAAE,KAAM;QAErB,+FAA+F;QAC/F,KAAK,EAAE,gBAAgB;QAEvB;;;WAGG;QACH,UAAU,EAAE,iBAAiB;QAE7B;;;WAGG;QACH,8BAA8B;KAC/B;IAED,2CAA2C;IAC3C,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,UAAU;YAChB,GAAG,EAAE,EAAE,GAAG,cAAO,CAAC,gBAAgB,CAAC,EAAE;SACtC;QAED;;;;;;;;;;;;;;;;;;;;;4CAqBoC;QACpC,IAAI;QACJ,4BAA4B;QAC5B,4DAA4D;QAC5D,KAAK;QACL,IAAI;QACJ,2BAA2B;QAC3B,8DAA8D;QAC9D,KAAK;KACN;IAED,yDAAyD;IACzD,eAAe;IACf,8BAA8B;IAC9B,kCAAkC;IAClC,0CAA0C;IAC1C,KAAK;CACN,CAAC,CAAC"}
|
|
@@ -13,6 +13,8 @@ import { defineConfig, devices } from '@playwright/test';
|
|
|
13
13
|
*/
|
|
14
14
|
export default defineConfig({
|
|
15
15
|
testDir: './specs/generated',
|
|
16
|
+
/* Output directory for test artifacts (screenshots, videos, traces). */
|
|
17
|
+
outputDir: './test-results',
|
|
16
18
|
/* Run tests in files in parallel */
|
|
17
19
|
fullyParallel: true,
|
|
18
20
|
/* Fail the build on CI if you accidentally left test.only in the source code. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specs-base.d.ts","sourceRoot":"","sources":["../../../src/orchestrator/templates/specs-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEnE,KAAK,aAAa,GAAG;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,iBAAe,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAmD3E;AAED,QAAA,MAAM,IAAI;yBACa,OAAO;qBACX,IAAI;
|
|
1
|
+
{"version":3,"file":"specs-base.d.ts","sourceRoot":"","sources":["../../../src/orchestrator/templates/specs-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEnE,KAAK,aAAa,GAAG;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,iBAAe,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAmD3E;AAED,QAAA,MAAM,IAAI;yBACa,OAAO;qBACX,IAAI;wGAoBrB,CAAC;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -58,14 +58,10 @@ async function cleanupPage(page, config) {
|
|
|
58
58
|
}
|
|
59
59
|
const test = test_1.test.extend({
|
|
60
60
|
screenshotOnFailure: [false, { option: true }],
|
|
61
|
-
page: async ({
|
|
62
|
-
const context = storageState
|
|
63
|
-
? await browser.newContext({ storageState })
|
|
64
|
-
: await browser.newContext();
|
|
61
|
+
page: async ({ context }, use) => {
|
|
65
62
|
const page = await context.newPage();
|
|
66
63
|
await use(page);
|
|
67
64
|
await page.close();
|
|
68
|
-
await context.close();
|
|
69
65
|
},
|
|
70
66
|
_autoScreenshot: [async ({ page, screenshotOnFailure }, use, testInfo) => {
|
|
71
67
|
await use();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specs-base.js","sourceRoot":"","sources":["../../../src/orchestrator/templates/specs-base.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"specs-base.js","sourceRoot":"","sources":["../../../src/orchestrator/templates/specs-base.ts"],"names":[],"mappings":";;;AAsFuB,kCAAW;AAtFlC,2CAAmE;AAsFpD,uFAtFQ,aAAM,OAsFR;AA7ErB,KAAK,UAAU,WAAW,CAAC,IAAU,EAAE,MAAqB;IAC1D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACpD,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC5F,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC;;;;;;;;;SASlC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,IAAI,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;SAwBf,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED,MAAM,IAAI,GAAG,WAAI,CAAC,MAAM,CAGrB;IACD,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAE9C,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE;QAC/B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;QAChB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE;YACvE,MAAM,GAAG,EAAE,CAAC;YAEZ,IAAI,mBAAmB,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,cAAc,EAAE,CAAC;gBACvE,MAAM,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE;oBAClC,IAAI,EAAE,MAAM,IAAI,CAAC,UAAU,EAAE;oBAC7B,WAAW,EAAE,WAAW;iBACzB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;CACnB,CAAC,CAAC;AAEM,oBAAI"}
|
|
@@ -66,14 +66,10 @@ const test = base.extend<{
|
|
|
66
66
|
}>({
|
|
67
67
|
screenshotOnFailure: [false, { option: true }],
|
|
68
68
|
|
|
69
|
-
page: async ({
|
|
70
|
-
const context = storageState
|
|
71
|
-
? await browser.newContext({ storageState })
|
|
72
|
-
: await browser.newContext();
|
|
69
|
+
page: async ({ context }, use) => {
|
|
73
70
|
const page = await context.newPage();
|
|
74
71
|
await use(page);
|
|
75
72
|
await page.close();
|
|
76
|
-
await context.close();
|
|
77
73
|
},
|
|
78
74
|
|
|
79
75
|
_autoScreenshot: [async ({ page, screenshotOnFailure }, use, testInfo) => {
|
package/package.json
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Builds qa/dashboard/index.html — a single-file, share-ready test report —
|
|
5
5
|
* from existing Gherkin features, compiled .spec.ts files, and Playwright
|
|
6
|
-
* results. Snapshots are persisted under qa/dashboard/history/ (
|
|
6
|
+
* results. Snapshots are persisted under qa/dashboard/history/ (never deleted;
|
|
7
|
+
* --max-history only controls how many are included in dashboard stats).
|
|
7
8
|
*/
|
|
8
9
|
|
|
9
10
|
import { Command } from 'commander';
|
|
@@ -68,7 +69,7 @@ export function registerDashboardCommand(program: Command): void {
|
|
|
68
69
|
.description('Build a single-file HTML dashboard summarising all test cases & results')
|
|
69
70
|
.argument('[names...]', 'Specific screen or flow names. Omit to include all.')
|
|
70
71
|
.option('--no-history', 'Do not persist this run under qa/dashboard/history/')
|
|
71
|
-
.option('--max-history <n>', `
|
|
72
|
+
.option('--max-history <n>', `Limit snapshots included in dashboard stats (default: ${DEFAULT_MAX_HISTORY}). Older files are kept on disk.`)
|
|
72
73
|
.option('--open', 'Open the rendered HTML in the default browser when done')
|
|
73
74
|
.action(async (names: string[], options: DashboardOptions) => {
|
|
74
75
|
try {
|
|
@@ -103,18 +104,17 @@ export function registerDashboardCommand(program: Command): void {
|
|
|
103
104
|
`${COLOR.gray}(${snapshot.screens.length} screens, ${snapshot.summary.total} TCs)${COLOR.reset}`
|
|
104
105
|
);
|
|
105
106
|
|
|
106
|
-
// 3. Persist history (unless disabled)
|
|
107
|
+
// 3. Persist history (unless disabled). Files are never deleted —
|
|
108
|
+
// `max` only controls how many feed into the dashboard payload.
|
|
109
|
+
const max = options.maxHistory ? Math.max(1, parseInt(options.maxHistory, 10) || DEFAULT_MAX_HISTORY) : DEFAULT_MAX_HISTORY;
|
|
107
110
|
if (!options.noHistory) {
|
|
108
|
-
const max = options.maxHistory ? Math.max(1, parseInt(options.maxHistory, 10) || DEFAULT_MAX_HISTORY) : DEFAULT_MAX_HISTORY;
|
|
109
111
|
const result = writeSnapshotToHistory(cwd, snapshot, max);
|
|
110
112
|
log(` ${COLOR.green}✓${COLOR.reset} history ${path.relative(cwd, result.written)}`);
|
|
111
|
-
|
|
112
|
-
log(` ${COLOR.gray} pruned ${result.pruned.length} older snapshot(s)${COLOR.reset}`);
|
|
113
|
-
}
|
|
113
|
+
log(` ${COLOR.gray} ${result.total} on disk · ${result.included.length} within limit (${max})${result.archived.length > 0 ? ` · ${result.archived.length} archived (kept)` : ''}${COLOR.reset}`);
|
|
114
114
|
}
|
|
115
115
|
|
|
116
|
-
// 4. Render HTML
|
|
117
|
-
const payload = buildPayload(cwd, snapshot);
|
|
116
|
+
// 4. Render HTML — limit how many history files feed the payload.
|
|
117
|
+
const payload = buildPayload(cwd, snapshot, max);
|
|
118
118
|
const rendered = renderDashboardHtml(cwd, payload);
|
|
119
119
|
log(` ${COLOR.green}✓${COLOR.reset} html ${path.relative(cwd, rendered.outputPath)} ${COLOR.gray}(${(rendered.bytes / 1024 / 1024).toFixed(2)} MB)${COLOR.reset}`);
|
|
120
120
|
|
|
@@ -7,6 +7,7 @@ import { Command } from 'commander';
|
|
|
7
7
|
import * as path from 'path';
|
|
8
8
|
import * as fs from 'fs';
|
|
9
9
|
import { execSync } from 'child_process';
|
|
10
|
+
import { parse as parseYaml } from 'yaml';
|
|
10
11
|
import { parseFeatureMetadata } from '../../exporters/feature-parser';
|
|
11
12
|
import { parseSpecFile } from '../../exporters/spec-parser';
|
|
12
13
|
import { loadTestData } from '../../exporters/test-data-resolver';
|
|
@@ -102,6 +103,26 @@ function resolveTestDataPathForTarget(cwd: string, target: DeliveryTarget): stri
|
|
|
102
103
|
return path.join(qaDir(cwd, target), 'test-data', `${target.name}.yaml`);
|
|
103
104
|
}
|
|
104
105
|
|
|
106
|
+
/**
|
|
107
|
+
* Flows record their entry-point URL inside selectors/<name>.yaml under the
|
|
108
|
+
* page-selector block (entry with `type: 'page'`). Return its `value`, or
|
|
109
|
+
* undefined when the file is missing or has no page selector.
|
|
110
|
+
*/
|
|
111
|
+
function readFlowPagePath(selectorsFile: string): string | undefined {
|
|
112
|
+
if (!fs.existsSync(selectorsFile)) return undefined;
|
|
113
|
+
try {
|
|
114
|
+
const parsed = parseYaml(fs.readFileSync(selectorsFile, 'utf-8'));
|
|
115
|
+
if (!parsed || typeof parsed !== 'object') return undefined;
|
|
116
|
+
for (const v of Object.values(parsed as Record<string, unknown>)) {
|
|
117
|
+
if (v && typeof v === 'object' && (v as { type?: string }).type === 'page') {
|
|
118
|
+
const value = (v as { value?: unknown }).value;
|
|
119
|
+
if (typeof value === 'string' && value.length > 0) return value;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
} catch { /* malformed YAML — ignore */ }
|
|
123
|
+
return undefined;
|
|
124
|
+
}
|
|
125
|
+
|
|
105
126
|
function runPreflight(cwd: string, target: DeliveryTarget): PreflightCheck {
|
|
106
127
|
const base = qaDir(cwd, target);
|
|
107
128
|
const genBase = generatedDir(cwd, target);
|
|
@@ -240,9 +261,18 @@ async function exportTarget(
|
|
|
240
261
|
const results = resultsFile ? loadPlaywrightReport(resultsFile) : null;
|
|
241
262
|
|
|
242
263
|
const merged = mergeFeatureAndSpec(feature, spec);
|
|
264
|
+
// Screens get their URL path from the .feature file directly. Flows record
|
|
265
|
+
// it in selectors/<name>.yaml under the page-selector block — fall back to
|
|
266
|
+
// that so the Environment column shows a full URL for flows too.
|
|
267
|
+
let featurePath = feature.featurePath;
|
|
268
|
+
if (!featurePath && target.isFlow) {
|
|
269
|
+
const selectorsFile = path.join(base, 'selectors', `${target.name}.yaml`);
|
|
270
|
+
featurePath = readFlowPagePath(selectorsFile);
|
|
271
|
+
}
|
|
243
272
|
const rows = buildTestCaseRows({
|
|
244
273
|
screen: label,
|
|
245
274
|
featureName: feature.featureName,
|
|
275
|
+
featurePath,
|
|
246
276
|
merged,
|
|
247
277
|
testData,
|
|
248
278
|
results,
|