Skip to content

Commit 5eb10e9

Browse files
committed
fix: Rollback missing resources status feature
1 parent 00b448d commit 5eb10e9

File tree

10 files changed

+13
-86
lines changed

10 files changed

+13
-86
lines changed

src/rules-engine/data-processors/dgraph-data-processor.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,12 +145,12 @@ export default class DgraphDataProcessor implements DataProcessor {
145145

146146
private prepareEntitiesMutations(findings: RuleFinding[]): RuleFinding[] {
147147
// Group Findings by schema type
148-
const { manual: manualData = [], missing: missingData = [], ...processedRules } = groupBy(
148+
const { manual: manualData = [], ...processedRules } = groupBy(
149149
findings,
150150
'typename'
151151
)
152152

153-
const mutations = [...manualData, ...missingData]
153+
const mutations = [...manualData]
154154
for (const findingType in processedRules) {
155155
if (!isEmpty(findingType)) {
156156
// Group Findings by resource

src/rules-engine/evaluators/base-evaluator.ts

Lines changed: 0 additions & 23 deletions
This file was deleted.

src/rules-engine/evaluators/js-evaluator.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import {
66
RuleFinding,
77
Result,
88
} from '../types'
9-
import BaseEvaluator from './base-evaluator'
9+
import { RuleEvaluator } from './rule-evaluator'
1010

11-
export default class JsEvaluator extends BaseEvaluator<JsRule> {
11+
export default class JsEvaluator implements RuleEvaluator<JsRule> {
1212
canEvaluate(rule: Rule | JsRule): boolean {
1313
return 'check' in rule
1414
}

src/rules-engine/evaluators/json-evaluator.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ import {
1212
} from '../types'
1313
import AdditionalOperators from '../operators'
1414
import ComparisonOperators from '../operators/comparison'
15-
import BaseEvaluator from './base-evaluator'
15+
import { RuleEvaluator } from './rule-evaluator'
1616

17-
export default class JsonEvaluator extends BaseEvaluator<JsonRule> {
17+
export default class JsonEvaluator implements RuleEvaluator<JsonRule> {
1818
canEvaluate(rule: JsonRule): boolean {
1919
return 'conditions' in rule
2020
}

src/rules-engine/evaluators/manual-evaluator.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { JsonRule, Result, Rule, RuleFinding } from '../types'
2-
import BaseEvaluator from './base-evaluator'
2+
import { RuleEvaluator } from './rule-evaluator'
33

4-
export default class ManualEvaluator extends BaseEvaluator<JsonRule> {
4+
export default class ManualEvaluator implements RuleEvaluator<JsonRule> {
55
canEvaluate(rule: Rule): boolean {
66
return !('gql' in rule) && !('conditions' in rule) && !('resource' in rule)
77
}

src/rules-engine/evaluators/rule-evaluator.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,4 @@ import { ResourceData, Rule, RuleFinding } from '../types'
33
export interface RuleEvaluator<K extends Rule> {
44
canEvaluate: (rule: K) => boolean
55
evaluateSingleResource: (rule: K, data?: ResourceData) => Promise<RuleFinding>
6-
evaluateMissingResource: (rule: K) => Promise<RuleFinding>
76
}

src/rules-engine/index.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -103,12 +103,6 @@ export default class RulesProvider implements Engine {
103103
return res
104104
}
105105

106-
if (isEmpty(resourcePaths)) {
107-
// Returned Missing Resource Rule Response
108-
res.push(await evaluator.evaluateMissingResource(rule))
109-
return res
110-
}
111-
112106
// @NOTE: here we can evaluate things such as Data being empty (may imply rule to pass)
113107
// or if we have no resources, or none pass, we can decide on that rule (+ some rule field)
114108
for (let i = 0; i < resourcePaths.length; i++) {

tests/evaluators/js-evaluator.test.ts

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -66,25 +66,4 @@ describe('JsEvaluator', () => {
6666
)
6767
expect(passedRule.result).toEqual(Result.PASS)
6868
})
69-
70-
test('should return missing as result', async () => {
71-
const finding = await evaluator.evaluateMissingResource(
72-
{ id: cuid() } as never
73-
)
74-
expect(finding.result).toEqual(Result.MISSING)
75-
})
76-
77-
test('should contain "missing" at the id', async () => {
78-
const finding = await evaluator.evaluateMissingResource(
79-
{ id: cuid() } as any
80-
)
81-
expect(finding.id.includes('missing')).toEqual(true)
82-
})
83-
84-
test('should return the resource path at the resourceId', async () => {
85-
const finding = await evaluator.evaluateMissingResource(
86-
{ id: cuid(), resource: 'resourcePath[*]'} as any
87-
)
88-
expect(finding.resourceId).toEqual('resourcePath')
89-
})
9069
})

tests/evaluators/json-evaluator.test.ts

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -596,25 +596,4 @@ describe('JsonEvaluator', () => {
596596

597597
expect(finding.result).toBe(Result.FAIL)
598598
})
599-
600-
test('should return missing as result', async () => {
601-
const finding = await evaluator.evaluateMissingResource(
602-
{ id: cuid() } as never
603-
)
604-
expect(finding.result).toEqual(Result.MISSING)
605-
})
606-
607-
test('should contain "missing" at the id', async () => {
608-
const finding = await evaluator.evaluateMissingResource(
609-
{ id: cuid() } as any
610-
)
611-
expect(finding.id.includes('missing')).toEqual(true)
612-
})
613-
614-
test('should return the resource path at the resourceId', async () => {
615-
const finding = await evaluator.evaluateMissingResource(
616-
{ id: cuid(), resource: 'resourcePath[*]'} as any
617-
)
618-
expect(finding.resourceId).toEqual('resourcePath')
619-
})
620599
})

tests/rules-engine.test.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
import RulesProvider from '../src/rules-engine'
2-
import { Engine, Result, Rule } from '../src/rules-engine/types'
2+
import { Engine, Rule } from '../src/rules-engine/types'
33
import ManualEvaluatorMock from './evaluators/manual-evaluator.test'
44
import JSONEvaluatordMock from './evaluators/json-evaluator.test'
55
import DgraphDataProcessor from '../src/rules-engine/data-processors/dgraph-data-processor'
6-
import { RuleFinding } from '../src'
76

87
const typenameToFieldMap = {
98
resourceA: 'querySchemaA',
@@ -51,17 +50,17 @@ describe('RulesEngine', () => {
5150
)
5251
})
5352

54-
it('Should return a missing finding type processing a rule with no data', async () => {
53+
it('Should return an empty array processing a rule with no data', async () => {
5554
const data = {}
5655

5756
const processedRule = await rulesEngine.processRule(
5857
JSONEvaluatordMock.jsonRule,
5958
data
60-
) as RuleFinding[]
59+
)
6160

6261
expect(processedRule).toBeDefined()
63-
expect(processedRule.length).toBe(1)
64-
expect(processedRule[0].result).toBe(Result.MISSING)
62+
expect(processedRule instanceof Array).toBeTruthy()
63+
expect(processedRule.length).toBe(0)
6564
})
6665

6766
it('Should return empty mutations array given an empty findings array', () => {

0 commit comments

Comments
 (0)