diff --git a/__tests__/delete.test.ts b/__tests__/delete.test.ts index 41e42ef..a8208c7 100644 --- a/__tests__/delete.test.ts +++ b/__tests__/delete.test.ts @@ -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 } diff --git a/__tests__/version/get-version.test.ts b/__tests__/version/get-version.test.ts index 481a96d..d3a2d72 100644 --- a/__tests__/version/get-version.test.ts +++ b/__tests__/version/get-version.test.ts @@ -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 { +function getOldestVersions(params?: Params): Observable { const p: Required = {...defaultParams, ...params} return _getOldestVersions( p.owner, p.repo, p.packageName, p.numVersions, + p.startCursor, p.token ) } diff --git a/__tests__/version/graphql.mock.ts b/__tests__/version/graphql.mock.ts index 0883354..c2fb04e 100644 --- a/__tests__/version/graphql.mock.ts +++ b/__tests__/version/graphql.mock.ts @@ -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(resolve => { resolve(getMockedOldestQueryResponse(numVersions)) }) as Promise - jest.spyOn(Graphql, 'graphql').mockImplementation( - (token: string, query: string, parameters: RequestParameters) => response) + jest + .spyOn(Graphql, 'graphql') + .mockImplementation( + (token: string, query: string, parameters: RequestParameters) => response + ) }