@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.
- package/.github/workflows/ci.yml +26 -9
- package/.github/workflows/release.yml +9 -10
- package/bin/helpers/tfs.d.ts +3 -0
- package/bin/helpers/tfs.js +44 -7
- package/bin/helpers/tfs.js.map +1 -1
- package/bin/modules/GitDataProvider.d.ts +10 -0
- package/bin/modules/GitDataProvider.js +10 -0
- package/bin/modules/GitDataProvider.js.map +1 -1
- package/bin/modules/MangementDataProvider.js +7 -1
- package/bin/modules/MangementDataProvider.js.map +1 -1
- package/bin/modules/TestDataProvider.js +0 -1
- package/bin/modules/TestDataProvider.js.map +1 -1
- package/bin/modules/TicketsDataProvider.d.ts +63 -27
- package/bin/modules/TicketsDataProvider.js +226 -122
- package/bin/modules/TicketsDataProvider.js.map +1 -1
- package/bin/tests/helpers/helper.test.js +279 -0
- package/bin/tests/helpers/helper.test.js.map +1 -0
- package/bin/{helpers/test → tests/helpers}/tfs.test.js +312 -49
- package/bin/tests/helpers/tfs.test.js.map +1 -0
- package/bin/tests/index.test.js +25 -0
- package/bin/tests/index.test.js.map +1 -0
- package/bin/tests/models/tfs-data.test.js +160 -0
- package/bin/tests/models/tfs-data.test.js.map +1 -0
- package/bin/{modules/test → tests/modules}/JfrogDataProvider.test.js +9 -9
- package/bin/tests/modules/JfrogDataProvider.test.js.map +1 -0
- package/bin/tests/modules/ResultDataProvider.test.js +1942 -0
- package/bin/tests/modules/ResultDataProvider.test.js.map +1 -0
- package/bin/tests/modules/gitDataProvider.test.js +1888 -0
- package/bin/tests/modules/gitDataProvider.test.js.map +1 -0
- package/bin/{modules/test → tests/modules}/managmentDataProvider.test.js +39 -31
- package/bin/tests/modules/managmentDataProvider.test.js.map +1 -0
- package/bin/tests/modules/pipelineDataProvider.test.d.ts +1 -0
- package/bin/tests/modules/pipelineDataProvider.test.js +783 -0
- package/bin/tests/modules/pipelineDataProvider.test.js.map +1 -0
- package/bin/tests/modules/testDataProvider.test.d.ts +1 -0
- package/bin/tests/modules/testDataProvider.test.js +717 -0
- package/bin/tests/modules/testDataProvider.test.js.map +1 -0
- package/bin/tests/modules/ticketsDataProvider.test.d.ts +1 -0
- package/bin/tests/modules/ticketsDataProvider.test.js +1681 -0
- package/bin/tests/modules/ticketsDataProvider.test.js.map +1 -0
- package/bin/tests/utils/DataProviderUtils.test.d.ts +1 -0
- package/bin/tests/utils/DataProviderUtils.test.js +61 -0
- package/bin/tests/utils/DataProviderUtils.test.js.map +1 -0
- package/bin/tests/utils/testStepParserHelper.test.d.ts +1 -0
- package/bin/tests/utils/testStepParserHelper.test.js +359 -0
- package/bin/tests/utils/testStepParserHelper.test.js.map +1 -0
- package/package.json +10 -1
- package/src/helpers/tfs.ts +51 -7
- package/src/modules/GitDataProvider.ts +10 -0
- package/src/modules/MangementDataProvider.ts +6 -1
- package/src/modules/TestDataProvider.ts +0 -1
- package/src/modules/TicketsDataProvider.ts +311 -151
- package/src/tests/helpers/helper.test.ts +337 -0
- package/src/tests/helpers/tfs.test.ts +1092 -0
- package/src/tests/index.test.ts +28 -0
- package/src/tests/models/tfs-data.test.ts +203 -0
- package/src/tests/modules/JfrogDataProvider.test.ts +167 -0
- package/src/tests/modules/ResultDataProvider.test.ts +2571 -0
- package/src/tests/modules/gitDataProvider.test.ts +2628 -0
- package/src/{modules/test → tests/modules}/managmentDataProvider.test.ts +63 -32
- package/src/tests/modules/pipelineDataProvider.test.ts +1038 -0
- package/src/tests/modules/testDataProvider.test.ts +1046 -0
- package/src/tests/modules/ticketsDataProvider.test.ts +2204 -0
- package/src/tests/utils/DataProviderUtils.test.ts +76 -0
- package/src/tests/utils/testStepParserHelper.test.ts +437 -0
- package/tsconfig.json +1 -0
- package/bin/helpers/test/tfs.test.js.map +0 -1
- package/bin/modules/test/JfrogDataProvider.test.js.map +0 -1
- package/bin/modules/test/ResultDataProvider.test.js +0 -444
- package/bin/modules/test/ResultDataProvider.test.js.map +0 -1
- package/bin/modules/test/gitDataProvider.test.js +0 -433
- package/bin/modules/test/gitDataProvider.test.js.map +0 -1
- package/bin/modules/test/managmentDataProvider.test.js.map +0 -1
- package/bin/modules/test/pipelineDataProvider.test.js +0 -237
- package/bin/modules/test/pipelineDataProvider.test.js.map +0 -1
- package/bin/modules/test/testDataProvider.test.js +0 -234
- package/bin/modules/test/testDataProvider.test.js.map +0 -1
- package/bin/modules/test/ticketsDataProvider.test.js +0 -322
- package/bin/modules/test/ticketsDataProvider.test.js.map +0 -1
- package/src/helpers/test/tfs.test.ts +0 -748
- package/src/modules/test/JfrogDataProvider.test.ts +0 -171
- package/src/modules/test/ResultDataProvider.test.ts +0 -542
- package/src/modules/test/gitDataProvider.test.ts +0 -691
- package/src/modules/test/pipelineDataProvider.test.ts +0 -292
- package/src/modules/test/testDataProvider.test.ts +0 -318
- package/src/modules/test/ticketsDataProvider.test.ts +0 -434
- /package/bin/{helpers/test/tfs.test.d.ts → tests/helpers/helper.test.d.ts} +0 -0
- /package/bin/{modules/test/JfrogDataProvider.test.d.ts → tests/helpers/tfs.test.d.ts} +0 -0
- /package/bin/{modules/test/ResultDataProvider.test.d.ts → tests/index.test.d.ts} +0 -0
- /package/bin/{modules/test/gitDataProvider.test.d.ts → tests/models/tfs-data.test.d.ts} +0 -0
- /package/bin/{modules/test/managmentDataProvider.test.d.ts → tests/modules/JfrogDataProvider.test.d.ts} +0 -0
- /package/bin/{modules/test/pipelineDataProvider.test.d.ts → tests/modules/ResultDataProvider.test.d.ts} +0 -0
- /package/bin/{modules/test/testDataProvider.test.d.ts → tests/modules/gitDataProvider.test.d.ts} +0 -0
- /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 '
|
|
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
|
|
151
|
-
const
|
|
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(
|
|
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
|
-
|
|
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
|
|
284
|
-
const
|
|
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(
|
|
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
|
+
});
|