add method to filter changes by given scopes

This commit is contained in:
Sarah Aladetan
2022-09-15 18:00:07 +00:00
parent 1a7a37c468
commit f4b16c52e5
2 changed files with 28 additions and 2 deletions
+14 -1
View File
@@ -1,6 +1,6 @@
import {expect, test} from '@jest/globals'
import {Change, Changes} from '../src/schemas'
import {filterChangesBySeverity} from '../src/filter'
import {filterChangesBySeverity, filterChangesByScopes} from '../src/filter'
let npmChange: Change = {
manifest: 'package.json',
@@ -59,3 +59,16 @@ test('it properly filters changes by severity', async () => {
result = filterChangesBySeverity('critical', changes)
expect(changes).toEqual([npmChange, rubyChange])
})
test('it properly filters changes by scope', async () => {
const changes = [npmChange, rubyChange]
let result = filterChangesByScopes(['runtime'], changes)
expect(result).toEqual([npmChange])
result = filterChangesByScopes(['development'], changes)
expect(result).toEqual([rubyChange])
result = filterChangesByScopes(['runtime', 'development'], changes)
expect(result).toEqual([npmChange, rubyChange])
})
+14 -1
View File
@@ -1,4 +1,4 @@
import {Changes, Severity, SEVERITIES} from './schemas'
import {Changes, Severity, SEVERITIES, Scope, SCOPES} from './schemas'
export function filterChangesBySeverity(
severity: Severity,
@@ -33,3 +33,16 @@ export function filterChangesBySeverity(
)
return filteredChanges
}
export function filterChangesByScopes(
scopes: Scope[],
changes: Changes
): Changes {
const filteredChanges = changes.filter(change => {
if (scopes.indexOf(change.scope) > -1) {
return true
}
})
return filteredChanges
}