@elisra-devops/docgen-data-provider 1.63.12 → 1.67.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 (94) hide show
  1. package/.github/workflows/ci.yml +26 -9
  2. package/.github/workflows/release.yml +9 -10
  3. package/bin/helpers/tfs.d.ts +3 -0
  4. package/bin/helpers/tfs.js +44 -7
  5. package/bin/helpers/tfs.js.map +1 -1
  6. package/bin/modules/GitDataProvider.d.ts +10 -0
  7. package/bin/modules/GitDataProvider.js +10 -0
  8. package/bin/modules/GitDataProvider.js.map +1 -1
  9. package/bin/modules/MangementDataProvider.js +7 -1
  10. package/bin/modules/MangementDataProvider.js.map +1 -1
  11. package/bin/modules/TestDataProvider.js +0 -1
  12. package/bin/modules/TestDataProvider.js.map +1 -1
  13. package/bin/modules/TicketsDataProvider.d.ts +63 -27
  14. package/bin/modules/TicketsDataProvider.js +226 -122
  15. package/bin/modules/TicketsDataProvider.js.map +1 -1
  16. package/bin/tests/helpers/helper.test.js +279 -0
  17. package/bin/tests/helpers/helper.test.js.map +1 -0
  18. package/bin/{helpers/test → tests/helpers}/tfs.test.js +312 -49
  19. package/bin/tests/helpers/tfs.test.js.map +1 -0
  20. package/bin/tests/index.test.js +25 -0
  21. package/bin/tests/index.test.js.map +1 -0
  22. package/bin/tests/models/tfs-data.test.js +160 -0
  23. package/bin/tests/models/tfs-data.test.js.map +1 -0
  24. package/bin/{modules/test → tests/modules}/JfrogDataProvider.test.js +9 -9
  25. package/bin/tests/modules/JfrogDataProvider.test.js.map +1 -0
  26. package/bin/tests/modules/ResultDataProvider.test.js +1942 -0
  27. package/bin/tests/modules/ResultDataProvider.test.js.map +1 -0
  28. package/bin/tests/modules/gitDataProvider.test.js +1888 -0
  29. package/bin/tests/modules/gitDataProvider.test.js.map +1 -0
  30. package/bin/{modules/test → tests/modules}/managmentDataProvider.test.js +39 -31
  31. package/bin/tests/modules/managmentDataProvider.test.js.map +1 -0
  32. package/bin/tests/modules/pipelineDataProvider.test.d.ts +1 -0
  33. package/bin/tests/modules/pipelineDataProvider.test.js +783 -0
  34. package/bin/tests/modules/pipelineDataProvider.test.js.map +1 -0
  35. package/bin/tests/modules/testDataProvider.test.d.ts +1 -0
  36. package/bin/tests/modules/testDataProvider.test.js +717 -0
  37. package/bin/tests/modules/testDataProvider.test.js.map +1 -0
  38. package/bin/tests/modules/ticketsDataProvider.test.d.ts +1 -0
  39. package/bin/tests/modules/ticketsDataProvider.test.js +1681 -0
  40. package/bin/tests/modules/ticketsDataProvider.test.js.map +1 -0
  41. package/bin/tests/utils/DataProviderUtils.test.d.ts +1 -0
  42. package/bin/tests/utils/DataProviderUtils.test.js +61 -0
  43. package/bin/tests/utils/DataProviderUtils.test.js.map +1 -0
  44. package/bin/tests/utils/testStepParserHelper.test.d.ts +1 -0
  45. package/bin/tests/utils/testStepParserHelper.test.js +359 -0
  46. package/bin/tests/utils/testStepParserHelper.test.js.map +1 -0
  47. package/package.json +10 -1
  48. package/src/helpers/tfs.ts +51 -7
  49. package/src/modules/GitDataProvider.ts +10 -0
  50. package/src/modules/MangementDataProvider.ts +6 -1
  51. package/src/modules/TestDataProvider.ts +0 -1
  52. package/src/modules/TicketsDataProvider.ts +311 -151
  53. package/src/tests/helpers/helper.test.ts +337 -0
  54. package/src/tests/helpers/tfs.test.ts +1092 -0
  55. package/src/tests/index.test.ts +28 -0
  56. package/src/tests/models/tfs-data.test.ts +203 -0
  57. package/src/tests/modules/JfrogDataProvider.test.ts +167 -0
  58. package/src/tests/modules/ResultDataProvider.test.ts +2571 -0
  59. package/src/tests/modules/gitDataProvider.test.ts +2628 -0
  60. package/src/{modules/test → tests/modules}/managmentDataProvider.test.ts +63 -32
  61. package/src/tests/modules/pipelineDataProvider.test.ts +1038 -0
  62. package/src/tests/modules/testDataProvider.test.ts +1046 -0
  63. package/src/tests/modules/ticketsDataProvider.test.ts +2204 -0
  64. package/src/tests/utils/DataProviderUtils.test.ts +76 -0
  65. package/src/tests/utils/testStepParserHelper.test.ts +437 -0
  66. package/tsconfig.json +1 -0
  67. package/bin/helpers/test/tfs.test.js.map +0 -1
  68. package/bin/modules/test/JfrogDataProvider.test.js.map +0 -1
  69. package/bin/modules/test/ResultDataProvider.test.js +0 -444
  70. package/bin/modules/test/ResultDataProvider.test.js.map +0 -1
  71. package/bin/modules/test/gitDataProvider.test.js +0 -433
  72. package/bin/modules/test/gitDataProvider.test.js.map +0 -1
  73. package/bin/modules/test/managmentDataProvider.test.js.map +0 -1
  74. package/bin/modules/test/pipelineDataProvider.test.js +0 -237
  75. package/bin/modules/test/pipelineDataProvider.test.js.map +0 -1
  76. package/bin/modules/test/testDataProvider.test.js +0 -234
  77. package/bin/modules/test/testDataProvider.test.js.map +0 -1
  78. package/bin/modules/test/ticketsDataProvider.test.js +0 -322
  79. package/bin/modules/test/ticketsDataProvider.test.js.map +0 -1
  80. package/src/helpers/test/tfs.test.ts +0 -748
  81. package/src/modules/test/JfrogDataProvider.test.ts +0 -171
  82. package/src/modules/test/ResultDataProvider.test.ts +0 -542
  83. package/src/modules/test/gitDataProvider.test.ts +0 -691
  84. package/src/modules/test/pipelineDataProvider.test.ts +0 -292
  85. package/src/modules/test/testDataProvider.test.ts +0 -318
  86. package/src/modules/test/ticketsDataProvider.test.ts +0 -434
  87. /package/bin/{helpers/test/tfs.test.d.ts → tests/helpers/helper.test.d.ts} +0 -0
  88. /package/bin/{modules/test/JfrogDataProvider.test.d.ts → tests/helpers/tfs.test.d.ts} +0 -0
  89. /package/bin/{modules/test/ResultDataProvider.test.d.ts → tests/index.test.d.ts} +0 -0
  90. /package/bin/{modules/test/gitDataProvider.test.d.ts → tests/models/tfs-data.test.d.ts} +0 -0
  91. /package/bin/{modules/test/managmentDataProvider.test.d.ts → tests/modules/JfrogDataProvider.test.d.ts} +0 -0
  92. /package/bin/{modules/test/pipelineDataProvider.test.d.ts → tests/modules/ResultDataProvider.test.d.ts} +0 -0
  93. /package/bin/{modules/test/testDataProvider.test.d.ts → tests/modules/gitDataProvider.test.d.ts} +0 -0
  94. /package/bin/{modules/test/ticketsDataProvider.test.d.ts → tests/modules/managmentDataProvider.test.d.ts} +0 -0
@@ -1,7 +1,9 @@
1
1
  import { TFSServices } from '../../helpers/tfs';
2
- import MangementDataProvider from '../MangementDataProvider';
2
+ import MangementDataProvider from '../../modules/MangementDataProvider';
3
+ import logger from '../../utils/logger';
3
4
 
4
5
  jest.mock('../../helpers/tfs');
6
+ jest.mock('../../utils/logger');
5
7
 
6
8
  describe('MangementDataProvider', () => {
7
9
  let managementDataProvider: MangementDataProvider;
@@ -19,8 +21,8 @@ describe('MangementDataProvider', () => {
19
21
  const mockResponse = {
20
22
  value: [
21
23
  { id: 'link-1', name: 'Child' },
22
- { id: 'link-2', name: 'Related' }
23
- ]
24
+ { id: 'link-2', name: 'Related' },
25
+ ],
24
26
  };
25
27
  (TFSServices.getItemContent as jest.Mock).mockResolvedValueOnce(mockResponse);
26
28
 
@@ -44,8 +46,7 @@ describe('MangementDataProvider', () => {
44
46
  (TFSServices.getItemContent as jest.Mock).mockRejectedValueOnce(expectedError);
45
47
 
46
48
  // Act & Assert
47
- await expect(managementDataProvider.GetCllectionLinkTypes())
48
- .rejects.toThrow('API call failed');
49
+ await expect(managementDataProvider.GetCllectionLinkTypes()).rejects.toThrow('API call failed');
49
50
 
50
51
  expect(TFSServices.getItemContent).toHaveBeenCalledWith(
51
52
  `${mockOrgUrl}_apis/wit/workitemrelationtypes`,
@@ -64,8 +65,8 @@ describe('MangementDataProvider', () => {
64
65
  count: 2,
65
66
  value: [
66
67
  { id: 'project-1', name: 'Project One' },
67
- { id: 'project-2', name: 'Project Two' }
68
- ]
68
+ { id: 'project-2', name: 'Project Two' },
69
+ ],
69
70
  };
70
71
  (TFSServices.getItemContent as jest.Mock).mockResolvedValueOnce(mockResponse);
71
72
 
@@ -86,8 +87,7 @@ describe('MangementDataProvider', () => {
86
87
  (TFSServices.getItemContent as jest.Mock).mockRejectedValueOnce(expectedError);
87
88
 
88
89
  // Act & Assert
89
- await expect(managementDataProvider.GetProjects())
90
- .rejects.toThrow('Projects API call failed');
90
+ await expect(managementDataProvider.GetProjects()).rejects.toThrow('Projects API call failed');
91
91
 
92
92
  expect(TFSServices.getItemContent).toHaveBeenCalledWith(
93
93
  `${mockOrgUrl}_apis/projects?$top=1000`,
@@ -103,8 +103,8 @@ describe('MangementDataProvider', () => {
103
103
  count: 2,
104
104
  value: [
105
105
  { id: 'project-1', name: 'Project One' },
106
- { id: 'project-2', name: 'Project Two' }
107
- ]
106
+ { id: 'project-2', name: 'Project Two' },
107
+ ],
108
108
  };
109
109
  const expectedProject = { id: 'project-2', name: 'Project Two' };
110
110
 
@@ -125,8 +125,8 @@ describe('MangementDataProvider', () => {
125
125
  count: 2,
126
126
  value: [
127
127
  { id: 'project-1', name: 'Project One' },
128
- { id: 'project-2', name: 'Project Two' }
129
- ]
128
+ { id: 'project-2', name: 'Project Two' },
129
+ ],
130
130
  };
131
131
 
132
132
  // Mock GetProjects to return our mock data
@@ -147,15 +147,15 @@ describe('MangementDataProvider', () => {
147
147
  // Mock GetProjects to throw an error
148
148
  jest.spyOn(managementDataProvider, 'GetProjects').mockRejectedValueOnce(expectedError);
149
149
 
150
- // Mock console.log to capture the error
151
- const consoleLogSpy = jest.spyOn(console, 'log');
150
+ // Mock logger.error to capture the error
151
+ const loggerErrorSpy = jest.spyOn(logger, 'error');
152
152
 
153
153
  // Act
154
154
  const result = await managementDataProvider.GetProjectByName('Any Project');
155
155
 
156
156
  // Assert
157
157
  expect(managementDataProvider.GetProjects).toHaveBeenCalledTimes(1);
158
- expect(consoleLogSpy).toHaveBeenCalledWith(expectedError);
158
+ expect(loggerErrorSpy).toHaveBeenCalledWith(expectedError);
159
159
  expect(result).toEqual({});
160
160
  });
161
161
  });
@@ -185,8 +185,9 @@ describe('MangementDataProvider', () => {
185
185
  (TFSServices.getItemContent as jest.Mock).mockRejectedValueOnce(expectedError);
186
186
 
187
187
  // Act & Assert
188
- await expect(managementDataProvider.GetProjectByID(projectId))
189
- .rejects.toThrow('Project API call failed');
188
+ await expect(managementDataProvider.GetProjectByID(projectId)).rejects.toThrow(
189
+ 'Project API call failed'
190
+ );
190
191
 
191
192
  expect(TFSServices.getItemContent).toHaveBeenCalledWith(
192
193
  `${mockOrgUrl}_apis/projects/${projectId}`,
@@ -201,7 +202,7 @@ describe('MangementDataProvider', () => {
201
202
  const mockResponse = {
202
203
  id: 'user-123',
203
204
  displayName: 'Test User',
204
- emailAddress: 'test@example.com'
205
+ emailAddress: 'test@example.com',
205
206
  };
206
207
  (TFSServices.getItemContent as jest.Mock).mockResolvedValueOnce(mockResponse);
207
208
 
@@ -222,8 +223,7 @@ describe('MangementDataProvider', () => {
222
223
  (TFSServices.getItemContent as jest.Mock).mockRejectedValueOnce(expectedError);
223
224
 
224
225
  // Act & Assert
225
- await expect(managementDataProvider.GetUserProfile())
226
- .rejects.toThrow('User profile API call failed');
226
+ await expect(managementDataProvider.GetUserProfile()).rejects.toThrow('User profile API call failed');
227
227
 
228
228
  expect(TFSServices.getItemContent).toHaveBeenCalledWith(
229
229
  `${mockOrgUrl}_api/_common/GetUserProfile?__v=5`,
@@ -244,7 +244,40 @@ describe('MangementDataProvider', () => {
244
244
  expect(provider.orgUrl).toBe(customOrgUrl);
245
245
  expect(provider.token).toBe(customToken);
246
246
  });
247
+
248
+ describe('CheckOrgUrlValidity', () => {
249
+ it('should call getItemContent with empty token when none is provided', async () => {
250
+ (TFSServices.getItemContent as jest.Mock).mockResolvedValueOnce({ ok: true });
251
+
252
+ await managementDataProvider.CheckOrgUrlValidity();
253
+
254
+ expect(TFSServices.getItemContent).toHaveBeenCalledWith(
255
+ `${mockOrgUrl}_apis/connectionData`,
256
+ '',
257
+ 'get',
258
+ null,
259
+ null,
260
+ false
261
+ );
262
+ });
263
+
264
+ it('should call getItemContent with provided token when given', async () => {
265
+ (TFSServices.getItemContent as jest.Mock).mockResolvedValueOnce({ ok: true });
266
+
267
+ await managementDataProvider.CheckOrgUrlValidity('override');
268
+
269
+ expect(TFSServices.getItemContent).toHaveBeenCalledWith(
270
+ `${mockOrgUrl}_apis/connectionData`,
271
+ 'override',
272
+ 'get',
273
+ null,
274
+ null,
275
+ false
276
+ );
277
+ });
278
+ });
247
279
  });
280
+
248
281
  describe('MangementDataProvider - Additional Tests', () => {
249
282
  let managementDataProvider: MangementDataProvider;
250
283
  const mockOrgUrl = 'https://dev.azure.com/organization/';
@@ -260,7 +293,7 @@ describe('MangementDataProvider - Additional Tests', () => {
260
293
  // Arrange
261
294
  const mockEmptyProjects = {
262
295
  count: 0,
263
- value: []
296
+ value: [],
264
297
  };
265
298
  jest.spyOn(managementDataProvider, 'GetProjects').mockResolvedValueOnce(mockEmptyProjects);
266
299
 
@@ -275,29 +308,27 @@ describe('MangementDataProvider - Additional Tests', () => {
275
308
  it('should handle projects response with missing value property', async () => {
276
309
  // Arrange
277
310
  const mockInvalidProjects = {
278
- count: 0
311
+ count: 0,
279
312
  // no value property
280
313
  };
281
314
  jest.spyOn(managementDataProvider, 'GetProjects').mockResolvedValueOnce(mockInvalidProjects);
282
315
 
283
- // Mock console.log to capture the error
284
- const consoleLogSpy = jest.spyOn(console, 'log');
316
+ // Mock logger.error to capture the error
317
+ const loggerErrorSpy = jest.spyOn(logger, 'error');
285
318
 
286
319
  // Act
287
320
  const result = await managementDataProvider.GetProjectByName('Any Project');
288
321
 
289
322
  // Assert
290
323
  expect(result).toEqual({});
291
- expect(consoleLogSpy).toHaveBeenCalled();
324
+ expect(loggerErrorSpy).toHaveBeenCalled();
292
325
  });
293
326
 
294
327
  it('should be case sensitive when matching project names', async () => {
295
328
  // Arrange
296
329
  const mockProjects = {
297
330
  count: 1,
298
- value: [
299
- { id: 'project-1', name: 'Project One' }
300
- ]
331
+ value: [{ id: 'project-1', name: 'Project One' }],
301
332
  };
302
333
  jest.spyOn(managementDataProvider, 'GetProjects').mockResolvedValueOnce(mockProjects);
303
334
 
@@ -379,8 +410,8 @@ describe('MangementDataProvider - Additional Tests', () => {
379
410
  // Contains unexpected fields
380
411
  unusualField: 'unusual value',
381
412
  nestedData: {
382
- someProperty: 'some value'
383
- }
413
+ someProperty: 'some value',
414
+ },
384
415
  };
385
416
  (TFSServices.getItemContent as jest.Mock).mockResolvedValueOnce(unusualProfileData);
386
417
 
@@ -391,4 +422,4 @@ describe('MangementDataProvider - Additional Tests', () => {
391
422
  expect(result).toEqual(unusualProfileData);
392
423
  });
393
424
  });
394
- });
425
+ });