more refactoring for getDeniedChanges

This commit is contained in:
Brandon Teng
2024-04-04 15:18:51 -05:00
parent 7cebd9d64d
commit a323510dae
3 changed files with 36 additions and 60 deletions
+13 -28
View File
@@ -1,11 +1,7 @@
import {expect, jest, test} from '@jest/globals'
import {Change, Changes} from '../src/schemas'
import {
createMavenTestChange,
createPipTestChange,
createRubyTestChange,
createTestChange
} from './fixtures/create-test-change'
import {createTestChange} from './fixtures/create-test-change'
import {getDeniedChanges} from '../src/deny'
jest.mock('@actions/core')
@@ -19,7 +15,6 @@ const mockOctokit = {
}
}
let getDeniedChanges: Function
let npmChange: Change
let rubyChange: Change
let pipChange: Change
@@ -43,22 +38,18 @@ beforeEach(async () => {
// true for BSD, false for all others
return jest.fn((license: string, _: string): boolean => license === 'BSD')
})
// eslint-disable-next-line @typescript-eslint/no-require-imports
;({getDeniedChanges} = require('../src/deny'))
npmChange = createTestChange()
rubyChange = createRubyTestChange()
pipChange = createPipTestChange()
mvnChange = createMavenTestChange()
npmChange = createTestChange({ecosystem: 'npm'})
rubyChange = createTestChange({ecosystem: 'rubygems'})
pipChange = createTestChange({ecosystem: 'pip'})
mvnChange = createTestChange({ecosystem: 'maven'})
})
test('denies packages from the deny packages list', async () => {
const changes: Changes = [npmChange, rubyChange]
const deniedChanges = await getDeniedChanges(
changes,
['pkg:gem/[email protected]'],
[]
)
const deniedChanges = await getDeniedChanges(changes, [
'pkg:gem/[email protected]'
])
expect(deniedChanges[0]).toBe(rubyChange)
expect(deniedChanges.length).toEqual(1)
@@ -67,11 +58,9 @@ test('denies packages from the deny packages list', async () => {
test('denies packages only for the specified version from deny packages list', async () => {
const packageWithDifferentVersion = 'pkg:npm/[email protected]'
const changes: Changes = [npmChange]
const deniedChanges = await getDeniedChanges(
changes,
[packageWithDifferentVersion],
[]
)
const deniedChanges = await getDeniedChanges(changes, [
packageWithDifferentVersion
])
expect(deniedChanges.length).toEqual(0)
})
@@ -83,11 +72,7 @@ test('if no specified version from deny packages list, it will treat package as
createTestChange({name: 'lodash', version: '7.8.9'})
]
const denyAllLodashVersions = 'pkg:npm/lodash'
const deniedChanges = await getDeniedChanges(
changes,
[denyAllLodashVersions],
[]
)
const deniedChanges = await getDeniedChanges(changes, [denyAllLodashVersions])
expect(deniedChanges.length).toEqual(3)
})
+15 -25
View File
@@ -101,29 +101,19 @@ const defaultMavenChange: Change = {
]
}
const createTestChange = (overwrites: Partial<Change> = {}): Change => ({
...defaultNpmChange,
...overwrites
})
const createRubyTestChange = (overwrites: Partial<Change> = {}): Change => ({
...defaultRubyChange,
...overwrites
})
const createPipTestChange = (overwrites: Partial<Change> = {}): Change => ({
...defaultPipChange,
...overwrites
})
const createMavenTestChange = (overwrites: Partial<Change> = {}): Change => ({
...defaultMavenChange,
...overwrites
})
export {
createTestChange,
createRubyTestChange,
createPipTestChange,
createMavenTestChange
const ecosystemToDefaultChange: {[key: string]: Change} = {
npm: defaultNpmChange,
rubygems: defaultRubyChange,
pip: defaultPipChange,
maven: defaultMavenChange
}
const createTestChange = (overwrites: Partial<Change> = {}): Change => {
const ecosystem = overwrites.ecosystem || 'npm'
return {
...ecosystemToDefaultChange[ecosystem],
...overwrites
}
}
export {createTestChange}