add unit tests

This commit is contained in:
Namrata Jha
2021-12-21 09:29:12 +00:00
committed by GitHub
parent 370a350353
commit d846be5128
3 changed files with 59 additions and 48 deletions

View File

@@ -1,27 +1,23 @@
import {Input, InputParams} from '../src/input'
import {deleteVersions, getVersionIds} from '../src/delete'
import {deleteVersions, finalIds} from '../src/delete'
describe.skip('index tests -- call graphql', () => {
describe('index tests -- call graphql', () => {
it('getVersionIds test -- get oldest version', done => {
const numVersions = 1
getVersionIds(getInput({numOldVersionsToDelete: numVersions})).subscribe(
ids => {
expect(ids.length).toBeLessThanOrEqual(numVersions)
done()
}
)
finalIds(getInput({numOldVersionsToDelete: numVersions})).subscribe(ids => {
expect(ids.length).toBeGreaterThanOrEqual(numVersions)
done()
})
})
it('getVersionIds test -- get oldest 3 versions', done => {
const numVersions = 3
getVersionIds(getInput({numOldVersionsToDelete: numVersions})).subscribe(
ids => {
expect(ids.length).toBeLessThanOrEqual(numVersions)
done()
}
)
finalIds(getInput({numOldVersionsToDelete: numVersions})).subscribe(ids => {
expect(ids.length).toBeGreaterThanOrEqual(numVersions)
done()
})
})
it('getVersionIds test -- supplied package version id', done => {
@@ -31,7 +27,7 @@ describe.skip('index tests -- call graphql', () => {
'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'
]
getVersionIds(getInput({packageVersionIds: suppliedIds})).subscribe(ids => {
finalIds(getInput({packageVersionIds: suppliedIds})).subscribe(ids => {
expect(ids).toBe(suppliedIds)
done()
})
@@ -58,24 +54,24 @@ describe.skip('index tests -- call graphql', () => {
})
it.skip('deleteVersions test -- delete oldest version', done => {
deleteVersions(
getInput({numOldVersionsToDelete: 2, minVersionsToKeep: 1})
).subscribe(isSuccess => {
expect(isSuccess).toBe(true)
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, minVersionsToKeep: 1})
).subscribe(isSuccess => {
expect(isSuccess).toBe(true)
done()
})
deleteVersions(getInput({numOldVersionsToDelete: 3})).subscribe(
isSuccess => {
expect(isSuccess).toBe(true)
done()
}
)
})
it('deleteVersions test -- keep 5 versions', done => {
it.skip('deleteVersions test -- keep 5 versions', done => {
deleteVersions(getInput({minVersionsToKeep: 5})).subscribe(isSuccess => {
expect(isSuccess).toBe(true)
done()
@@ -90,6 +86,7 @@ const defaultInput: InputParams = {
packageName: 'onlypkg.maven',
numOldVersionsToDelete: 1,
minVersionsToKeep: 1,
ignoreVersions: RegExp('^$'),
token: process.env.GITHUB_TOKEN as string
}

View File

@@ -1,18 +1,23 @@
// eslint-disable-next-line @typescript-eslint/ban-ts-ignore
// @ts-ignore
import {mockOldestQueryResponse} from './graphql.mock'
import {
getOldestVersions as _getOldestVersions,
VersionInfo
QueryInfo
} from '../../src/version'
import {Observable} from 'rxjs'
describe.skip('get versions tests -- call graphql', () => {
describe('get versions tests -- call graphql', () => {
it('getOldestVersions -- succeeds', done => {
const numVersions = 1
getOldestVersions({numVersions}).subscribe(result => {
expect(result.versions.length).toBe(numVersions)
done()
})
})
getOldestVersions({numVersions}).subscribe(versions => {
expect(versions.length).toBe(numVersions)
it('getOldestVersions -- succeeds for more than 100 versions', done => {
const numVersions = 110
getOldestVersions({numVersions}).subscribe(result => {
expect(result.versions.length).toBe(100)
done()
})
})
@@ -33,8 +38,8 @@ describe('get versions tests -- mock graphql', () => {
const numVersions = 5
mockOldestQueryResponse(numVersions)
getOldestVersions({numVersions}).subscribe(versions => {
expect(versions.length).toBe(numVersions)
getOldestVersions({numVersions}).subscribe(result => {
expect(result.versions.length).toBe(numVersions)
done()
})
})
@@ -45,24 +50,27 @@ interface Params {
repo?: string
packageName?: string
numVersions?: number
startCursor?: string
token?: string
}
const defaultParams = {
owner: 'namratajha',
repo: 'only-pkg',
packageName: 'onlypkg.maven',
numVersions: 3,
packageName: 'only-pkg',
numVersions: 1,
startCursor: '',
token: process.env.GITHUB_TOKEN as string
}
function getOldestVersions(params?: Params): Observable<VersionInfo[]> {
function getOldestVersions(params?: Params): Observable<QueryInfo> {
const p: Required<Params> = {...defaultParams, ...params}
return _getOldestVersions(
p.owner,
p.repo,
p.packageName,
p.numVersions,
p.startCursor,
p.token
)
}

View File

@@ -6,11 +6,11 @@ import {
import * as Graphql from '../../src/version/graphql'
import {GetVersionsQueryResponse} from '../../src/version'
export function getMockedOldestQueryResponseForLessThan100(
export function getMockedOldestQueryResponse(
numVersions: number
): GetVersionsQueryResponse {
const versions = []
numVersions = numVersions < 100 ? numVersions : numVersions
for (let i = 1; i <= numVersions; ++i) {
versions.push({
node: {
@@ -28,7 +28,12 @@ export function getMockedOldestQueryResponseForLessThan100(
node: {
name: 'test',
versions: {
edges: versions.reverse()
totalCount: 200,
edges: versions.reverse(),
pageInfo: {
startCursor: 'AAA',
hasPreviousPage: false
}
}
}
}
@@ -38,12 +43,13 @@ export function getMockedOldestQueryResponseForLessThan100(
}
}
export function mockOldestQueryResponse(
numVersions: number
) {
const response = new Promise((resolve) => {
export function mockOldestQueryResponse(numVersions: number): void {
const response = new Promise<GetVersionsQueryResponse>(resolve => {
resolve(getMockedOldestQueryResponse(numVersions))
}) as Promise<GraphQlQueryResponseData>
jest.spyOn(Graphql, 'graphql').mockImplementation(
(token: string, query: string, parameters: RequestParameters) => response)
jest
.spyOn(Graphql, 'graphql')
.mockImplementation(
(token: string, query: string, parameters: RequestParameters) => response
)
}