@elisra-devops/docgen-skins 0.23.0 → 0.24.0

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 (55) hide show
  1. package/.github/workflows/ci.yml +18 -9
  2. package/bin/index.d.ts +5 -1
  3. package/bin/index.js +43 -16
  4. package/bin/index.js.map +1 -1
  5. package/bin/models/json/JSONRun.js.map +1 -1
  6. package/bin/models/json/file/JSONFile.js.map +1 -1
  7. package/bin/models/json/paragraph/JSONParagraph.js.map +1 -1
  8. package/bin/models/json/paragraph/JSONRichTextParagraph.js.map +1 -1
  9. package/bin/models/json/paragraph/JSONTestSuiteHeaderParagraph.js.map +1 -1
  10. package/bin/models/json/table/JSONTable.d.ts +2 -1
  11. package/bin/models/json/table/JSONTable.js +20 -6
  12. package/bin/models/json/table/JSONTable.js.map +1 -1
  13. package/bin/models/json/table/JSONTableCell.js.map +1 -1
  14. package/bin/models/json/table/JSONTableRow.js.map +1 -1
  15. package/bin/services/logger.js +17 -7
  16. package/bin/services/logger.js.map +1 -1
  17. package/bin/test/JSONFile.test.js +48 -0
  18. package/bin/test/JSONFile.test.js.map +1 -0
  19. package/bin/test/JSONRun.test.d.ts +1 -0
  20. package/bin/test/JSONRun.test.js +93 -0
  21. package/bin/test/JSONRun.test.js.map +1 -0
  22. package/bin/test/JSONTable.test.d.ts +1 -0
  23. package/bin/test/JSONTable.test.js +79 -0
  24. package/bin/test/JSONTable.test.js.map +1 -0
  25. package/bin/test/JSONTableCell.test.d.ts +1 -0
  26. package/bin/test/JSONTableCell.test.js +129 -0
  27. package/bin/test/JSONTableCell.test.js.map +1 -0
  28. package/bin/test/JSONTableRow.test.d.ts +1 -0
  29. package/bin/test/JSONTableRow.test.js +40 -0
  30. package/bin/test/JSONTableRow.test.js.map +1 -0
  31. package/bin/test/JSONTestSuiteHeaderParagraph.test.d.ts +1 -0
  32. package/bin/test/JSONTestSuiteHeaderParagraph.test.js +39 -0
  33. package/bin/test/JSONTestSuiteHeaderParagraph.test.js.map +1 -0
  34. package/bin/test/SkinsEdgeCases.test.d.ts +1 -0
  35. package/bin/test/SkinsEdgeCases.test.js +399 -0
  36. package/bin/test/SkinsEdgeCases.test.js.map +1 -0
  37. package/bin/test/integration/skins.integration.test.d.ts +1 -0
  38. package/bin/test/integration/skins.integration.test.js +492 -0
  39. package/bin/test/integration/skins.integration.test.js.map +1 -0
  40. package/package.json +5 -5
  41. package/src/index.ts +45 -10
  42. package/src/models/json/table/JSONTable.ts +19 -3
  43. package/src/test/JSONFile.test.ts +59 -0
  44. package/src/test/JSONRun.test.ts +118 -0
  45. package/src/test/JSONTable.test.ts +126 -0
  46. package/src/test/JSONTableCell.test.ts +150 -0
  47. package/src/test/JSONTableRow.test.ts +42 -0
  48. package/src/test/JSONTestSuiteHeaderParagraph.test.ts +40 -0
  49. package/src/test/SkinsEdgeCases.test.ts +530 -0
  50. package/src/test/integration/skins.integration.test.ts +608 -0
  51. package/tsconfig.json +2 -2
  52. package/bin/test/skins.test.js +0 -126
  53. package/bin/test/skins.test.js.map +0 -1
  54. package/src/test/skins.test.ts +0 -189
  55. /package/bin/test/{skins.test.d.ts → JSONFile.test.d.ts} +0 -0
@@ -0,0 +1,492 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const index_1 = __importDefault(require("../../index"));
16
+ jest.mock('../../services/logger', () => ({
17
+ __esModule: true,
18
+ default: {
19
+ debug: jest.fn(),
20
+ info: jest.fn(),
21
+ warn: jest.fn(),
22
+ error: jest.fn(),
23
+ silly: jest.fn(),
24
+ },
25
+ }));
26
+ jest.setTimeout(300000);
27
+ const styles = {
28
+ isBold: false,
29
+ IsItalic: false,
30
+ IsUnderline: false,
31
+ Size: 10,
32
+ Uri: null,
33
+ Font: 'New Times Roman',
34
+ InsertLineBreak: true,
35
+ InsertSpace: true,
36
+ };
37
+ const headerStyles = {
38
+ isBold: true,
39
+ IsItalic: false,
40
+ IsUnderline: false,
41
+ Size: 12,
42
+ Uri: null,
43
+ Font: 'Arial',
44
+ InsertLineBreak: false,
45
+ InsertSpace: true,
46
+ };
47
+ // Minimal inline fixtures to replace removed JSON mock-data and snapshot files
48
+ const flatQueryData = [
49
+ {
50
+ url: 'http://example.com/wi/1',
51
+ level: 0,
52
+ Source: 1,
53
+ fields: [
54
+ { name: 'ID', value: 1, width: '50%' },
55
+ { name: 'Title', value: 'First item', width: '50%' },
56
+ ],
57
+ },
58
+ {
59
+ url: 'http://example.com/wi/2',
60
+ level: 0,
61
+ Source: 2,
62
+ fields: [
63
+ { name: 'ID', value: 2, width: '50%' },
64
+ { name: 'Title', value: 'Second item', width: '50%' },
65
+ ],
66
+ },
67
+ ];
68
+ const treeQueryData = [
69
+ {
70
+ url: 'http://example.com/wi/10',
71
+ level: 0,
72
+ Source: 10,
73
+ fields: [
74
+ { name: 'ID', value: 10 },
75
+ { name: 'Title', value: 'Parent item' },
76
+ ],
77
+ },
78
+ {
79
+ url: 'http://example.com/wi/11',
80
+ level: 1,
81
+ Source: 11,
82
+ fields: [
83
+ { name: 'ID', value: 11 },
84
+ { name: 'Title', value: 'Child item' },
85
+ ],
86
+ },
87
+ ];
88
+ const simpleTestSuites = [
89
+ {
90
+ suiteSkinData: {
91
+ fields: [
92
+ { name: 'Title', value: 'Suite 1' },
93
+ { name: 'ID', value: 1 },
94
+ ],
95
+ level: 1,
96
+ },
97
+ testCases: [
98
+ {
99
+ id: 101,
100
+ testCaseHeaderSkinData: {
101
+ fields: [
102
+ { name: 'Title', value: 'TC-1' },
103
+ { name: 'ID', value: 101 },
104
+ { name: 'Description: ', value: '<p>Simple description</p>' },
105
+ ],
106
+ level: 1,
107
+ },
108
+ testCaseRequirements: [],
109
+ testCaseLinkedMom: [],
110
+ testCaseBugs: [],
111
+ testCaseStepsSkinData: [],
112
+ testCaseAttachments: [],
113
+ },
114
+ ],
115
+ },
116
+ ];
117
+ const complexTestSuites = [
118
+ {
119
+ suiteSkinData: {
120
+ fields: [
121
+ { name: 'Title', value: 'Complex Suite' },
122
+ { name: 'ID', value: 200 },
123
+ ],
124
+ level: 1,
125
+ },
126
+ testCases: [
127
+ {
128
+ id: 201,
129
+ testCaseHeaderSkinData: {
130
+ fields: [
131
+ { name: 'Title', value: 'TC-Complex' },
132
+ { name: 'ID', value: 201 },
133
+ { name: 'Description: ', value: '<p>Complex <b>HTML</b> description</p>' },
134
+ ],
135
+ level: 1,
136
+ },
137
+ testCaseRequirements: [
138
+ {
139
+ url: 'http://example.com/req/1',
140
+ level: 0,
141
+ Source: 1,
142
+ fields: [
143
+ { name: 'Requirement', value: 'REQ-1' },
144
+ { name: 'Title', value: 'First requirement' },
145
+ ],
146
+ },
147
+ ],
148
+ testCaseLinkedMom: [
149
+ {
150
+ url: 'http://example.com/mom/1',
151
+ level: 0,
152
+ Source: 2,
153
+ fields: [
154
+ { name: 'MOM', value: 'MOM-1' },
155
+ { name: 'Title', value: 'First MOM' },
156
+ ],
157
+ },
158
+ ],
159
+ testCaseBugs: [
160
+ {
161
+ url: 'http://example.com/bug/1',
162
+ level: 0,
163
+ Source: 3,
164
+ fields: [
165
+ { name: 'Bug', value: 'BUG-1' },
166
+ { name: 'Title', value: 'First bug' },
167
+ ],
168
+ },
169
+ ],
170
+ testCaseStepsSkinData: [
171
+ {
172
+ url: 'http://example.com/step/1',
173
+ level: 0,
174
+ Source: 4,
175
+ fields: [
176
+ { name: 'Step', value: 'Do something' },
177
+ { name: 'Expected', value: 'It works' },
178
+ ],
179
+ },
180
+ ],
181
+ testCaseAttachments: [
182
+ {
183
+ url: 'http://example.com/attach/1',
184
+ level: 0,
185
+ Source: 5,
186
+ fields: [{ name: 'Attachment', value: 'log.txt' }],
187
+ },
188
+ ],
189
+ testCaseDocAttachmentsAdoptedData: {
190
+ stepLevel: [
191
+ {
192
+ type: 'SubHeader',
193
+ field: { name: 'Title', value: 'Step Attachments' },
194
+ },
195
+ {
196
+ type: 'File',
197
+ attachmentLink: 'http://example.com/doc1.pdf',
198
+ attachmentFileName: 'doc1.pdf',
199
+ attachmentType: 'asEmbedded',
200
+ includeAttachmentContent: true,
201
+ },
202
+ ],
203
+ testCaseLevel: [
204
+ {
205
+ type: 'SubHeader',
206
+ field: { name: 'Title', value: 'Case Attachments' },
207
+ },
208
+ {
209
+ type: 'File',
210
+ attachmentLink: 'http://example.com/doc2.pdf',
211
+ attachmentFileName: 'doc2.pdf',
212
+ attachmentType: 'asEmbedded',
213
+ includeAttachmentContent: true,
214
+ },
215
+ ],
216
+ },
217
+ insertPageBreak: true,
218
+ },
219
+ ],
220
+ },
221
+ ];
222
+ const changesData = [
223
+ {
224
+ artifact: [
225
+ {
226
+ url: 'http://example.com/artifact/1',
227
+ level: 0,
228
+ Source: 1,
229
+ fields: [
230
+ { name: 'Title', value: 'Artifact 1' },
231
+ { name: 'Description: ', value: '<p>Artifact description</p>' },
232
+ ],
233
+ },
234
+ ],
235
+ artifactChanges: [
236
+ {
237
+ url: 'http://example.com/change/1',
238
+ level: 0,
239
+ Source: 2,
240
+ fields: [
241
+ { name: 'Field', value: 'Status' },
242
+ { name: 'Old', value: 'Open' },
243
+ { name: 'New', value: 'Closed' },
244
+ ],
245
+ },
246
+ ],
247
+ },
248
+ ];
249
+ const richTextTestSuites = [
250
+ {
251
+ suiteSkinData: {
252
+ fields: [
253
+ { name: 'Title', value: 'Rich Suite' },
254
+ { name: 'ID', value: 300 },
255
+ ],
256
+ level: 1,
257
+ },
258
+ testCases: [
259
+ {
260
+ id: 301,
261
+ testCaseHeaderSkinData: {
262
+ fields: [
263
+ { name: 'Title', value: 'TC-Rich' },
264
+ { name: 'ID', value: 301 },
265
+ { name: 'Description: ', value: '<p><b>Rich</b> text description</p>' },
266
+ ],
267
+ level: 1,
268
+ },
269
+ testCaseRequirements: [],
270
+ testCaseLinkedMom: [],
271
+ testCaseBugs: [],
272
+ testCaseStepsSkinData: [],
273
+ testCaseAttachments: [],
274
+ },
275
+ ],
276
+ },
277
+ ];
278
+ describe('Generate json skins from queries - tests', () => {
279
+ test('generate table skin - flat query', () => __awaiter(void 0, void 0, void 0, function* () {
280
+ let skins = new index_1.default('json', 'c:\test.dotx');
281
+ const result = yield skins.addNewContentToDocumentSkin('test', skins.SKIN_TYPE_TABLE, flatQueryData, headerStyles, styles, 4);
282
+ expect(Array.isArray(result)).toBe(true);
283
+ expect(result.length).toBeGreaterThan(0);
284
+ const table = result[0];
285
+ expect(table.type).toBe('table');
286
+ expect(Array.isArray(table.Rows)).toBe(true);
287
+ expect(table.Rows.length).toBeGreaterThanOrEqual(3); // grouped/header + header + data
288
+ }));
289
+ test('generate table skin - tree query', () => __awaiter(void 0, void 0, void 0, function* () {
290
+ let skins = new index_1.default('json', 'c:\test.dotx');
291
+ const result = yield skins.addNewContentToDocumentSkin('test', skins.SKIN_TYPE_TABLE, treeQueryData, headerStyles, styles, 4);
292
+ const table = result[0];
293
+ expect(table.type).toBe('table');
294
+ expect(table.headingLevel).toBe(4);
295
+ expect(table.Rows.length).toBeGreaterThanOrEqual(3);
296
+ }));
297
+ test('generate paragraph skin - flat query', () => __awaiter(void 0, void 0, void 0, function* () {
298
+ let skins = new index_1.default('json', 'c:\test.dotx');
299
+ const result = yield skins.addNewContentToDocumentSkin('test', skins.SKIN_TYPE_PARAGRAPH, flatQueryData, headerStyles, styles, 4);
300
+ // writeFileSync(
301
+ // "flat-query-paragraph-snapshot.json",
302
+ // JSON.stringify(documentSkin)
303
+ // );
304
+ expect(Array.isArray(result)).toBe(true);
305
+ expect(result.length).toBeGreaterThan(0);
306
+ result.forEach((p) => {
307
+ expect(p.type).toBe('paragraph');
308
+ });
309
+ }));
310
+ test('generate paragraph skin - tree query', () => __awaiter(void 0, void 0, void 0, function* () {
311
+ let skins = new index_1.default('json', 'c:\test.dotx');
312
+ const result = yield skins.addNewContentToDocumentSkin('test', skins.SKIN_TYPE_PARAGRAPH, treeQueryData, headerStyles, styles, 4);
313
+ // writeFileSync("tree-query-data.json", JSON.stringify(documentSkin));
314
+ expect(Array.isArray(result)).toBe(true);
315
+ expect(result.length).toBeGreaterThan(0);
316
+ result.forEach((p) => {
317
+ expect(p.type).toBe('paragraph');
318
+ });
319
+ }));
320
+ });
321
+ describe('Generate json skins from testData - tests', () => {
322
+ test('generate std skin - testData', () => __awaiter(void 0, void 0, void 0, function* () {
323
+ let skins = new index_1.default('json', 'c\\test\\test.dotx');
324
+ const result = yield skins.addNewContentToDocumentSkin('system-capabilities', skins.SKIN_TYPE_TEST_PLAN, simpleTestSuites, headerStyles, styles, 4);
325
+ expect(Array.isArray(result)).toBe(true);
326
+ expect(result.length).toBeGreaterThan(0);
327
+ // Expect suite header + test case header + description title + rich text/html
328
+ const hasParagraph = result.some((x) => x.type === 'paragraph');
329
+ expect(hasParagraph).toBe(true);
330
+ }));
331
+ test('generate std skin - complex testData', () => __awaiter(void 0, void 0, void 0, function* () {
332
+ let skins = new index_1.default('json', 'C\\docgen\\documents\\181020205911\\test.dotx');
333
+ const result = yield skins.addNewContentToDocumentSkin('system-capabilities', skins.SKIN_TYPE_TEST_PLAN, complexTestSuites, headerStyles, styles, 4);
334
+ expect(Array.isArray(result)).toBe(true);
335
+ expect(result.length).toBeGreaterThan(0);
336
+ const hasPageBreak = result.some((x) => { var _a; return x.type === 'paragraph' && ((_a = x.runs) === null || _a === void 0 ? void 0 : _a.some((r) => r.InsertPageBreak)); });
337
+ expect(hasPageBreak).toBe(true);
338
+ }));
339
+ test('generate test-std skin alias', () => __awaiter(void 0, void 0, void 0, function* () {
340
+ let skins = new index_1.default('json', 'c\\test\\test.dotx');
341
+ const result = yield skins.addNewContentToDocumentSkin('system-capabilities', skins.SKIN_TYPE_TEST_STD, simpleTestSuites, headerStyles, styles, 4);
342
+ expect(Array.isArray(result)).toBe(true);
343
+ expect(result.length).toBeGreaterThan(0);
344
+ }));
345
+ test('generate test-stp skin alias', () => __awaiter(void 0, void 0, void 0, function* () {
346
+ let skins = new index_1.default('json', 'c\\test\\test.dotx');
347
+ const stpSuitesWithPhase = [
348
+ {
349
+ suiteSkinData: {
350
+ fields: [
351
+ { name: 'Title', value: 'Suite 1' },
352
+ { name: 'ID', value: 1 },
353
+ ],
354
+ level: 1,
355
+ },
356
+ testCases: [
357
+ {
358
+ id: 101,
359
+ testCaseHeaderSkinData: {
360
+ fields: [
361
+ { name: 'Title', value: 'TC-1' },
362
+ { name: 'ID', value: 101 },
363
+ { name: 'Description: ', value: '<p>Simple description</p>' },
364
+ { name: 'Test Phase', value: 'Qualification' },
365
+ ],
366
+ level: 1,
367
+ },
368
+ testCaseRequirements: [],
369
+ testCaseLinkedMom: [],
370
+ testCaseBugs: [],
371
+ testCaseStepsSkinData: [],
372
+ testCaseAttachments: [],
373
+ },
374
+ ],
375
+ },
376
+ ];
377
+ const result = yield skins.addNewContentToDocumentSkin('system-capabilities', skins.SKIN_TYPE_TEST_STP, stpSuitesWithPhase, headerStyles, styles, 4);
378
+ expect(Array.isArray(result)).toBe(true);
379
+ expect(result.length).toBeGreaterThan(0);
380
+ const hasPhaseParagraph = result.some((paragraph) => {
381
+ if ((paragraph === null || paragraph === void 0 ? void 0 : paragraph.type) !== 'paragraph' || !Array.isArray(paragraph === null || paragraph === void 0 ? void 0 : paragraph.runs))
382
+ return false;
383
+ const text = paragraph.runs.map((run) => (run === null || run === void 0 ? void 0 : run.text) || '').join('');
384
+ return text.includes('Test Phase: Qualification');
385
+ });
386
+ expect(hasPhaseParagraph).toBe(true);
387
+ }));
388
+ test('generate test-stp skin alias with +1 heading depth vs std', () => __awaiter(void 0, void 0, void 0, function* () {
389
+ let skins = new index_1.default('json', 'c\\test\\test.dotx');
390
+ const suites = [
391
+ {
392
+ suiteSkinData: {
393
+ fields: [
394
+ { name: 'Title', value: 'Suite H' },
395
+ { name: 'ID', value: 11 },
396
+ ],
397
+ level: 1,
398
+ },
399
+ testCases: [
400
+ {
401
+ id: 111,
402
+ testCaseHeaderSkinData: {
403
+ fields: [
404
+ { name: 'Title', value: 'TC-H' },
405
+ { name: 'ID', value: 111 },
406
+ { name: 'Description: ', value: '<p>Simple description</p>' },
407
+ ],
408
+ level: 2,
409
+ },
410
+ testCaseRequirements: [],
411
+ testCaseLinkedMom: [],
412
+ testCaseBugs: [],
413
+ testCaseStepsSkinData: [],
414
+ testCaseAttachments: [],
415
+ },
416
+ ],
417
+ },
418
+ ];
419
+ const stdResult = yield skins.addNewContentToDocumentSkin('system-capabilities', skins.SKIN_TYPE_TEST_STD, suites, headerStyles, styles, 4);
420
+ const stpResult = yield skins.addNewContentToDocumentSkin('system-capabilities', skins.SKIN_TYPE_TEST_STP, suites, headerStyles, styles, 4);
421
+ const getHeadingLevelByText = (items, text) => {
422
+ const paragraph = items.find((item) => {
423
+ if ((item === null || item === void 0 ? void 0 : item.type) !== 'paragraph' || !Array.isArray(item === null || item === void 0 ? void 0 : item.runs))
424
+ return false;
425
+ const runText = item.runs.map((run) => String((run === null || run === void 0 ? void 0 : run.text) || '')).join('');
426
+ return runText.includes(text) && Number.isInteger(item === null || item === void 0 ? void 0 : item.headingLevel) && item.headingLevel > 0;
427
+ });
428
+ return paragraph === null || paragraph === void 0 ? void 0 : paragraph.headingLevel;
429
+ };
430
+ const stdSuiteHeading = getHeadingLevelByText(stdResult, 'Suite H');
431
+ const stpSuiteHeading = getHeadingLevelByText(stpResult, 'Suite H');
432
+ const stdCaseHeading = getHeadingLevelByText(stdResult, 'TC-H');
433
+ const stpCaseHeading = getHeadingLevelByText(stpResult, 'TC-H');
434
+ expect(stpSuiteHeading).toBe(stdSuiteHeading + 1);
435
+ expect(stpCaseHeading).toBe(stdCaseHeading + 1);
436
+ }));
437
+ test('generate test-str skin alias', () => __awaiter(void 0, void 0, void 0, function* () {
438
+ let skins = new index_1.default('json', 'c\\test\\test.dotx');
439
+ const result = yield skins.addNewContentToDocumentSkin('appendix-a-content-control', skins.SKIN_TYPE_TEST_STR, [
440
+ {
441
+ type: 'Header',
442
+ field: { name: 'Title', value: 'Section A' },
443
+ level: 1,
444
+ },
445
+ {
446
+ field: { name: 'Description', value: 'Row 1' },
447
+ },
448
+ ], headerStyles, styles, 4);
449
+ expect(Array.isArray(result)).toBe(true);
450
+ expect(result.length).toBeGreaterThan(0);
451
+ }));
452
+ test('generate trace table skin', () => __awaiter(void 0, void 0, void 0, function* () {
453
+ let skins = new index_1.default('json', 'c\\test\\test.dotx');
454
+ const traceData = {
455
+ title: {
456
+ fields: [{ name: 'Title', value: 'Trace Table' }],
457
+ level: 1,
458
+ },
459
+ adoptedData: flatQueryData,
460
+ errorMessage: null,
461
+ groupedHeader: {
462
+ leftLabel: 'Left',
463
+ rightLabel: 'Right',
464
+ },
465
+ };
466
+ const result = yield skins.addNewContentToDocumentSkin('system-capabilities', skins.SKIN_TYPE_TRACE, traceData, headerStyles, styles, 4);
467
+ expect(result.length).toBe(2);
468
+ expect(result[0]).toMatchObject({ type: 'paragraph' });
469
+ expect(result[1]).toMatchObject({ type: 'table' });
470
+ }));
471
+ });
472
+ describe('Generate json skins svd - tests', () => {
473
+ test('generate changes between releases skin', () => __awaiter(void 0, void 0, void 0, function* () {
474
+ let skins = new index_1.default('json', 'c\\test\\test.dotx');
475
+ for (let i = 0; i < changesData.length; i++) {
476
+ let artifactChangesData = changesData[i];
477
+ const paragraphSkin = yield skins.addNewContentToDocumentSkin('change-description-content-control', skins.SKIN_TYPE_PARAGRAPH, artifactChangesData.artifact, headerStyles, styles, 4);
478
+ const tableSkin = yield skins.addNewContentToDocumentSkin('change-description-content-control', skins.SKIN_TYPE_TABLE, artifactChangesData.artifactChanges, headerStyles, styles, 4);
479
+ expect(paragraphSkin.length).toBeGreaterThan(0);
480
+ expect(tableSkin[0]).toMatchObject({ type: 'table' });
481
+ }
482
+ }));
483
+ });
484
+ describe('Common functions - tests', () => {
485
+ test('generate richText skin', () => __awaiter(void 0, void 0, void 0, function* () {
486
+ let skins = new index_1.default('json', 'c\\test\\test.dotx');
487
+ const result = yield skins.addNewContentToDocumentSkin('system-capabilities', skins.SKIN_TYPE_TEST_PLAN, richTextTestSuites, headerStyles, styles, 4);
488
+ const hasHtml = result.some((x) => x.type === 'html');
489
+ expect(hasHtml).toBe(true);
490
+ }));
491
+ });
492
+ //# sourceMappingURL=skins.integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skins.integration.test.js","sourceRoot":"","sources":["../../../src/test/integration/skins.integration.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elisra-devops/docgen-skins",
3
- "version": "0.23.0",
3
+ "version": "0.24.0",
4
4
  "description": "Can be outputed in various types:",
5
5
  "main": "./bin/index.js",
6
6
  "types": "./bin/index.d.ts",
@@ -23,10 +23,10 @@
23
23
  },
24
24
  "devDependencies": {
25
25
  "@types/babel__traverse": "^7.20.2",
26
- "@types/jest": "^25.2.3",
27
- "jest": "^25.5.4",
28
- "jest-junit": "^10.0.0",
29
- "ts-jest": "^25.5.1",
26
+ "@types/jest": "^29.5.12",
27
+ "jest": "^29.7.0",
28
+ "jest-junit": "^16.0.0",
29
+ "ts-jest": "^29.2.3",
30
30
  "typescript": "^5.2.2"
31
31
  },
32
32
  "jest": {
package/src/index.ts CHANGED
@@ -22,6 +22,9 @@ export default class Skins {
22
22
  SKIN_TYPE_PARAGRAPH = 'paragraph';
23
23
  SKIN_TYPE_COVER_PAGE = 'cover-page';
24
24
  SKIN_TYPE_TEST_PLAN = 'test-plan';
25
+ SKIN_TYPE_TEST_STD = 'test-std';
26
+ SKIN_TYPE_TEST_STP = 'test-stp';
27
+ SKIN_TYPE_TEST_STR = 'test-str';
25
28
  SKIN_TYPE_SYSTEM_OVERVIEW = 'system-overview';
26
29
  SKIN_TYPE_INSTALLATION = 'installation';
27
30
  SKIN_TYPE_TEST_REPORTER = 'test-reporter';
@@ -38,6 +41,16 @@ export default class Skins {
38
41
  this.skinFormat = skinFormat;
39
42
  }
40
43
 
44
+ private resolveSkinTypeAlias(skinType: string) {
45
+ if (skinType === this.SKIN_TYPE_TEST_STD || skinType === this.SKIN_TYPE_TEST_STP) {
46
+ return this.SKIN_TYPE_TEST_PLAN;
47
+ }
48
+ if (skinType === this.SKIN_TYPE_TEST_STR) {
49
+ return this.SKIN_TYPE_TABLE_STR;
50
+ }
51
+ return skinType;
52
+ }
53
+
41
54
  async addNewContentToDocumentSkin(
42
55
  contentControlTitle: string,
43
56
  skinType: string,
@@ -51,8 +64,10 @@ export default class Skins {
51
64
  ): Promise<any[]> {
52
65
  try {
53
66
  let populatedSkin: any[] = [];
67
+ const isStpTestSkin = skinType === this.SKIN_TYPE_TEST_STP;
68
+ const normalizedSkinType = this.resolveSkinTypeAlias(skinType);
54
69
 
55
- switch (skinType) {
70
+ switch (normalizedSkinType) {
56
71
  case this.SKIN_TYPE_TABLE:
57
72
  populatedSkin = this.generateQueryBasedTable(data, headerStyles, styles, headingLvl);
58
73
 
@@ -84,7 +99,8 @@ export default class Skins {
84
99
  styles,
85
100
  headingLvl,
86
101
  includeAttachments,
87
- isFlattened
102
+ isFlattened,
103
+ isStpTestSkin ? 1 : 0
88
104
  );
89
105
  break;
90
106
  case this.SKIN_TYPE_SYSTEM_OVERVIEW:
@@ -415,7 +431,8 @@ export default class Skins {
415
431
  undefined,
416
432
  undefined,
417
433
  false,
418
- groupedHeader
434
+ groupedHeader,
435
+ true
419
436
  );
420
437
  traceSkin.push(tableSkin.getJSONTable());
421
438
  } else if (errorMessage !== null) {
@@ -441,7 +458,8 @@ export default class Skins {
441
458
  styles: StyleOptions,
442
459
  headingLvl: number = 0,
443
460
  includeAttachments: boolean = true,
444
- isFlattened = false
461
+ isFlattened = false,
462
+ headingLevelOffset = 0
445
463
  ): any[] {
446
464
  logger.debug(`Generating testSkin as ${this.skinFormat}`);
447
465
  let aggregatedErrors: string[] = [];
@@ -486,10 +504,10 @@ export default class Skins {
486
504
  SuiteStyles,
487
505
  suiteId || 0,
488
506
  testSuite.suiteSkinData.level
489
- ? headingLvl + testSuite.suiteSkinData.level
507
+ ? headingLvl + testSuite.suiteSkinData.level + headingLevelOffset
490
508
  : headingLvl
491
- ? headingLvl
492
- : 1
509
+ ? headingLvl + headingLevelOffset
510
+ : 1 + headingLevelOffset
493
511
  );
494
512
  testSkin.push(testSuiteParagraphSkin.getJSONParagraph());
495
513
  }
@@ -515,10 +533,10 @@ export default class Skins {
515
533
  TestCaseStyles,
516
534
  testcase.id || 0,
517
535
  testcase.testCaseHeaderSkinData.level
518
- ? headingLvl + testcase.testCaseHeaderSkinData.level
536
+ ? headingLvl + testcase.testCaseHeaderSkinData.level + headingLevelOffset
519
537
  : headingLvl
520
- ? headingLvl
521
- : 1
538
+ ? headingLvl + headingLevelOffset
539
+ : 1 + headingLevelOffset
522
540
  );
523
541
  testSkin.push(testCaseParagraphSkin.getJSONParagraph());
524
542
 
@@ -539,6 +557,23 @@ export default class Skins {
539
557
  let richTextSkin: any[] = testDescriptionParagraph.getJSONRichTextParagraph();
540
558
  testSkin = [...testSkin, ...richTextSkin];
541
559
 
560
+ const additionalTestCaseFields = Array.isArray(testcase.testCaseHeaderSkinData?.fields)
561
+ ? testcase.testCaseHeaderSkinData.fields.slice(3)
562
+ : [];
563
+ additionalTestCaseFields.forEach((field: any) => {
564
+ const name = String(field?.name || '').trim();
565
+ const value = String(field?.value ?? '').trim();
566
+ if (!value) return;
567
+ const combinedValue = name ? `${name}: ${value}` : value;
568
+ const paragraph = new JSONParagraph(
569
+ { name: '', value: combinedValue },
570
+ styles,
571
+ testcase.id || 0,
572
+ 0
573
+ );
574
+ testSkin.push(paragraph.getJSONParagraph());
575
+ });
576
+
542
577
  if (testcase.testCaseRequirements) {
543
578
  if (testcase.testCaseRequirements.length > 0) {
544
579
  let testDescriptionTitleParagraph = new JSONParagraph(