Skip to content

Commit f510238

Browse files
authored
add new structure and branch to types (#32)
1 parent c7b83c6 commit f510238

File tree

8 files changed

+104
-83
lines changed

8 files changed

+104
-83
lines changed

.github/workflows/ci.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@ jobs:
66
runs-on: ubuntu-latest
77
steps:
88
- uses: actions/checkout@v2
9-
- name: Use Node.js ${{ matrix.node-version }}
9+
- name: Use Node.js 12
1010
uses: actions/setup-node@v2
1111
with:
12-
node-version: ${{ matrix.node-version }}
12+
node-version: 12
13+
registry-url: https://npm.pkg.github.com/
1314
- run: npm ci
1415
- run: npm run build --if-present
1516
- name: Run tests

package-lock.json

Lines changed: 1 addition & 22 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/main/project/CxProject.ts

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,34 @@
11
export default class CxProject {
2-
ID: string = " ";
3-
Name: string = " ";
4-
CreatedAt: string = " ";
5-
UpdatedAt: string = " ";
6-
Tags: object = {} ;
7-
Groups: any = [] ;
2+
id: string = " ";
3+
name: string = " ";
4+
createdAt: string = " ";
5+
updatedAt: string = " ";
6+
tags: object = {};
7+
groups: any = [];
8+
9+
static parseProject(resultObject: any): CxProject[] {
10+
let projects: CxProject[] = [];
11+
if (resultObject instanceof Array) {
12+
projects = resultObject.map((member: any) => {
13+
let project = new CxProject();
14+
project.id = member.ID;
15+
project.name = member.Name;
16+
project.createdAt = member.CreatedAt;
17+
project.updatedAt = member.UpdatedAt;
18+
project.tags = member.Tags;
19+
project.groups = member.Groups;
20+
return project;
21+
});
22+
} else {
23+
let project = new CxProject();
24+
project.id = resultObject.ID;
25+
project.name = resultObject.Name;
26+
project.createdAt = resultObject.CreatedAt;
27+
project.updatedAt = resultObject.UpdatedAt;
28+
project.tags = resultObject.Tags;
29+
project.groups = resultObject.Groups;
30+
projects.push(project);
31+
}
32+
return projects;
33+
}
834
}

src/main/scan/CxScan.ts

Lines changed: 45 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,46 @@
11
export default class CxScan {
2-
ID: string = "";
3-
ProjectID: string = "";
4-
Status: string = "";
5-
CreatedAt: string = "";
6-
UpdatedAt: string = "";
7-
Tags: object = {};
8-
Groups: any =[];
9-
Initiator: string = "";
10-
Origin: string = "";
11-
}
2+
id: string = "";
3+
projectID: string = "";
4+
status: string = "";
5+
createdAt: string = "";
6+
updatedAt: string = "";
7+
tags: object = {};
8+
groups: any = [];
9+
initiator: string = "";
10+
origin: string = "";
11+
branch: string = "";
12+
13+
static parseProject(resultObject: any): CxScan[] {
14+
let scans: CxScan[] = [];
15+
if (resultObject instanceof Array) {
16+
scans = resultObject.map((member: any) => {
17+
let scan = new CxScan();
18+
scan.id = member.ID;
19+
scan.projectID = member.ProjectID;
20+
scan.status = member.Status;
21+
scan.createdAt = member.CreatedAt;
22+
scan.updatedAt = member.UpdatedAt;
23+
scan.tags = member.Tags;
24+
scan.groups = member.Groups;
25+
scan.origin = member.Origin;
26+
scan.initiator = member.Initiator;
27+
scan.branch = member.Initiator;
28+
return scan;
29+
});
30+
} else {
31+
let scan = new CxScan();
32+
scan.id = resultObject.ID;
33+
scan.projectID = resultObject.ProjectID;
34+
scan.status = resultObject.Status;
35+
scan.createdAt = resultObject.CreatedAt;
36+
scan.updatedAt = resultObject.UpdatedAt;
37+
scan.tags = resultObject.Tags;
38+
scan.groups = resultObject.Groups;
39+
scan.origin = resultObject.Origin;
40+
scan.initiator = resultObject.Initiator;
41+
scan.branch = resultObject.Initiator;
42+
scans.push(scan);
43+
}
44+
return scans;
45+
}
46+
}

src/main/wrapper/ExecutionService.ts

Lines changed: 8 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import {CxCommandOutput} from "./CxCommandOutput";
22
import CxScan from "../scan/CxScan";
3-
import CxProject from "../project/CxProject";
43
import { logger } from "./loggerConfig";
54
import * as fs from "fs"
65
import * as os from "os";
76
import * as path from "path";
87
import CxResult from "../results/CxResult";
8+
import CxProject from "../project/CxProject";
99

1010
const spawn = require('child_process').spawn;
1111

@@ -25,7 +25,9 @@ function transformation(commands: string[]):string[] {
2525
}
2626

2727
function transform(n:string) {
28-
return n.replace(/["']/g, "").replace("/[, ]/g",",")
28+
let r = "";
29+
if(n) r = n.replace(/["']/g, "").replace("/[, ]/g",",");
30+
return r;
2931
}
3032

3133
export class ExecutionService {
@@ -57,41 +59,18 @@ export class ExecutionService {
5759
// Check if the json is valid
5860
if (isJsonString(output_string.toString())) {
5961
let resultObject = JSON.parse(output_string.toString().split('\n')[0]);
60-
// Some cli outputs have array format, must be checked
61-
if (resultObject instanceof Array) {
62-
// Check if there is a specific type for the output and make conversions
6362
switch(output){
6463
case 'CxScan':
65-
let r = resultObject.map((member)=>{return Object.assign( new CxScan(),member);}) ;
66-
cxCommandOutput.payload = r;
64+
let scans = CxScan.parseProject(resultObject)
65+
cxCommandOutput.payload = scans;
6766
break;
6867
case 'CxProject':
69-
r = resultObject.map((member)=>{return Object.assign( new CxProject(),member);}) ;
70-
cxCommandOutput.payload = r;
68+
let projects = CxProject.parseProject(resultObject)
69+
cxCommandOutput.payload = projects;
7170
break;
7271
default:
73-
logger.info(JSON.stringify(resultObject));
7472
cxCommandOutput.payload = resultObject;
7573
}
76-
} else {
77-
let resultArray: any [] = [];
78-
// Check if there is a specific type for the output and make conversions
79-
switch(output){
80-
case 'CxScan':
81-
let r = Object.assign( new CxScan(),resultObject);
82-
resultArray.push(r);
83-
cxCommandOutput.payload = resultArray;
84-
break;
85-
case 'CxProject':
86-
r = Object.assign( new CxProject(),resultObject);
87-
resultArray.push(r);
88-
cxCommandOutput.payload = resultArray;
89-
break;
90-
default:
91-
resultArray.push(resultObject);
92-
cxCommandOutput.payload = resultArray;
93-
}
94-
}
9574
}
9675
});
9776
});

src/tests/ProjectTest.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ describe("ProjectList cases",() => {
2222
let data = await auth.scanCreate(params);
2323
let cxCommandOutput: CxCommandOutput = data;
2424
let ScanObject = cxCommandOutput.payload.pop();
25-
cxCommandOutput = await auth.projectShow(ScanObject.ProjectID);
25+
cxCommandOutput = await auth.projectShow(ScanObject.projectID);
2626
console.log(" Json object from ProjectShow Successful case: " + JSON.stringify(cxCommandOutput));
2727
expect(cxCommandOutput.payload.length).toBeGreaterThan(0);
2828
});
@@ -37,7 +37,7 @@ describe("ProjectList cases",() => {
3737
let data = await auth.scanCreate(params);
3838
let cxCommandOutput: CxCommandOutput = data;
3939
let ScanObject = cxCommandOutput.payload.pop();
40-
cxCommandOutput = await auth.projectBranches(ScanObject.ProjectID,"");
40+
cxCommandOutput = await auth.projectBranches(ScanObject.projectID,"");
4141
console.log("Json object from projectBranches Successful case: " + JSON.stringify(cxCommandOutput))
4242
expect(cxCommandOutput.payload.length).toBeGreaterThan(0);
4343
});

src/tests/ResultTest.test.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ describe("Results cases",() => {
88
it('Result Test Successful case', async () => {
99
const auth = new CxWrapper(cxScanConfig);
1010
const cxCommandOutput: CxCommandOutput = await auth.scanList("");
11-
let sampleId = cxCommandOutput.payload.pop().ID;
11+
let sampleId = cxCommandOutput.payload.pop().id;
1212
await auth.getResults(sampleId,"json","jsonList", ".");
1313
const file = await fileExists("./jsonList.json");
1414
expect(file).toBe(true);
@@ -17,15 +17,16 @@ describe("Results cases",() => {
1717
it('Result List Successful case', async () => {
1818
const auth = new CxWrapper(cxScanConfig);
1919
const cxCommandOutput: CxCommandOutput = await auth.scanList("");
20-
let sampleId = cxCommandOutput.payload.pop().ID;
20+
console.log(JSON.stringify(cxCommandOutput));
21+
let sampleId = cxCommandOutput.payload.pop().id;
2122
const written = await auth.getResultsList(sampleId);
2223
expect(written.status).toEqual("");
2324
});
2425

2526
it('Result summary html file generation successful case', async () => {
2627
const auth = new CxWrapper(cxScanConfig);
2728
const cxCommandOutput: CxCommandOutput = await auth.scanList("");
28-
let sampleId = cxCommandOutput.payload.pop().ID;
29+
let sampleId = cxCommandOutput.payload.pop().id;
2930
await auth.getResults(sampleId,"summaryHTML","test", ".");
3031
const file = await fileExists("./test.html");
3132
expect(file).toBe(true);
@@ -34,7 +35,7 @@ describe("Results cases",() => {
3435
it('Result summary html string successful case', async () => {
3536
const auth = new CxWrapper(cxScanConfig);
3637
const cxCommandOutput: CxCommandOutput = await auth.scanList("");
37-
let sampleId = cxCommandOutput.payload.pop().ID;
38+
let sampleId = cxCommandOutput.payload.pop().id;
3839
const written = await auth.getResultsSummary(sampleId);
3940
expect(written.payload.length).toBeGreaterThan(0);
4041
});

src/tests/ScanTest.test.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ describe("ScanCreate cases",() => {
2121
const auth = new CxWrapper(cxScanConfig);
2222
const cxCommandOutput: CxCommandOutput = await auth.scanCreate(params);
2323
const scanObject = cxCommandOutput.payload.pop();
24-
const scanShowObject = await auth.scanShow(scanObject.ID);
24+
const scanShowObject = await auth.scanShow(scanObject.id);
2525
console.log(" Json object from successful wait mode case: " + JSON.stringify(scanShowObject));
26-
expect(scanShowObject.payload.pop().Status).toEqual("Completed");
26+
expect(scanShowObject.payload.pop().status).toEqual("Completed");
2727
})
2828

2929
it('ScanCreate Failure case', async () => {
@@ -35,9 +35,9 @@ describe("ScanCreate cases",() => {
3535
const auth = new CxWrapper(cxScanConfig);
3636
const cxCommandOutput: CxCommandOutput = await auth.scanCreate(params);
3737
const scanObject = cxCommandOutput.payload.pop();
38-
const scanShowObject = await auth.scanShow(scanObject.ID);
38+
const scanShowObject = await auth.scanShow(scanObject.id);
3939
console.log(" Json object from failure case: " + JSON.stringify(scanShowObject));
40-
expect(scanShowObject.payload.pop().Status).toEqual("Failed");
40+
expect(scanShowObject.payload.pop().status).toEqual("Failed");
4141
})
4242

4343
it('ScanCreate Successful case with Branch', async () => {
@@ -49,9 +49,9 @@ describe("ScanCreate cases",() => {
4949
const auth = new CxWrapper(cxScanConfig);
5050
const cxCommandOutput: CxCommandOutput = await auth.scanCreate(params);
5151
const scanObject = cxCommandOutput.payload.pop();
52-
const scanShowObject = await auth.scanShow(scanObject.ID);
52+
const scanShowObject = await auth.scanShow(scanObject.id);
5353
console.log(" Json object from successful wait mode case with branch: " +JSON.stringify(scanShowObject));
54-
expect(scanShowObject.payload.pop().Status).toEqual("Completed");
54+
expect(scanShowObject.payload.pop().status).toEqual("Completed");
5555

5656
})
5757

@@ -65,8 +65,8 @@ describe("ScanCreate cases",() => {
6565
const auth = new CxWrapper(cxScanConfig);
6666
const cxCommandOutput: CxCommandOutput = await auth.scanCreate(params);
6767
const scanObject = cxCommandOutput.payload.pop();
68-
const scanShowObject = await auth.scanShow(scanObject.ID);
68+
const scanShowObject = await auth.scanShow(scanObject.id);
6969
console.log(" Json object from successful no wait mode case: " + JSON.stringify(scanShowObject));
70-
expect(scanShowObject.payload.pop().Status).toEqual("Running");
70+
expect(scanShowObject.payload.pop().status).toEqual("Running");
7171
})
7272
});

0 commit comments

Comments
 (0)