@elisra-devops/docgen-data-provider 0.4.6

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.
@@ -0,0 +1,80 @@
1
+ import DgDataProviderAzureDevOps from "../..";
2
+
3
+ require("dotenv").config();
4
+ jest.setTimeout(60000);
5
+
6
+ const orgUrl = process.env.ORG_URL;
7
+ const token = process.env.PAT;
8
+ const dgDataProviderAzureDevOps = new DgDataProviderAzureDevOps(orgUrl,token);
9
+
10
+
11
+ describe("pipeline module - tests", () => {
12
+ test("should return pipeline info", async () => {
13
+ let pipelinesDataProvider = await dgDataProviderAzureDevOps.getPipelinesDataProvider()
14
+ let json = await pipelinesDataProvider.getPipelineFromPipelineId(
15
+ "tests",
16
+ 244
17
+ );
18
+ expect(json.id).toBe(244);
19
+ });
20
+ test("should return Release definition", async () => {
21
+ let pipelinesDataProvider = await dgDataProviderAzureDevOps.getPipelinesDataProvider()
22
+ let json = await pipelinesDataProvider.GetReleaseByReleaseId(
23
+ "tests",
24
+ 1
25
+ );
26
+ expect(json.id).toBe(1);
27
+ });
28
+ test("should return OK(200) as response ", async () => {
29
+ let PipelineDataProvider = await dgDataProviderAzureDevOps.getPipelinesDataProvider();
30
+ let result = await PipelineDataProvider.TriggerBuildById(
31
+ "tests",
32
+ "14" ,
33
+ '{"test":"param1","age":"26","name":"denis" }'
34
+ );
35
+ expect(result.status).toBe(200);
36
+ });
37
+ test("should the path to zip file as response ", async () => {
38
+ let PipelineDataProvider = await dgDataProviderAzureDevOps.getPipelinesDataProvider();
39
+ let result = await PipelineDataProvider.GetArtifactByBuildId(
40
+ "tests",
41
+ "245", //buildId
42
+ "_tests" //artifactName
43
+ );
44
+ expect(result).toBeDefined();
45
+ });
46
+
47
+ test("should return pipeline run history ", async () => {
48
+ let PipelineDataProvider = await dgDataProviderAzureDevOps.getPipelinesDataProvider();
49
+ let json = await PipelineDataProvider.GetPipelineRunHistory(
50
+ "tests",
51
+ "14"
52
+ );
53
+ expect(json).toBeDefined();
54
+ })
55
+
56
+ test("should return release defenition history ", async () => {
57
+ let PipelineDataProvider = await dgDataProviderAzureDevOps.getPipelinesDataProvider();
58
+ let json = await PipelineDataProvider.GetReleaseHistory(
59
+ "tests",
60
+ "1"
61
+ );
62
+ expect(json).toBeDefined();
63
+ })
64
+
65
+ test("should return all pipelines ", async () => {
66
+ let PipelineDataProvider = await dgDataProviderAzureDevOps.getPipelinesDataProvider();
67
+ let json = await PipelineDataProvider.GetAllPipelines(
68
+ "tests"
69
+ );
70
+ expect(json).toBeDefined();
71
+ })
72
+
73
+ test("should return all releaseDefenitions ", async () => {
74
+ let PipelineDataProvider = await dgDataProviderAzureDevOps.getPipelinesDataProvider();
75
+ let json = await PipelineDataProvider.GetAllReleaseDefenitions(
76
+ "tests"
77
+ );
78
+ expect(json).toBeDefined();
79
+ })
80
+ });
@@ -0,0 +1,140 @@
1
+ import DgDataProviderAzureDevOps from "../..";
2
+
3
+ require("dotenv").config();
4
+ jest.setTimeout(600000);
5
+
6
+ const orgUrl = process.env.ORG_URL;
7
+ const token = process.env.PAT;
8
+ const dgDataProviderAzureDevOps = new DgDataProviderAzureDevOps(orgUrl,token);
9
+
10
+ describe("Test module - tests", () => {
11
+ test("should return test plans", async () => {
12
+ let TestDataProvider = await dgDataProviderAzureDevOps.getTestDataProvider();
13
+ let json: any = await TestDataProvider.GetTestPlans("tests");
14
+ expect(json.count).toBeGreaterThanOrEqual(1);
15
+ });
16
+ test("should return test suites by plan", async () => { //not working yet
17
+ let TestDataProvider = await dgDataProviderAzureDevOps.getTestDataProvider();
18
+ let testSuites = await TestDataProvider.GetTestSuitesByPlan(
19
+ "tests",
20
+ "540",
21
+ true
22
+ );
23
+ expect(testSuites[0].name).toBe("TestSuite");
24
+ });
25
+ test("should return list of test cases", async () => {
26
+ let TestDataProvider = await dgDataProviderAzureDevOps.getTestDataProvider();
27
+ let attachList: any = await TestDataProvider.GetTestCasesBySuites(
28
+ "tests",
29
+ "545",
30
+ "546",
31
+ true
32
+ );
33
+ expect(attachList.length > 0).toBeDefined();
34
+ });
35
+ test("should use Helper.findSuitesRecursive twice after restarting static value of Helper.first=True ", async () => {
36
+ let TestDataProvider = await dgDataProviderAzureDevOps.getTestDataProvider();
37
+ let suitesByPlan = await TestDataProvider.GetTestSuitesByPlan(
38
+ "tests",
39
+ "545",
40
+ true
41
+ );
42
+ expect(suitesByPlan.length > 0).toBeDefined();
43
+ });
44
+ test.skip("should return list of test cases - stress test - big testplan 1400 cases", async () => {
45
+ jest.setTimeout(1000000);
46
+ let TestDataProvider = await dgDataProviderAzureDevOps.getTestDataProvider();
47
+ let attachList: any = await TestDataProvider.GetTestCasesBySuites(
48
+ "tests",
49
+ "540",
50
+ "549",
51
+ true
52
+ );
53
+ expect(attachList.length > 1000).toBeDefined(); //not enough test cases for stress test
54
+ });
55
+ test("should return test cases by suite", async () => {
56
+ let TestDataProvider = await dgDataProviderAzureDevOps.getTestDataProvider();
57
+ let json = await TestDataProvider.GetTestCases(
58
+ "tests",
59
+ "540",
60
+ "541"
61
+ );
62
+ expect(json.count).toBeGreaterThan(0);
63
+ });
64
+ test("should return test points by testcase", async () => {
65
+ let TestDataProvider = await dgDataProviderAzureDevOps.getTestDataProvider();
66
+ let json = await TestDataProvider.GetTestPoint(
67
+ "tests",
68
+ "540",
69
+ "541",
70
+ "542"
71
+ );
72
+ expect(json.count).toBeGreaterThan(0);
73
+ });
74
+ test("should return test runs by testcaseid", async () => {
75
+ let TestDataProvider = await dgDataProviderAzureDevOps.getTestDataProvider();
76
+ let json = await TestDataProvider.GetTestRunById(
77
+ "tests",
78
+ "1000120"
79
+ );
80
+ expect(json.id).toBe(1000120);
81
+ });
82
+ test("should create run test according test pointId and return OK(200) as response ", async () => {
83
+ let TestDataProvider = await dgDataProviderAzureDevOps.getTestDataProvider();
84
+ let result: any = await TestDataProvider.CreateTestRun(
85
+ "tests",
86
+ "testrun",
87
+ "540",
88
+ "3"
89
+ );
90
+ expect(result.status).toBe(200);
91
+ });
92
+ test("should Update runId state and return OK(200) as response ", async () => {
93
+ let TestDataProvider = await dgDataProviderAzureDevOps.getTestDataProvider();
94
+ let result: any = await TestDataProvider.UpdateTestRun(
95
+ "tests",
96
+ "1000124", //runId
97
+ "NeedsInvestigation" //Unspecified ,NotStarted, InProgress, Completed, Waiting, Aborted, NeedsInvestigation (State)
98
+ );
99
+ expect(result.status).toBe(200);
100
+ });
101
+ test("should Update test case state and return OK(200) as response ", async () => {
102
+ let TestDataProvider = await dgDataProviderAzureDevOps.getTestDataProvider();
103
+ let result: any = await TestDataProvider.UpdateTestCase(
104
+ "tests",
105
+ "1000120",
106
+ 2 //0-reset , 1-complite , 2-passed , 3-failed (State)
107
+ );
108
+ expect(result.status).toBe(200);
109
+ });
110
+ test("should Upload attachment for test run and return OK(200) as response ", async () => {
111
+ let TestDataProvider = await dgDataProviderAzureDevOps.getTestDataProvider();
112
+ let data = "This is test line of data";
113
+ let buff = new Buffer(data);
114
+ let base64data = buff.toString("base64");
115
+ let result: any = await TestDataProvider.UploadTestAttachment(
116
+ "1000120", //runID
117
+ "tests",
118
+ base64data, //stream
119
+ "testAttachment2.json", //fileName
120
+ "Test attachment upload", //comment
121
+ "GeneralAttachment" //attachmentType
122
+ );
123
+ expect(result.status).toBe(200);
124
+ });
125
+ test("should Get all test case data", async () => {
126
+ let TestDataProvider = await dgDataProviderAzureDevOps.getTestDataProvider();
127
+ let result: any = await TestDataProvider.GetTestSuiteByTestCase(
128
+ "544"
129
+ );
130
+ expect(result).toBeDefined;
131
+ });
132
+ test("should Get test points by test case id", async () => {
133
+ let TestDataProvider = await dgDataProviderAzureDevOps.getTestDataProvider();
134
+ let result: any = await TestDataProvider.GetTestPointByTestCaseId(
135
+ "tests",
136
+ "544" //testCaseId
137
+ );
138
+ expect(result).toBeDefined;
139
+ });
140
+ });
@@ -0,0 +1,138 @@
1
+ import DgDataProviderAzureDevOps from "../..";
2
+
3
+ require("dotenv").config();
4
+ jest.setTimeout(60000);
5
+
6
+
7
+ const orgUrl = process.env.ORG_URL;
8
+ const token = process.env.PAT;
9
+ const dgDataProviderAzureDevOps = new DgDataProviderAzureDevOps(orgUrl,token);
10
+
11
+ const wiql =
12
+ "SELECT [System.Id],[System.WorkItemType],[System.Title],[System.AssignedTo],[System.State],[System.Tags] FROM workitems WHERE [System.TeamProject]=@project";
13
+
14
+ describe("ticket module - tests", () => {
15
+ test("should create a new work item", async () => {
16
+ let TicketDataProvider = await dgDataProviderAzureDevOps.getTicketsDataProvider();
17
+ let body =
18
+ [{
19
+ op: "add",
20
+ path: "/fields/System.IterationPath",
21
+ value: "tests"
22
+ },
23
+ {
24
+ op: "add",
25
+ path: "/fields/System.State",
26
+ value: "New"
27
+ },
28
+ {
29
+ op: "add",
30
+ path: "/fields/System.AreaPath",
31
+ value: "tests"
32
+ },
33
+ {
34
+ op: "add",
35
+ path: "/fields/System.Title",
36
+ value: "new-test-title2"
37
+ },
38
+ {
39
+ op: "add",
40
+ path: "/fields/System.Tags",
41
+ value: "tag-test"
42
+ },
43
+ {
44
+ op: "add",
45
+ path: "/fields/System.AssignedTo",
46
+ value: "denispankove"
47
+ }];
48
+ let res = await TicketDataProvider.CreateNewWorkItem(
49
+ "tests",
50
+ body,
51
+ "Epic",
52
+ true
53
+ );
54
+ expect(typeof res.id).toBe("number");
55
+ body[3].value = "edited";
56
+ let updatedWI = await TicketDataProvider.UpdateWorkItem(
57
+ "tests",
58
+ body,
59
+ res.id,
60
+ true
61
+ );
62
+ expect(updatedWI.fields["System.Title"]).toBe("edited");
63
+ });
64
+ test("should return shared queires", async () => {
65
+ let TicketDataProvider = await dgDataProviderAzureDevOps.getTicketsDataProvider();
66
+ let json = await TicketDataProvider.GetSharedQueries(
67
+ "tests",
68
+ "",
69
+ );
70
+ expect(json.length).toBeGreaterThan(1);
71
+ });
72
+ test("should return query results", async () => {
73
+ let TicketDataProvider = await dgDataProviderAzureDevOps.getTicketsDataProvider();
74
+ let json = await TicketDataProvider.GetSharedQueries(
75
+ "tests",
76
+ ""
77
+ );
78
+ let query = json.find((o: { wiql: undefined }) => o.wiql != undefined);
79
+ let result = await TicketDataProvider.GetQueryResultsByWiqlHref(
80
+ query.wiql.href,
81
+ "tests"
82
+ );
83
+ expect(result.length).toBeGreaterThanOrEqual(1);
84
+ });
85
+ test("should return query results by query id", async () => {
86
+ let TicketDataProvider = await dgDataProviderAzureDevOps.getTicketsDataProvider();
87
+ let result = await TicketDataProvider.GetQueryResultById(
88
+ "08e044be-b9bc-4962-99c9-ffebb47ff95a",
89
+ "tests"
90
+ );
91
+ expect(result.length).toBeGreaterThanOrEqual(1);
92
+ });
93
+ test("should return wi base on wiql string", async () => {
94
+ let TicketDataProvider = await dgDataProviderAzureDevOps.getTicketsDataProvider();
95
+ let result = await TicketDataProvider.GetQueryResultsByWiqlString(
96
+ wiql,
97
+ "tests"
98
+ );
99
+ expect(result.workItems.length).toBeGreaterThanOrEqual(1);
100
+ });
101
+ test("should return populated work items array", async () => {
102
+ let TicketDataProvider = await dgDataProviderAzureDevOps.getTicketsDataProvider();
103
+ let result = await TicketDataProvider.GetQueryResultsByWiqlString(
104
+ wiql,
105
+ "tests"
106
+ );
107
+ let wiarray = result.workItems.map((o: any) => o.id);
108
+ let res = await TicketDataProvider.PopulateWorkItemsByIds(
109
+ wiarray,
110
+ "tests"
111
+ );
112
+ expect(res.length).toBeGreaterThanOrEqual(1);
113
+ });
114
+ test("should return list of attachments", async () => {
115
+ let TicketDataProvider = await dgDataProviderAzureDevOps.getTicketsDataProvider();
116
+ let attachList = await TicketDataProvider.GetWorkitemAttachments(
117
+ "tests",
118
+ "538"
119
+ );
120
+ expect(attachList.length > 0).toBeDefined();
121
+ });
122
+ test("should return Json data of the attachment", async () => {
123
+ let TicketDataProvider = await dgDataProviderAzureDevOps.getTicketsDataProvider();
124
+ let attachedData = await TicketDataProvider.GetWorkitemAttachmentsJSONData(
125
+ "tests",
126
+ "14933c55-6d84-499c-88db-55202f16dd46"
127
+ );
128
+ expect(JSON.stringify(attachedData).length > 0).toBeDefined();
129
+ });
130
+ test("should return list of id & link object", async () => {
131
+ let TicketDataProvider = await dgDataProviderAzureDevOps.getTicketsDataProvider();
132
+ let attachList = await TicketDataProvider.GetLinksByIds(
133
+ "tests",
134
+ [535]
135
+ );
136
+ expect(attachList.length).toBeGreaterThan(0);
137
+ });
138
+ }); //describe
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ import * as winston from "winston";
3
+ import BrowserConsole from "winston-transport-browserconsole";
4
+ let logger: winston.Logger;
5
+
6
+ const logFormat = winston.format.printf(
7
+ (info) => `${info.level} - ${info.message}`
8
+ );
9
+
10
+ // if (typeof window === "undefined") {
11
+ // let logsPath = process.env.logs_path || "./logs/";
12
+
13
+ // logger = winston.createLogger({
14
+ // format: winston.format.timestamp(),
15
+ // level: "silly",
16
+ // transports: [
17
+ // new winston.transports.File({
18
+ // filename: `${logsPath}azure-rest-api-errors.log`,
19
+ // level: "error",
20
+ // format: logFormat,
21
+ // }),
22
+ // new winston.transports.File({
23
+ // filename: `${logsPath}azure-rest-api-all.log`,
24
+ // format: logFormat,
25
+ // }),
26
+ // new winston.transports.Console({ format: logFormat, level: "debug" }),
27
+ // ],
28
+ // });
29
+ // } else {
30
+ logger = winston.createLogger({
31
+ format: winston.format.timestamp(),
32
+ level: "silly",
33
+ transports: [new BrowserConsole({ format: logFormat, level: "debug" })],
34
+ });
35
+ // }
36
+
37
+ export default logger;
package/tsconfig.json ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2015",
4
+ "module": "commonjs",
5
+ "moduleResolution": "node",
6
+ "baseUrl": "./src",
7
+ "allowJs": true,
8
+ "checkJs": true,
9
+ "outDir": "./bin",
10
+ "declaration": true,
11
+ "sourceMap": true,
12
+ "strict": true,
13
+ "lib": ["ES2017", "DOM"],
14
+ "noImplicitAny": true,
15
+ "strictNullChecks": true,
16
+ "strictPropertyInitialization": false
17
+ },
18
+ "include": [
19
+ "**/*.ts"
20
+ // "test/test.ts",
21
+ // "test/sample.ts",
22
+ // "models/tfs-data.ts",
23
+ // "src/index.ts",
24
+ // "helpers/tfs.ts",
25
+ // "helpers/helper.ts"
26
+ ]
27
+ }