From 508bd47cf0cfcae1b7d9a92459918ae4ea6cdaac Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Fri, 19 Jun 2020 10:21:44 +0200 Subject: [PATCH] fix(datasource): return null instead of empty releases --- lib/datasource/go/index.spec.ts | 6 ++++-- lib/datasource/index.ts | 5 ++++- .../pypi/__snapshots__/index.spec.ts.snap | 16 +--------------- lib/datasource/pypi/index.spec.ts | 19 ++++++++++++------- 4 files changed, 21 insertions(+), 25 deletions(-) diff --git a/lib/datasource/go/index.spec.ts b/lib/datasource/go/index.spec.ts index 7fb37a0b74c345..cdd690b90cba17 100644 --- a/lib/datasource/go/index.spec.ts +++ b/lib/datasource/go/index.spec.ts @@ -146,12 +146,14 @@ describe('datasource/go', () => { { datasource, depName: 'gopkg.in/x/text' }, { datasource, depName: 'gopkg.in/x' }, ]; - const githubRes = { releases: [1, 2] } as any; + const githubRes = { + releases: [], + } as any; for (const pkg of packages) { github.getReleases.mockResolvedValueOnce( partial(githubRes) ); - expect(await getPkgReleases(pkg)).toEqual(githubRes); + expect(await getPkgReleases(pkg)).toBeNull(); } expect(github.getReleases.mock.calls).toMatchSnapshot(); }); diff --git a/lib/datasource/index.ts b/lib/datasource/index.ts index e8d09154fdf56d..8c05a912cdc8ba 100644 --- a/lib/datasource/index.ts +++ b/lib/datasource/index.ts @@ -49,10 +49,13 @@ async function fetchReleases( } const datasource = await load(datasourceName); const registryUrls = resolveRegistryUrls(datasource, config.registryUrls); - const dep = await datasource.getReleases({ + let dep = await datasource.getReleases({ ...config, registryUrls, }); + if (!(dep && dep.releases.length)) { + dep = null; + } addMetaData(dep, datasourceName, config.lookupName); return dep; } diff --git a/lib/datasource/pypi/__snapshots__/index.spec.ts.snap b/lib/datasource/pypi/__snapshots__/index.spec.ts.snap index 9c8ea62c2cba72..70c17a124ead33 100644 --- a/lib/datasource/pypi/__snapshots__/index.spec.ts.snap +++ b/lib/datasource/pypi/__snapshots__/index.spec.ts.snap @@ -1,15 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`datasource/pypi getReleases find url from project_urls 1`] = ` -Object { - "changelogUrl": "https://github.com/Flexget/wiki/blob/master/ChangeLog.md", - "homepage": "https://flexget.com", - "releases": Array [], - "sourceUrl": "https://github.com/Flexget/Flexget", -} -`; - -exports[`datasource/pypi getReleases find url from project_urls 2`] = ` Array [ Object { "headers": Object { @@ -298,12 +289,7 @@ Array [ ] `; -exports[`datasource/pypi getReleases returns non-github home_page 1`] = ` -Object { - "homepage": "https://microsoft.com", - "releases": Array [], -} -`; +exports[`datasource/pypi getReleases returns non-github home_page 1`] = `"https://microsoft.com"`; exports[`datasource/pypi getReleases returns non-github home_page 2`] = ` Array [ diff --git a/lib/datasource/pypi/index.spec.ts b/lib/datasource/pypi/index.spec.ts index 98ae67e1d5b82b..27b28e9e33864b 100644 --- a/lib/datasource/pypi/index.spec.ts +++ b/lib/datasource/pypi/index.spec.ts @@ -124,16 +124,19 @@ describe('datasource/pypi', () => { .scope(baseUrl) .get('/something/json') .reply(200, { + ...JSON.parse(res1), info: { name: 'something', home_page: 'https://microsoft.com', }, }); expect( - await getPkgReleases({ - datasource, - depName: 'something', - }) + ( + await getPkgReleases({ + datasource, + depName: 'something', + }) + ).homepage ).toMatchSnapshot(); expect(httpMock.getTrace()).toMatchSnapshot(); }); @@ -149,14 +152,16 @@ describe('datasource/pypi', () => { Repository: 'https://github.com/Flexget/Flexget', }, }; - httpMock.scope(baseUrl).get('/flexget/json').reply(200, { info }); + httpMock + .scope(baseUrl) + .get('/flexget/json') + .reply(200, { ...JSON.parse(res1), info }); const result = await getPkgReleases({ datasource, depName: 'flexget', }); expect(result.sourceUrl).toBe(info.project_urls.Repository); expect(result.changelogUrl).toBe(info.project_urls.changelog); - expect(result).toMatchSnapshot(); expect(httpMock.getTrace()).toMatchSnapshot(); }); it('returns null if mismatched name', async () => { @@ -310,7 +315,7 @@ describe('datasource/pypi', () => { compatibility: { python: '2.7' }, depName: 'dj-database-url', }) - ).toEqual({ releases: [] }); + ).toBeNull(); }); }); });