From f4b16c52e53a250fd2e7945995a70eed95a08e36 Mon Sep 17 00:00:00 2001 From: Sarah Aladetan Date: Thu, 15 Sep 2022 18:00:07 +0000 Subject: [PATCH] add method to filter changes by given scopes --- __tests__/filter.test.ts | 15 ++++++++++++++- src/filter.ts | 15 ++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/__tests__/filter.test.ts b/__tests__/filter.test.ts index 1319ab2..999f96c 100644 --- a/__tests__/filter.test.ts +++ b/__tests__/filter.test.ts @@ -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]) +}) diff --git a/src/filter.ts b/src/filter.ts index 69d1929..37d832e 100644 --- a/src/filter.ts +++ b/src/filter.ts @@ -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 +}