Skip to content

Commit c28403e

Browse files
committed
feat: add util getSeverityFromPriorityGroup
1 parent 55eaac5 commit c28403e

File tree

2 files changed

+39
-1
lines changed

2 files changed

+39
-1
lines changed

__tests__/utils.test.js

+19-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { validateGithubUrl, ensureGithubToken } = require('../src/utils/index')
1+
const { validateGithubUrl, ensureGithubToken, getSeverityFromPriorityGroup } = require('../src/utils/index')
22

33
describe('ensureGithubToken', () => {
44
let originalGithubToken
@@ -43,3 +43,21 @@ describe('validateGithubUrl', () => {
4343
expect(validateGithubUrl(url)).toBe(false)
4444
})
4545
})
46+
47+
describe('getSeverityFromPriorityGroup', () => {
48+
it('should return the correct severity based on the priority group', () => {
49+
expect(getSeverityFromPriorityGroup('P0')).toBe('critical')
50+
expect(getSeverityFromPriorityGroup('P1')).toBe('critical')
51+
expect(getSeverityFromPriorityGroup('P2')).toBe('critical')
52+
expect(getSeverityFromPriorityGroup('P3')).toBe('high')
53+
expect(getSeverityFromPriorityGroup('P4')).toBe('high')
54+
expect(getSeverityFromPriorityGroup('P5')).toBe('medium')
55+
expect(getSeverityFromPriorityGroup('P6')).toBe('medium')
56+
expect(getSeverityFromPriorityGroup('P7')).toBe('medium')
57+
expect(getSeverityFromPriorityGroup('P8')).toBe('low')
58+
expect(getSeverityFromPriorityGroup('P20')).toBe('low')
59+
// Recommendations always have 'info' severity
60+
expect(getSeverityFromPriorityGroup('R1')).toBe('info')
61+
expect(getSeverityFromPriorityGroup('R11')).toBe('info')
62+
})
63+
})

src/utils/index.js

+20
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,28 @@ const logger = {
2222
log: defineLog('log')
2323
}
2424

25+
const getSeverityFromPriorityGroup = (priorityGroup) => {
26+
const priorityType = priorityGroup[0]
27+
const priorityValue = parseInt(priorityGroup.slice(1), 10)
28+
// Recommendations (Rxx)
29+
if (priorityType === 'R') {
30+
return 'info'
31+
}
32+
// Priorities (Pxx)
33+
if (priorityValue >= 0 && priorityValue <= 2) {
34+
return 'critical'
35+
} else if (priorityValue >= 3 && priorityValue <= 4) {
36+
return 'high'
37+
} else if (priorityValue >= 5 && priorityValue <= 7) {
38+
return 'medium'
39+
} else if (priorityValue >= 8) {
40+
return 'low'
41+
}
42+
}
43+
2544
module.exports = {
2645
validateGithubUrl,
2746
ensureGithubToken,
47+
getSeverityFromPriorityGroup,
2848
logger
2949
}

0 commit comments

Comments
 (0)