Skip to content

Commit 6c7c5f5

Browse files
author
Marco Franceschi
committed
feat: Moved prepareMutations logic to DgraphDataProcessor
1 parent cdc6226 commit 6c7c5f5

File tree

6 files changed

+8
-44
lines changed

6 files changed

+8
-44
lines changed

src/plugins/policyPack/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,8 @@ export default class PolicyPackPlugin extends Plugin {
263263
schemaMap?: SchemaMap
264264
}) => void
265265
}): Promise<any> {
266+
console.log('storage type', typeof storageEngine, storageEngine)
267+
266268
!isEmpty(this.policyPacksPlugins) &&
267269
this.logger.info(
268270
`Beginning ${chalk.italic.green('RULES')} for ${this.provider.name}`

src/rules-engine/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,8 @@ export default class RulesProvider implements Engine {
167167
return [mainType, extensions]
168168
}
169169

170+
prepareMutations: (findings: RuleFinding[]) => Entity[]
171+
170172
processRule = async (rule: Rule, data: unknown): Promise<RuleFinding[]> => {
171173
const res: any[] = []
172174
const dedupeIds = {}

tests/evaluators/js-evaluator.test.ts

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ import { Result } from '../../src'
33
import JsEvaluator from '../../src/rules-engine/evaluators/js-evaluator'
44
import { Severity } from '../../src/rules-engine/types'
55

6-
const providerName = 'azure'
7-
const entityName = 'CIS'
86
const jsRule = {
97
id: cuid(),
108
description: 'none',
@@ -32,7 +30,7 @@ export default {
3230
describe('JsEvaluator', () => {
3331
let evaluator
3432
beforeEach(() => {
35-
evaluator = new JsEvaluator(providerName, entityName)
33+
evaluator = new JsEvaluator()
3634
})
3735

3836
it('should accept all rules that have a check field', () => {
@@ -68,25 +66,4 @@ describe('JsEvaluator', () => {
6866
)
6967
expect(passedRule.result).toEqual(Result.PASS)
7068
})
71-
72-
it('should return a processed rules mutations array', async () => {
73-
const resourceId = cuid()
74-
const resourceType = 'schemaA'
75-
await evaluator.evaluateSingleResource(jsRule, {
76-
resource: {
77-
id: resourceId,
78-
__typename: resourceType,
79-
value: 'automated',
80-
},
81-
})
82-
const mutations = evaluator.prepareMutations()
83-
const [atuomatedMutation] = mutations
84-
85-
expect(mutations.length).toBe(1)
86-
expect(atuomatedMutation).toBeDefined()
87-
expect(atuomatedMutation.data instanceof Object).toBeTruthy()
88-
expect(atuomatedMutation.data.filter.id.eq).toBe(resourceId)
89-
expect(atuomatedMutation.name).toBe(`${providerName}${entityName}Findings`)
90-
expect(atuomatedMutation.mutation).toContain(`update${resourceType}`)
91-
})
9269
})

tests/evaluators/json-evaluator.test.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ import { Result } from '../../src'
33
import JsonEvaluator from '../../src/rules-engine/evaluators/json-evaluator'
44
import { Severity } from '../../src/rules-engine/types'
55

6-
const providerName = 'aws'
7-
const entityName = 'CIS'
86
const ruleMetadata = {
97
id: cuid(),
108
description: 'none',
@@ -73,7 +71,7 @@ export default {
7371
describe('JsonEvaluator', () => {
7472
let evaluator
7573
beforeEach(() => {
76-
evaluator = new JsonEvaluator(providerName, entityName)
74+
evaluator = new JsonEvaluator()
7775
})
7876

7977
test('should accept all rules that have a conditions field', () => {

tests/evaluators/manual-evaluator.test.ts

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ import { Result } from '../../src'
33
import ManualEvaluator from '../../src/rules-engine/evaluators/manual-evaluator'
44
import { Severity } from '../../src/rules-engine/types'
55

6-
const providerName = 'gcp'
7-
const entityName = 'CIS'
86
const manualRule = {
97
id: cuid(),
108
description: 'none',
@@ -22,7 +20,7 @@ export default {
2220
describe('ManualEvaluator', () => {
2321
let evaluator
2422
beforeEach(() => {
25-
evaluator = new ManualEvaluator(providerName, entityName)
23+
evaluator = new ManualEvaluator()
2624
})
2725

2826
it('should pass when it does not contain gql, conditions, check, and resource fields', () => {
@@ -57,17 +55,4 @@ describe('ManualEvaluator', () => {
5755
)
5856
expect(finding.id.includes('manual')).toEqual(true)
5957
})
60-
61-
it('should return a manual mutations array', async () => {
62-
await evaluator.evaluateSingleResource(manualRule)
63-
const mutations = evaluator.prepareMutations()
64-
const [manualMutation] = mutations
65-
66-
expect(mutations.length).toBe(1)
67-
expect(manualMutation.name).toBe(`${providerName}${entityName}Findings`)
68-
expect(manualMutation.data.length).toBe(1)
69-
expect(manualMutation.mutation).toContain(
70-
`add${providerName}${entityName}Findings`
71-
)
72-
})
7358
})

tests/operators/date.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import JsonEvaluator from '../../src/rules-engine/evaluators/json-evaluator'
55
describe('Date Operators', () => {
66
let evaluator
77
beforeEach(() => {
8-
evaluator = new JsonEvaluator('aws', 'CIS')
8+
evaluator = new JsonEvaluator()
99
})
1010

1111
test('should process dates', async () => {

0 commit comments

Comments
 (0)