Files
delete-package-versions/__tests__/delete.test.ts
2021-12-21 09:29:12 +00:00

96 lines
2.5 KiB
TypeScript

import {Input, InputParams} from '../src/input'
import {deleteVersions, finalIds} from '../src/delete'
describe('index tests -- call graphql', () => {
it('getVersionIds test -- get oldest version', done => {
const numVersions = 1
finalIds(getInput({numOldVersionsToDelete: numVersions})).subscribe(ids => {
expect(ids.length).toBeGreaterThanOrEqual(numVersions)
done()
})
})
it('getVersionIds test -- get oldest 3 versions', done => {
const numVersions = 3
finalIds(getInput({numOldVersionsToDelete: numVersions})).subscribe(ids => {
expect(ids.length).toBeGreaterThanOrEqual(numVersions)
done()
})
})
it('getVersionIds test -- supplied package version id', done => {
const suppliedIds = [
'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
'BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB',
'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'
]
finalIds(getInput({packageVersionIds: suppliedIds})).subscribe(ids => {
expect(ids).toBe(suppliedIds)
done()
})
})
it('deleteVersions test -- missing token', done => {
deleteVersions(getInput({token: ''})).subscribe({
error: err => {
expect(err).toBeTruthy()
done()
},
complete: async () => done.fail('no error thrown')
})
})
it('deleteVersions test -- missing packageName', done => {
deleteVersions(getInput({packageName: ''})).subscribe({
error: err => {
expect(err).toBeTruthy()
done()
},
complete: async () => done.fail('no error thrown')
})
})
it.skip('deleteVersions test -- delete oldest version', done => {
deleteVersions(getInput({numOldVersionsToDelete: 1})).subscribe(
isSuccess => {
expect(isSuccess).toBe(true)
done()
}
)
})
it.skip('deleteVersions test -- delete 3 oldest versions', done => {
deleteVersions(getInput({numOldVersionsToDelete: 3})).subscribe(
isSuccess => {
expect(isSuccess).toBe(true)
done()
}
)
})
it.skip('deleteVersions test -- keep 5 versions', done => {
deleteVersions(getInput({minVersionsToKeep: 5})).subscribe(isSuccess => {
expect(isSuccess).toBe(true)
done()
})
})
})
const defaultInput: InputParams = {
packageVersionIds: [],
owner: 'namratajha',
repo: 'only-pkg',
packageName: 'onlypkg.maven',
numOldVersionsToDelete: 1,
minVersionsToKeep: 1,
ignoreVersions: RegExp('^$'),
token: process.env.GITHUB_TOKEN as string
}
function getInput(params?: InputParams): Input {
return new Input({...defaultInput, ...params})
}