diff --git a/lib/datasource/cdnjs/__snapshots__/index.spec.ts.snap b/lib/datasource/cdnjs/__snapshots__/index.spec.ts.snap index 5d9e5c2e0faeff..3c12b51b7598c5 100644 --- a/lib/datasource/cdnjs/__snapshots__/index.spec.ts.snap +++ b/lib/datasource/cdnjs/__snapshots__/index.spec.ts.snap @@ -5,11 +5,10 @@ Object { "homepage": "http://bulma.io", "releases": Array [ Object { - "newDigest": undefined, "version": "0.7.5", }, ], - "sourceUrl": "git+https://github.com/jgthms/bulma.git", + "sourceUrl": "https://github.com/jgthms/bulma", } `; @@ -33,111 +32,111 @@ Object { "homepage": "https://d3js.org/d3-force/", "releases": Array [ Object { - "newDigest": "sha256-gp0SbnQfnXL6TyrP5b7JAifyBupTdBDiYpRArpdhIKg=", - "version": "1.1.0", - }, - Object { - "newDigest": "sha256-5D0Nfdo36KQmwzPqSzwmgaB81NzrlAAenDn9CXxO9eA=", - "version": "1.0.6", + "newDigest": "sha256-DNKhvPNPQByxMloPGL2GfmxYsbWDcrznYp+/r4eXs+o=", + "version": "0.0.1", }, Object { - "newDigest": "sha256-NqhhKDL7mFceODpyCsdd1vUHIgOK96DJNDUKtYJyHo8=", - "version": "1.0.5", + "newDigest": "sha256-yrh9ylv/W7CahimBrLMhf4X7uVuO3pTHHRKASy4nmt8=", + "version": "0.0.2", }, Object { - "newDigest": "sha256-T7VhvwL3G9POw0nHoRgl4OP0PmfiAHZObfHza0Lbp3s=", - "version": "1.0.4", + "newDigest": "sha256-NuLk1K9PD9BeilzdXFVmimrPbt5kURq5mhCqb8WQ8qk=", + "version": "0.0.3", }, Object { - "newDigest": "sha256-Pco5eBqSA/Wozq5wQVuZ5YuRC8Zn4EfBbht4kK09hms=", - "version": "1.0.3", + "newDigest": "sha256-7hyoFVueIL/RLbMcV01X6kfVEB0/WpEWKyf7W716Pqs=", + "version": "0.0.4", }, Object { - "newDigest": "sha256-a2jXPrguES4/PmuoJJaVi+Qev/ZUGmIOJmG0/LIIcME=", - "version": "1.0.2", + "newDigest": "sha256-otPu46hPGgaRCnEkZuH3VQ9dKT6H7uzcAmrjvtCXIzQ=", + "version": "0.1.0", }, Object { - "newDigest": "sha256-BkiOgLEeo2ERn7/yYgsU+t97dOXWuUP8nOc6T7sf4aQ=", - "version": "1.0.1", + "newDigest": "sha256-VRq0I3f7XeNjPc3fa/jPoCVWii+1VAMS5GSc98yOjeQ=", + "version": "0.2.0", }, Object { - "newDigest": "sha256-hRMRHUxlb4+aq13/P/Fk7RmVGX8r0n7psFs7cysjtQo=", - "version": "1.0.0", + "newDigest": "sha256-R5hN8fDqziJDFPXVYztdJ0VcuA4NVaiMmYpIO7QkHMc=", + "version": "0.2.1", }, Object { - "newDigest": "sha256-C4xhHucs90cw3YQ2Kry4IjovxF6hzXIXlt7XLSgn4uw=", - "version": "0.7.1", + "newDigest": "sha256-4jWVeft3EbQiO6mOzBN5gQISLLtiVk1gjk3sTBzxqWE=", + "version": "0.2.2", }, Object { - "newDigest": "sha256-U93AQ12JgwO+Crpoop0f4VVtgo5EWyy5Ac/VDbr9nrw=", - "version": "0.7.0", + "newDigest": "sha256-v/EpI8zylc/rx6tNiqL631j1d1C2BbPJGpgyJHIidt0=", + "version": "0.3.0", }, Object { - "newDigest": "sha256-3/LnH5zecwn1jl4B8/VwDUKLxHvD4tQv9pecq4I+lY0=", - "version": "0.6.3", + "newDigest": "sha256-h5Ap2n1itK1bTRb5syvo31u3huhwOvIvv8YAq45SMHE=", + "version": "0.4.0", }, Object { - "newDigest": "sha256-SG9SrF1YlltbriU+Z6Q7bvTgRJPw4XZBW4KjulEHiFQ=", - "version": "0.6.2", + "newDigest": "sha256-nqSSxi5zHLx8IDv465yKPl7iQa9bKmB1tO1CYwHfORI=", + "version": "0.4.1", }, Object { - "newDigest": "sha256-SYfALXpqoQWY7PB5stjN2B10R0t6B8OizEug3nV5hgk=", - "version": "0.6.1", + "newDigest": "sha256-FEYdY1bzDtPA2tvvyXVSgl/y9EIjF/L5+de3tD4OTF4=", + "version": "0.5.0", }, Object { "newDigest": "sha256-b07xptMLcxLFDYrlbaq7z9oD+Qe5X0jNjEqpRArWPJU=", "version": "0.6.0", }, Object { - "newDigest": "sha256-FEYdY1bzDtPA2tvvyXVSgl/y9EIjF/L5+de3tD4OTF4=", - "version": "0.5.0", + "newDigest": "sha256-SYfALXpqoQWY7PB5stjN2B10R0t6B8OizEug3nV5hgk=", + "version": "0.6.1", }, Object { - "newDigest": "sha256-nqSSxi5zHLx8IDv465yKPl7iQa9bKmB1tO1CYwHfORI=", - "version": "0.4.1", + "newDigest": "sha256-SG9SrF1YlltbriU+Z6Q7bvTgRJPw4XZBW4KjulEHiFQ=", + "version": "0.6.2", }, Object { - "newDigest": "sha256-h5Ap2n1itK1bTRb5syvo31u3huhwOvIvv8YAq45SMHE=", - "version": "0.4.0", + "newDigest": "sha256-3/LnH5zecwn1jl4B8/VwDUKLxHvD4tQv9pecq4I+lY0=", + "version": "0.6.3", }, Object { - "newDigest": "sha256-v/EpI8zylc/rx6tNiqL631j1d1C2BbPJGpgyJHIidt0=", - "version": "0.3.0", + "newDigest": "sha256-U93AQ12JgwO+Crpoop0f4VVtgo5EWyy5Ac/VDbr9nrw=", + "version": "0.7.0", }, Object { - "newDigest": "sha256-4jWVeft3EbQiO6mOzBN5gQISLLtiVk1gjk3sTBzxqWE=", - "version": "0.2.2", + "newDigest": "sha256-C4xhHucs90cw3YQ2Kry4IjovxF6hzXIXlt7XLSgn4uw=", + "version": "0.7.1", }, Object { - "newDigest": "sha256-R5hN8fDqziJDFPXVYztdJ0VcuA4NVaiMmYpIO7QkHMc=", - "version": "0.2.1", + "newDigest": "sha256-hRMRHUxlb4+aq13/P/Fk7RmVGX8r0n7psFs7cysjtQo=", + "version": "1.0.0", }, Object { - "newDigest": "sha256-VRq0I3f7XeNjPc3fa/jPoCVWii+1VAMS5GSc98yOjeQ=", - "version": "0.2.0", + "newDigest": "sha256-BkiOgLEeo2ERn7/yYgsU+t97dOXWuUP8nOc6T7sf4aQ=", + "version": "1.0.1", }, Object { - "newDigest": "sha256-otPu46hPGgaRCnEkZuH3VQ9dKT6H7uzcAmrjvtCXIzQ=", - "version": "0.1.0", + "newDigest": "sha256-a2jXPrguES4/PmuoJJaVi+Qev/ZUGmIOJmG0/LIIcME=", + "version": "1.0.2", }, Object { - "newDigest": "sha256-7hyoFVueIL/RLbMcV01X6kfVEB0/WpEWKyf7W716Pqs=", - "version": "0.0.4", + "newDigest": "sha256-Pco5eBqSA/Wozq5wQVuZ5YuRC8Zn4EfBbht4kK09hms=", + "version": "1.0.3", }, Object { - "newDigest": "sha256-NuLk1K9PD9BeilzdXFVmimrPbt5kURq5mhCqb8WQ8qk=", - "version": "0.0.3", + "newDigest": "sha256-T7VhvwL3G9POw0nHoRgl4OP0PmfiAHZObfHza0Lbp3s=", + "version": "1.0.4", }, Object { - "newDigest": "sha256-yrh9ylv/W7CahimBrLMhf4X7uVuO3pTHHRKASy4nmt8=", - "version": "0.0.2", + "newDigest": "sha256-NqhhKDL7mFceODpyCsdd1vUHIgOK96DJNDUKtYJyHo8=", + "version": "1.0.5", }, Object { - "newDigest": "sha256-DNKhvPNPQByxMloPGL2GfmxYsbWDcrznYp+/r4eXs+o=", - "version": "0.0.1", + "newDigest": "sha256-5D0Nfdo36KQmwzPqSzwmgaB81NzrlAAenDn9CXxO9eA=", + "version": "1.0.6", + }, + Object { + "newDigest": "sha256-gp0SbnQfnXL6TyrP5b7JAifyBupTdBDiYpRArpdhIKg=", + "version": "1.1.0", }, ], - "sourceUrl": "https://github.com/d3/d3-force.git", + "sourceUrl": "https://github.com/d3/d3-force", } `; diff --git a/lib/datasource/cdnjs/index.spec.ts b/lib/datasource/cdnjs/index.spec.ts index 966013b1b7ea3c..976b61003caad9 100644 --- a/lib/datasource/cdnjs/index.spec.ts +++ b/lib/datasource/cdnjs/index.spec.ts @@ -1,7 +1,8 @@ import fs from 'fs'; +import { getPkgReleases } from '..'; import * as httpMock from '../../../test/httpMock'; import { DATASOURCE_FAILURE } from '../../constants/error-messages'; -import { getReleases } from '.'; +import { id as datasource } from '.'; let res1 = fs.readFileSync( 'lib/datasource/cdnjs/__fixtures__/d3-force.json', @@ -33,21 +34,23 @@ describe('datasource/cdnjs', () => { it('throws for empty result', async () => { httpMock.scope(baseUrl).get(pathFor('foo/bar')).reply(200, null); - await expect(getReleases({ lookupName: 'foo/bar' })).rejects.toThrow( - DATASOURCE_FAILURE - ); + await expect( + getPkgReleases({ datasource, depName: 'foo/bar' }) + ).rejects.toThrow(DATASOURCE_FAILURE); expect(httpMock.getTrace()).toMatchSnapshot(); }); it('throws for error', async () => { httpMock.scope(baseUrl).get(pathFor('foo/bar')).replyWithError('error'); - await expect(getReleases({ lookupName: 'foo/bar' })).rejects.toThrow( - DATASOURCE_FAILURE - ); + await expect( + getPkgReleases({ datasource, depName: 'foo/bar' }) + ).rejects.toThrow(DATASOURCE_FAILURE); expect(httpMock.getTrace()).toMatchSnapshot(); }); it('returns null for 404', async () => { httpMock.scope(baseUrl).get(pathFor('foo/bar')).reply(404); - expect(await getReleases({ lookupName: 'foo/bar' })).toBeNull(); + expect( + await getPkgReleases({ datasource, depName: 'foo/bar' }) + ).toBeNull(); expect(httpMock.getTrace()).toMatchSnapshot(); }); it('returns null for empty 200 OK', async () => { @@ -56,36 +59,39 @@ describe('datasource/cdnjs', () => { .get(pathFor('doesnotexist/doesnotexist')) .reply(200, {}); expect( - await getReleases({ lookupName: 'doesnotexist/doesnotexist' }) + await getPkgReleases({ + datasource, + depName: 'doesnotexist/doesnotexist', + }) ).toBeNull(); expect(httpMock.getTrace()).toMatchSnapshot(); }); it('throws for 401', async () => { httpMock.scope(baseUrl).get(pathFor('foo/bar')).reply(401); - await expect(getReleases({ lookupName: 'foo/bar' })).rejects.toThrow( - DATASOURCE_FAILURE - ); + await expect( + getPkgReleases({ datasource, depName: 'foo/bar' }) + ).rejects.toThrow(DATASOURCE_FAILURE); expect(httpMock.getTrace()).toMatchSnapshot(); }); it('throws for 429', async () => { httpMock.scope(baseUrl).get(pathFor('foo/bar')).reply(429); - await expect(getReleases({ lookupName: 'foo/bar' })).rejects.toThrow( - DATASOURCE_FAILURE - ); + await expect( + getPkgReleases({ datasource, depName: 'foo/bar' }) + ).rejects.toThrow(DATASOURCE_FAILURE); expect(httpMock.getTrace()).toMatchSnapshot(); }); it('throws for 5xx', async () => { httpMock.scope(baseUrl).get(pathFor('foo/bar')).reply(502); - await expect(getReleases({ lookupName: 'foo/bar' })).rejects.toThrow( - DATASOURCE_FAILURE - ); + await expect( + getPkgReleases({ datasource, depName: 'foo/bar' }) + ).rejects.toThrow(DATASOURCE_FAILURE); expect(httpMock.getTrace()).toMatchSnapshot(); }); it('returns null for unknown error', async () => { httpMock.scope(baseUrl).get(pathFor('foo/bar')).replyWithError('error'); - await expect(getReleases({ lookupName: 'foo/bar' })).rejects.toThrow( - DATASOURCE_FAILURE - ); + await expect( + getPkgReleases({ datasource, depName: 'foo/bar' }) + ).rejects.toThrow(DATASOURCE_FAILURE); expect(httpMock.getTrace()).toMatchSnapshot(); }); it('processes real data', async () => { @@ -93,7 +99,10 @@ describe('datasource/cdnjs', () => { .scope(baseUrl) .get(pathFor('d3-force/d3-force.js')) .reply(200, res1); - const res = await getReleases({ lookupName: 'd3-force/d3-force.js' }); + const res = await getPkgReleases({ + datasource, + depName: 'd3-force/d3-force.js', + }); expect(res).toMatchSnapshot(); expect(httpMock.getTrace()).toMatchSnapshot(); }); @@ -102,8 +111,9 @@ describe('datasource/cdnjs', () => { .scope(baseUrl) .get(pathFor('bulma/only/0.7.5/style.css')) .reply(200, res2); - const res = await getReleases({ - lookupName: 'bulma/only/0.7.5/style.css', + const res = await getPkgReleases({ + datasource, + depName: 'bulma/only/0.7.5/style.css', }); expect(res).toMatchSnapshot(); expect(httpMock.getTrace()).toMatchSnapshot(); diff --git a/lib/datasource/crate/index.spec.ts b/lib/datasource/crate/index.spec.ts index bd9708266aa12f..0821fb55b7b671 100644 --- a/lib/datasource/crate/index.spec.ts +++ b/lib/datasource/crate/index.spec.ts @@ -1,7 +1,8 @@ import fs from 'fs'; +import { getPkgReleases } from '..'; import * as httpMock from '../../../test/httpMock'; -import { getReleases } from '.'; +import { id as datasource } from '.'; const res1 = fs.readFileSync('lib/datasource/crate/__fixtures__/libc', 'utf8'); const res2 = fs.readFileSync( @@ -21,7 +22,10 @@ describe('datasource/crate', () => { it('returns null for empty result', async () => { httpMock.scope(baseUrl).get('/no/n_/non_existent_crate').reply(200, {}); expect( - await getReleases({ lookupName: 'non_existent_crate' }) + await getPkgReleases({ + datasource, + depName: 'non_existent_crate', + }) ).toBeNull(); expect(httpMock.getTrace()).toMatchSnapshot(); }); @@ -31,27 +35,35 @@ describe('datasource/crate', () => { .get('/no/n_/non_existent_crate') .reply(200, undefined); expect( - await getReleases({ lookupName: 'non_existent_crate' }) + await getPkgReleases({ + datasource, + depName: 'non_existent_crate', + }) ).toBeNull(); expect(httpMock.getTrace()).toMatchSnapshot(); }); it('returns null for empty list', async () => { httpMock.scope(baseUrl).get('/no/n_/non_existent_crate').reply(200, '\n'); expect( - await getReleases({ lookupName: 'non_existent_crate' }) + await getPkgReleases({ + datasource, + depName: 'non_existent_crate', + }) ).toBeNull(); expect(httpMock.getTrace()).toMatchSnapshot(); }); it('returns null for 404', async () => { httpMock.scope(baseUrl).get('/so/me/some_crate').reply(404); - expect(await getReleases({ lookupName: 'some_crate' })).toBeNull(); + expect( + await getPkgReleases({ datasource, depName: 'some_crate' }) + ).toBeNull(); expect(httpMock.getTrace()).toMatchSnapshot(); }); it('throws for 5xx', async () => { httpMock.scope(baseUrl).get('/so/me/some_crate').reply(502); let e; try { - await getReleases({ lookupName: 'some_crate' }); + await getPkgReleases({ datasource, depName: 'some_crate' }); } catch (err) { e = err; } @@ -61,12 +73,17 @@ describe('datasource/crate', () => { }); it('returns null for unknown error', async () => { httpMock.scope(baseUrl).get('/so/me/some_crate').replyWithError(''); - expect(await getReleases({ lookupName: 'some_crate' })).toBeNull(); + expect( + await getPkgReleases({ datasource, depName: 'some_crate' }) + ).toBeNull(); expect(httpMock.getTrace()).toMatchSnapshot(); }); it('processes real data: libc', async () => { httpMock.scope(baseUrl).get('/li/bc/libc').reply(200, res1); - const res = await getReleases({ lookupName: 'libc' }); + const res = await getPkgReleases({ + datasource, + depName: 'libc', + }); expect(res).toMatchSnapshot(); expect(res).not.toBeNull(); expect(res).toBeDefined(); @@ -74,7 +91,10 @@ describe('datasource/crate', () => { }); it('processes real data: amethyst', async () => { httpMock.scope(baseUrl).get('/am/et/amethyst').reply(200, res2); - const res = await getReleases({ lookupName: 'amethyst' }); + const res = await getPkgReleases({ + datasource, + depName: 'amethyst', + }); expect(res).toMatchSnapshot(); expect(res).not.toBeNull(); expect(res).toBeDefined(); @@ -82,13 +102,19 @@ describe('datasource/crate', () => { }); it('returns null if crate name is invalid', async () => { httpMock.scope(baseUrl).get('/in/va/invalid-crate-name').reply(200, res2); - const res = await getReleases({ lookupName: 'invalid-crate-name' }); + const res = await getPkgReleases({ + datasource, + depName: 'invalid-crate-name', + }); expect(res).toBeNull(); expect(httpMock.getTrace()).toMatchSnapshot(); }); it('returns null for invalid crate data', async () => { httpMock.scope(baseUrl).get('/so/me/some_crate').reply(200, res3); - const res = await getReleases({ lookupName: 'some_crate' }); + const res = await getPkgReleases({ + datasource, + depName: 'some_crate', + }); expect(res).toBeNull(); expect(httpMock.getTrace()).toMatchSnapshot(); }); diff --git a/lib/datasource/dart/__snapshots__/index.spec.ts.snap b/lib/datasource/dart/__snapshots__/index.spec.ts.snap index 52477f48413e04..39f878f58fd9a7 100644 --- a/lib/datasource/dart/__snapshots__/index.spec.ts.snap +++ b/lib/datasource/dart/__snapshots__/index.spec.ts.snap @@ -2,7 +2,6 @@ exports[`datasource/dart getReleases processes real data 1`] = ` Object { - "homepage": "https://github.com/flutter/plugins/tree/master/packages/shared_preferences", "releases": Array [ Object { "version": "0.1.1", diff --git a/lib/datasource/dart/index.spec.ts b/lib/datasource/dart/index.spec.ts index 317274b6ea931d..e5ca6aed265501 100644 --- a/lib/datasource/dart/index.spec.ts +++ b/lib/datasource/dart/index.spec.ts @@ -1,6 +1,7 @@ import fs from 'fs'; +import { getPkgReleases } from '..'; import * as httpMock from '../../../test/httpMock'; -import { getReleases } from '.'; +import { id as datasource } from '.'; const body: any = JSON.parse( fs.readFileSync( @@ -23,7 +24,9 @@ describe('datasource/dart', () => { describe('getReleases', () => { it('returns null for empty result', async () => { httpMock.scope(baseUrl).get('/non_sense').reply(200, null); - expect(await getReleases({ lookupName: 'non_sense' })).toBeNull(); + expect( + await getPkgReleases({ datasource, depName: 'non_sense' }) + ).toBeNull(); expect(httpMock.getTrace()).toMatchSnapshot(); }); it('returns null for empty fields', async () => { @@ -36,7 +39,10 @@ describe('datasource/dart', () => { .get('/shared_preferences') .reply(200, withoutVersions); expect( - await getReleases({ lookupName: 'shared_preferences' }) + await getPkgReleases({ + datasource, + depName: 'shared_preferences', + }) ).toBeNull(); const withoutLatest = { @@ -48,7 +54,10 @@ describe('datasource/dart', () => { .get('/shared_preferences') .reply(200, withoutLatest); expect( - await getReleases({ lookupName: 'shared_preferences' }) + await getPkgReleases({ + datasource, + depName: 'shared_preferences', + }) ).toBeNull(); expect(httpMock.getTrace()).toMatchSnapshot(); @@ -56,7 +65,10 @@ describe('datasource/dart', () => { it('returns null for 404', async () => { httpMock.scope(baseUrl).get('/shared_preferences').reply(404); expect( - await getReleases({ lookupName: 'shared_preferences' }) + await getPkgReleases({ + datasource, + depName: 'shared_preferences', + }) ).toBeNull(); expect(httpMock.getTrace()).toMatchSnapshot(); }); @@ -64,7 +76,10 @@ describe('datasource/dart', () => { httpMock.scope(baseUrl).get('/shared_preferences').reply(502); let e; try { - await getReleases({ lookupName: 'shared_preferences' }); + await getPkgReleases({ + datasource, + depName: 'shared_preferences', + }); } catch (err) { e = err; } @@ -75,14 +90,18 @@ describe('datasource/dart', () => { it('returns null for unknown error', async () => { httpMock.scope(baseUrl).get('/shared_preferences').replyWithError(''); expect( - await getReleases({ lookupName: 'shared_preferences' }) + await getPkgReleases({ + datasource, + depName: 'shared_preferences', + }) ).toBeNull(); expect(httpMock.getTrace()).toMatchSnapshot(); }); it('processes real data', async () => { httpMock.scope(baseUrl).get('/shared_preferences').reply(200, body); - const res = await getReleases({ - lookupName: 'shared_preferences', + const res = await getPkgReleases({ + datasource, + depName: 'shared_preferences', }); expect(res).toMatchSnapshot(); expect(httpMock.getTrace()).toMatchSnapshot(); diff --git a/lib/datasource/galaxy/index.spec.ts b/lib/datasource/galaxy/index.spec.ts index 8558281257b1d8..b1da9813579cdc 100644 --- a/lib/datasource/galaxy/index.spec.ts +++ b/lib/datasource/galaxy/index.spec.ts @@ -1,7 +1,8 @@ import fs from 'fs'; +import { getPkgReleases } from '..'; import * as httpMock from '../../../test/httpMock'; -import { getReleases } from './index'; +import { id as datasource } from '.'; const res1 = fs.readFileSync( 'lib/datasource/galaxy/__fixtures__/timezone', @@ -30,7 +31,7 @@ describe('datasource/galaxy', () => { .get('/api/v1/roles/?owner__username=non_existent_crate&name=undefined') .reply(200); expect( - await getReleases({ lookupName: 'non_existent_crate' }) + await getPkgReleases({ datasource, depName: 'non_existent_crate' }) ).toBeNull(); expect(httpMock.getTrace()).toMatchSnapshot(); }); @@ -40,7 +41,7 @@ describe('datasource/galaxy', () => { .get('/api/v1/roles/?owner__username=non_existent_crate&name=undefined') .reply(200, undefined); expect( - await getReleases({ lookupName: 'non_existent_crate' }) + await getPkgReleases({ datasource, depName: 'non_existent_crate' }) ).toBeNull(); expect(httpMock.getTrace()).toMatchSnapshot(); }); @@ -50,7 +51,7 @@ describe('datasource/galaxy', () => { .get('/api/v1/roles/?owner__username=non_existent_crate&name=undefined') .reply(200, '\n'); expect( - await getReleases({ lookupName: 'non_existent_crate' }) + await getPkgReleases({ datasource, depName: 'non_existent_crate' }) ).toBeNull(); expect(httpMock.getTrace()).toMatchSnapshot(); }); @@ -59,7 +60,9 @@ describe('datasource/galaxy', () => { .scope(baseUrl) .get('/api/v1/roles/?owner__username=some_crate&name=undefined') .reply(404); - expect(await getReleases({ lookupName: 'some_crate' })).toBeNull(); + expect( + await getPkgReleases({ datasource, depName: 'some_crate' }) + ).toBeNull(); expect(httpMock.getTrace()).toMatchSnapshot(); }); it('returns null for unknown error', async () => { @@ -67,7 +70,9 @@ describe('datasource/galaxy', () => { .scope(baseUrl) .get('/api/v1/roles/?owner__username=some_crate&name=undefined') .replyWithError('some unknown error'); - expect(await getReleases({ lookupName: 'some_crate' })).toBeNull(); + expect( + await getPkgReleases({ datasource, depName: 'some_crate' }) + ).toBeNull(); expect(httpMock.getTrace()).toMatchSnapshot(); }); it('processes real data', async () => { @@ -75,7 +80,10 @@ describe('datasource/galaxy', () => { .scope(baseUrl) .get('/api/v1/roles/?owner__username=yatesr&name=timezone') .reply(200, res1); - const res = await getReleases({ lookupName: 'yatesr.timezone' }); + const res = await getPkgReleases({ + datasource, + depName: 'yatesr.timezone', + }); expect(res).toMatchSnapshot(); expect(res).not.toBeNull(); expect(res).toBeDefined(); @@ -86,7 +94,7 @@ describe('datasource/galaxy', () => { .scope(baseUrl) .get('/api/v1/roles/?owner__username=foo&name=bar') .reply(200, empty); - const res = await getReleases({ lookupName: 'foo.bar' }); + const res = await getPkgReleases({ datasource, depName: 'foo.bar' }); expect(res).toBeNull(); expect(httpMock.getTrace()).toMatchSnapshot(); }); @@ -97,7 +105,7 @@ describe('datasource/galaxy', () => { .reply(502); let e; try { - await getReleases({ lookupName: 'some_crate' }); + await getPkgReleases({ datasource, depName: 'some_crate' }); } catch (err) { e = err; } @@ -110,7 +118,7 @@ describe('datasource/galaxy', () => { .scope(baseUrl) .get('/api/v1/roles/?owner__username=foo&name=bar') .reply(404); - const res = await getReleases({ lookupName: 'foo.bar' }); + const res = await getPkgReleases({ datasource, depName: 'foo.bar' }); expect(res).toBeNull(); expect(httpMock.getTrace()).toMatchSnapshot(); }); diff --git a/lib/datasource/helm/__snapshots__/index.spec.ts.snap b/lib/datasource/helm/__snapshots__/index.spec.ts.snap index d0ed6d6ecf7676..8ae2aea4bbf36f 100644 --- a/lib/datasource/helm/__snapshots__/index.spec.ts.snap +++ b/lib/datasource/helm/__snapshots__/index.spec.ts.snap @@ -20,112 +20,112 @@ Object { "name": "ambassador", "releases": Array [ Object { - "releaseTimestamp": 2019-06-02T08:56:36.119Z, - "version": "2.7.0", + "releaseTimestamp": "2019-02-13T00:56:01.476Z", + "version": "1.0.0", }, Object { - "releaseTimestamp": 2019-05-31T18:57:01.540Z, - "version": "2.6.2", + "releaseTimestamp": "2019-02-14T15:25:43.743Z", + "version": "1.1.0", }, Object { - "releaseTimestamp": 2019-05-27T23:28:25.443Z, - "version": "2.6.1", + "releaseTimestamp": "2019-02-14T16:55:51.519Z", + "version": "1.1.1", }, Object { - "releaseTimestamp": 2019-05-24T10:56:37.781Z, - "version": "2.6.0", + "releaseTimestamp": "2019-02-15T23:56:28.304Z", + "version": "1.1.2", }, Object { - "releaseTimestamp": 2019-05-20T23:56:32.309Z, - "version": "2.5.1", + "releaseTimestamp": "2019-02-22T16:28:27.398Z", + "version": "1.1.3", }, Object { - "releaseTimestamp": 2019-05-16T21:56:48.001Z, - "version": "2.5.0", + "releaseTimestamp": "2019-02-24T04:55:38.454Z", + "version": "1.1.4", }, Object { - "releaseTimestamp": 2019-05-15T07:56:25.942Z, - "version": "2.4.1", + "releaseTimestamp": "2019-03-21T15:25:53.910Z", + "version": "1.1.5", }, Object { - "releaseTimestamp": 2019-05-09T17:29:35.612Z, - "version": "2.4.0", + "releaseTimestamp": "2019-03-22T14:26:18.094Z", + "version": "2.0.0", }, Object { - "releaseTimestamp": 2019-05-08T19:26:25.925Z, - "version": "2.3.1", + "releaseTimestamp": "2019-04-06T13:26:04.916Z", + "version": "2.0.1", }, Object { - "releaseTimestamp": 2019-05-06T21:28:21.342Z, - "version": "2.3.0", + "releaseTimestamp": "2019-04-08T13:26:12.863Z", + "version": "2.0.2", }, Object { - "releaseTimestamp": 2019-05-06T20:56:39.732Z, - "version": "2.2.5", + "releaseTimestamp": "2019-04-23T14:57:59.089Z", + "version": "2.1.0", }, Object { - "releaseTimestamp": 2019-05-01T19:56:23.829Z, - "version": "2.2.4", + "releaseTimestamp": "2019-04-23T19:56:09.380Z", + "version": "2.2.0", }, Object { - "releaseTimestamp": 2019-05-01T14:27:55.475Z, - "version": "2.2.3", + "releaseTimestamp": "2019-04-27T01:56:41.147Z", + "version": "2.2.1", }, Object { - "releaseTimestamp": 2019-04-29T20:56:20.987Z, + "releaseTimestamp": "2019-04-29T20:56:20.987Z", "version": "2.2.2", }, Object { - "releaseTimestamp": 2019-04-27T01:56:41.147Z, - "version": "2.2.1", + "releaseTimestamp": "2019-05-01T14:27:55.475Z", + "version": "2.2.3", }, Object { - "releaseTimestamp": 2019-04-23T19:56:09.380Z, - "version": "2.2.0", + "releaseTimestamp": "2019-05-01T19:56:23.829Z", + "version": "2.2.4", }, Object { - "releaseTimestamp": 2019-04-23T14:57:59.089Z, - "version": "2.1.0", + "releaseTimestamp": "2019-05-06T20:56:39.732Z", + "version": "2.2.5", }, Object { - "releaseTimestamp": 2019-04-08T13:26:12.863Z, - "version": "2.0.2", + "releaseTimestamp": "2019-05-06T21:28:21.342Z", + "version": "2.3.0", }, Object { - "releaseTimestamp": 2019-04-06T13:26:04.916Z, - "version": "2.0.1", + "releaseTimestamp": "2019-05-08T19:26:25.925Z", + "version": "2.3.1", }, Object { - "releaseTimestamp": 2019-03-22T14:26:18.094Z, - "version": "2.0.0", + "releaseTimestamp": "2019-05-09T17:29:35.612Z", + "version": "2.4.0", }, Object { - "releaseTimestamp": 2019-03-21T15:25:53.910Z, - "version": "1.1.5", + "releaseTimestamp": "2019-05-15T07:56:25.942Z", + "version": "2.4.1", }, Object { - "releaseTimestamp": 2019-02-24T04:55:38.454Z, - "version": "1.1.4", + "releaseTimestamp": "2019-05-16T21:56:48.001Z", + "version": "2.5.0", }, Object { - "releaseTimestamp": 2019-02-22T16:28:27.398Z, - "version": "1.1.3", + "releaseTimestamp": "2019-05-20T23:56:32.309Z", + "version": "2.5.1", }, Object { - "releaseTimestamp": 2019-02-15T23:56:28.304Z, - "version": "1.1.2", + "releaseTimestamp": "2019-05-24T10:56:37.781Z", + "version": "2.6.0", }, Object { - "releaseTimestamp": 2019-02-14T16:55:51.519Z, - "version": "1.1.1", + "releaseTimestamp": "2019-05-27T23:28:25.443Z", + "version": "2.6.1", }, Object { - "releaseTimestamp": 2019-02-14T15:25:43.743Z, - "version": "1.1.0", + "releaseTimestamp": "2019-05-31T18:57:01.540Z", + "version": "2.6.2", }, Object { - "releaseTimestamp": 2019-02-13T00:56:01.476Z, - "version": "1.0.0", + "releaseTimestamp": "2019-06-02T08:56:36.119Z", + "version": "2.7.0", }, ], "sourceUrl": "https://github.com/datawire/ambassador", diff --git a/lib/datasource/helm/index.spec.ts b/lib/datasource/helm/index.spec.ts index 671643ba06f801..3d44e16f55325f 100644 --- a/lib/datasource/helm/index.spec.ts +++ b/lib/datasource/helm/index.spec.ts @@ -1,6 +1,7 @@ import fs from 'fs'; +import { getPkgReleases } from '..'; import * as httpMock from '../../../test/httpMock'; -import { getReleases } from '.'; +import { id as datasource } from '.'; // Truncated index.yaml file const indexYaml = fs.readFileSync( @@ -21,16 +22,18 @@ describe('datasource/helm', () => { it('returns null if lookupName was not provided', async () => { expect( - await getReleases({ - lookupName: undefined, + await getPkgReleases({ + datasource, + depName: undefined, registryUrls: ['https://example-repository.com'], }) ).toBeNull(); }); it('returns null if repository was not provided', async () => { expect( - await getReleases({ - lookupName: 'some_chart', + await getPkgReleases({ + datasource, + depName: 'some_chart', registryUrls: [], }) ).toBeNull(); @@ -41,8 +44,9 @@ describe('datasource/helm', () => { .get('/index.yaml') .reply(200, null); expect( - await getReleases({ - lookupName: 'non_existent_chart', + await getPkgReleases({ + datasource, + depName: 'non_existent_chart', registryUrls: ['https://example-repository.com'], }) ).toBeNull(); @@ -54,8 +58,9 @@ describe('datasource/helm', () => { .get('/index.yaml') .reply(200, undefined); expect( - await getReleases({ - lookupName: 'non_existent_chart', + await getPkgReleases({ + datasource, + depName: 'non_existent_chart', registryUrls: ['https://example-repository.com'], }) ).toBeNull(); @@ -67,8 +72,9 @@ describe('datasource/helm', () => { .get('/index.yaml') .reply(404); expect( - await getReleases({ - lookupName: 'some_chart', + await getPkgReleases({ + datasource, + depName: 'some_chart', registryUrls: ['https://example-repository.com'], }) ).toBeNull(); @@ -81,8 +87,9 @@ describe('datasource/helm', () => { .reply(502); let e; try { - await getReleases({ - lookupName: 'some_chart', + await getPkgReleases({ + datasource, + depName: 'some_chart', registryUrls: ['https://example-repository.com'], }); } catch (err) { @@ -98,8 +105,9 @@ describe('datasource/helm', () => { .get('/index.yaml') .replyWithError(''); expect( - await getReleases({ - lookupName: 'some_chart', + await getPkgReleases({ + datasource, + depName: 'some_chart', registryUrls: ['https://example-repository.com'], }) ).toBeNull(); @@ -110,8 +118,9 @@ describe('datasource/helm', () => { .scope('https://example-repository.com') .get('/index.yaml') .reply(200, '# A comment'); - const releases = await getReleases({ - lookupName: 'non_existent_chart', + const releases = await getPkgReleases({ + datasource, + depName: 'non_existent_chart', registryUrls: ['https://example-repository.com'], }); expect(releases).toBeNull(); @@ -128,8 +137,9 @@ describe('datasource/helm', () => { .scope('https://example-repository.com') .get('/index.yaml') .reply(200, res); - const releases = await getReleases({ - lookupName: 'non_existent_chart', + const releases = await getPkgReleases({ + datasource, + depName: 'non_existent_chart', registryUrls: ['https://example-repository.com'], }); expect(releases).toBeNull(); @@ -140,8 +150,9 @@ describe('datasource/helm', () => { .scope('https://example-repository.com') .get('/index.yaml') .reply(200, indexYaml); - const releases = await getReleases({ - lookupName: 'non_existent_chart', + const releases = await getPkgReleases({ + datasource, + depName: 'non_existent_chart', registryUrls: ['https://example-repository.com'], }); expect(releases).toBeNull(); @@ -152,8 +163,9 @@ describe('datasource/helm', () => { .scope('https://example-repository.com') .get('/index.yaml') .reply(200, indexYaml); - const releases = await getReleases({ - lookupName: 'ambassador', + const releases = await getPkgReleases({ + datasource, + depName: 'ambassador', registryUrls: ['https://example-repository.com'], }); expect(releases).not.toBeNull(); @@ -165,8 +177,9 @@ describe('datasource/helm', () => { .scope('https://example-repository.com') .get('/subdir/index.yaml') .reply(200, indexYaml); - await getReleases({ - lookupName: 'ambassador', + await getPkgReleases({ + datasource, + depName: 'ambassador', registryUrls: ['https://example-repository.com/subdir'], }); const trace = httpMock.getTrace(); diff --git a/lib/datasource/helm/index.ts b/lib/datasource/helm/index.ts index d646d07d2178fd..33671e577fff71 100644 --- a/lib/datasource/helm/index.ts +++ b/lib/datasource/helm/index.ts @@ -104,10 +104,6 @@ export async function getReleases({ registryUrls, }: GetReleasesConfig): Promise { const [helmRepository] = registryUrls; - if (!helmRepository) { - logger.warn(`helmRepository was not provided to getReleases`); - return null; - } const repositoryData = await getRepositoryData(helmRepository); if (!repositoryData) { logger.debug(`Couldn't get index.yaml file from ${helmRepository}`); diff --git a/lib/datasource/hex/__snapshots__/index.spec.ts.snap b/lib/datasource/hex/__snapshots__/index.spec.ts.snap index 44a0e16be30f12..f95e58a1042d3e 100644 --- a/lib/datasource/hex/__snapshots__/index.spec.ts.snap +++ b/lib/datasource/hex/__snapshots__/index.spec.ts.snap @@ -5,83 +5,83 @@ Object { "homepage": "https://hex.pm/packages/certifi", "releases": Array [ Object { - "releaseTimestamp": "2020-03-04T14:54:16.283323Z", - "version": "2.5.2", - }, - Object { - "releaseTimestamp": "2019-01-24T15:14:25.991190Z", - "version": "2.5.1", + "releaseTimestamp": "2015-09-10T13:58:55.620634Z", + "version": "0.1.1", }, Object { - "releaseTimestamp": "2018-08-30T08:21:29.349366Z", - "version": "2.4.2", + "releaseTimestamp": "2015-11-19T11:25:06.024607Z", + "version": "0.2.0", }, Object { - "releaseTimestamp": "2018-08-23T08:18:39.658169Z", - "version": "2.4.1", + "version": "0.3.0", }, Object { - "releaseTimestamp": "2018-03-01T12:09:47.479620Z", - "version": "2.3.1", + "releaseTimestamp": "2016-03-02T20:37:38.856702Z", + "version": "0.4.0", }, Object { - "releaseTimestamp": "2018-02-27T21:20:24.804583Z", - "version": "2.3.0", + "releaseTimestamp": "2016-08-25T14:22:42.043018Z", + "version": "0.5.0", }, Object { - "releaseTimestamp": "2018-02-15T14:40:54.249660Z", - "version": "2.2.0", + "releaseTimestamp": "2016-09-12T10:05:24.327928Z", + "version": "0.6.0", }, Object { - "releaseTimestamp": "2018-02-15T14:24:33.990296Z", - "version": "2.1.0", + "releaseTimestamp": "2016-10-02T23:16:44.504184Z", + "version": "0.7.0", }, Object { - "releaseTimestamp": "2017-07-29T10:26:25.887395Z", - "version": "2.0.0", + "releaseTimestamp": "2017-01-24T11:14:00.415180Z", + "version": "1.0.0", }, Object { - "releaseTimestamp": "2017-05-22T10:05:04.091548Z", - "version": "1.2.1", + "releaseTimestamp": "2017-04-20T03:47:25.151946Z", + "version": "1.1.0", }, Object { "releaseTimestamp": "2017-05-20T17:36:20.704236Z", "version": "1.2.0", }, Object { - "releaseTimestamp": "2017-04-20T03:47:25.151946Z", - "version": "1.1.0", + "releaseTimestamp": "2017-05-22T10:05:04.091548Z", + "version": "1.2.1", }, Object { - "releaseTimestamp": "2017-01-24T11:14:00.415180Z", - "version": "1.0.0", + "releaseTimestamp": "2017-07-29T10:26:25.887395Z", + "version": "2.0.0", }, Object { - "releaseTimestamp": "2016-10-02T23:16:44.504184Z", - "version": "0.7.0", + "releaseTimestamp": "2018-02-15T14:24:33.990296Z", + "version": "2.1.0", }, Object { - "releaseTimestamp": "2016-09-12T10:05:24.327928Z", - "version": "0.6.0", + "releaseTimestamp": "2018-02-15T14:40:54.249660Z", + "version": "2.2.0", }, Object { - "releaseTimestamp": "2016-08-25T14:22:42.043018Z", - "version": "0.5.0", + "releaseTimestamp": "2018-02-27T21:20:24.804583Z", + "version": "2.3.0", }, Object { - "releaseTimestamp": "2016-03-02T20:37:38.856702Z", - "version": "0.4.0", + "releaseTimestamp": "2018-03-01T12:09:47.479620Z", + "version": "2.3.1", }, Object { - "version": "0.3.0", + "releaseTimestamp": "2018-08-23T08:18:39.658169Z", + "version": "2.4.1", }, Object { - "releaseTimestamp": "2015-11-19T11:25:06.024607Z", - "version": "0.2.0", + "releaseTimestamp": "2018-08-30T08:21:29.349366Z", + "version": "2.4.2", }, Object { - "releaseTimestamp": "2015-09-10T13:58:55.620634Z", - "version": "0.1.1", + "releaseTimestamp": "2019-01-24T15:14:25.991190Z", + "version": "2.5.1", + }, + Object { + "releaseTimestamp": "2020-03-04T14:54:16.283323Z", + "version": "2.5.2", }, ], "sourceUrl": "https://github.com/certifi/erlang-certifi", @@ -108,83 +108,83 @@ Object { "homepage": "https://hex.pm/packages/certifi", "releases": Array [ Object { - "releaseTimestamp": "2020-03-04T14:54:16.283323Z", - "version": "2.5.2", - }, - Object { - "releaseTimestamp": "2019-01-24T15:14:25.991190Z", - "version": "2.5.1", + "releaseTimestamp": "2015-09-10T13:58:55.620634Z", + "version": "0.1.1", }, Object { - "releaseTimestamp": "2018-08-30T08:21:29.349366Z", - "version": "2.4.2", + "releaseTimestamp": "2015-11-19T11:25:06.024607Z", + "version": "0.2.0", }, Object { - "releaseTimestamp": "2018-08-23T08:18:39.658169Z", - "version": "2.4.1", + "version": "0.3.0", }, Object { - "releaseTimestamp": "2018-03-01T12:09:47.479620Z", - "version": "2.3.1", + "releaseTimestamp": "2016-03-02T20:37:38.856702Z", + "version": "0.4.0", }, Object { - "releaseTimestamp": "2018-02-27T21:20:24.804583Z", - "version": "2.3.0", + "releaseTimestamp": "2016-08-25T14:22:42.043018Z", + "version": "0.5.0", }, Object { - "releaseTimestamp": "2018-02-15T14:40:54.249660Z", - "version": "2.2.0", + "releaseTimestamp": "2016-09-12T10:05:24.327928Z", + "version": "0.6.0", }, Object { - "releaseTimestamp": "2018-02-15T14:24:33.990296Z", - "version": "2.1.0", + "releaseTimestamp": "2016-10-02T23:16:44.504184Z", + "version": "0.7.0", }, Object { - "releaseTimestamp": "2017-07-29T10:26:25.887395Z", - "version": "2.0.0", + "releaseTimestamp": "2017-01-24T11:14:00.415180Z", + "version": "1.0.0", }, Object { - "releaseTimestamp": "2017-05-22T10:05:04.091548Z", - "version": "1.2.1", + "releaseTimestamp": "2017-04-20T03:47:25.151946Z", + "version": "1.1.0", }, Object { "releaseTimestamp": "2017-05-20T17:36:20.704236Z", "version": "1.2.0", }, Object { - "releaseTimestamp": "2017-04-20T03:47:25.151946Z", - "version": "1.1.0", + "releaseTimestamp": "2017-05-22T10:05:04.091548Z", + "version": "1.2.1", }, Object { - "releaseTimestamp": "2017-01-24T11:14:00.415180Z", - "version": "1.0.0", + "releaseTimestamp": "2017-07-29T10:26:25.887395Z", + "version": "2.0.0", }, Object { - "releaseTimestamp": "2016-10-02T23:16:44.504184Z", - "version": "0.7.0", + "releaseTimestamp": "2018-02-15T14:24:33.990296Z", + "version": "2.1.0", }, Object { - "releaseTimestamp": "2016-09-12T10:05:24.327928Z", - "version": "0.6.0", + "releaseTimestamp": "2018-02-15T14:40:54.249660Z", + "version": "2.2.0", }, Object { - "releaseTimestamp": "2016-08-25T14:22:42.043018Z", - "version": "0.5.0", + "releaseTimestamp": "2018-02-27T21:20:24.804583Z", + "version": "2.3.0", }, Object { - "releaseTimestamp": "2016-03-02T20:37:38.856702Z", - "version": "0.4.0", + "releaseTimestamp": "2018-03-01T12:09:47.479620Z", + "version": "2.3.1", }, Object { - "version": "0.3.0", + "releaseTimestamp": "2018-08-23T08:18:39.658169Z", + "version": "2.4.1", }, Object { - "releaseTimestamp": "2015-11-19T11:25:06.024607Z", - "version": "0.2.0", + "releaseTimestamp": "2018-08-30T08:21:29.349366Z", + "version": "2.4.2", }, Object { - "releaseTimestamp": "2015-09-10T13:58:55.620634Z", - "version": "0.1.1", + "releaseTimestamp": "2019-01-24T15:14:25.991190Z", + "version": "2.5.1", + }, + Object { + "releaseTimestamp": "2020-03-04T14:54:16.283323Z", + "version": "2.5.2", }, ], "sourceUrl": "https://github.com/certifi/erlang-certifi", diff --git a/lib/datasource/hex/index.spec.ts b/lib/datasource/hex/index.spec.ts index 8c439c343d7ecb..a751a20da5061b 100644 --- a/lib/datasource/hex/index.spec.ts +++ b/lib/datasource/hex/index.spec.ts @@ -1,8 +1,9 @@ import fs from 'fs'; +import { getPkgReleases } from '..'; import * as httpMock from '../../../test/httpMock'; import { DATASOURCE_FAILURE } from '../../constants/error-messages'; import * as _hostRules from '../../util/host-rules'; -import { getReleases } from '.'; +import { id as datasource } from '.'; const hostRules: any = _hostRules; @@ -18,10 +19,12 @@ const baseUrl = 'https://hex.pm/api/packages/'; describe('datasource/hex', () => { beforeEach(() => { + hostRules.hosts = jest.fn(() => []); httpMock.setup(); }); afterEach(() => { + jest.resetAllMocks(); httpMock.reset(); }); @@ -29,56 +32,74 @@ describe('datasource/hex', () => { it('returns null for empty result', async () => { httpMock.scope(baseUrl).get('/non_existent_package').reply(200, null); expect( - await getReleases({ lookupName: 'non_existent_package' }) + await getPkgReleases({ + datasource, + depName: 'non_existent_package', + }) ).toBeNull(); expect(httpMock.getTrace()).toMatchSnapshot(); }); it('returns null for missing fields', async () => { httpMock.scope(baseUrl).get('/non_existent_package').reply(200, {}); expect( - await getReleases({ lookupName: 'non_existent_package' }) + await getPkgReleases({ + datasource, + depName: 'non_existent_package', + }) ).toBeNull(); expect(httpMock.getTrace()).toMatchSnapshot(); }); it('returns null for 404', async () => { httpMock.scope(baseUrl).get('/some_package').reply(404); - expect(await getReleases({ lookupName: 'some_package' })).toBeNull(); + expect( + await getPkgReleases({ datasource, depName: 'some_package' }) + ).toBeNull(); expect(httpMock.getTrace()).toMatchSnapshot(); }); it('returns null for 401', async () => { httpMock.scope(baseUrl).get('/some_package').reply(401); - expect(await getReleases({ lookupName: 'some_package' })).toBeNull(); + expect( + await getPkgReleases({ datasource, depName: 'some_package' }) + ).toBeNull(); expect(httpMock.getTrace()).toMatchSnapshot(); }); it('throws for 429', async () => { httpMock.scope(baseUrl).get('/some_crate').reply(429); - await expect(getReleases({ lookupName: 'some_crate' })).rejects.toThrow( - DATASOURCE_FAILURE - ); + await expect( + getPkgReleases({ datasource, depName: 'some_crate' }) + ).rejects.toThrow(DATASOURCE_FAILURE); expect(httpMock.getTrace()).toMatchSnapshot(); }); it('throws for 5xx', async () => { httpMock.scope(baseUrl).get('/some_crate').reply(502); - await expect(getReleases({ lookupName: 'some_crate' })).rejects.toThrow( - DATASOURCE_FAILURE - ); + await expect( + getPkgReleases({ datasource, depName: 'some_crate' }) + ).rejects.toThrow(DATASOURCE_FAILURE); expect(httpMock.getTrace()).toMatchSnapshot(); }); it('returns null for unknown error', async () => { httpMock.scope(baseUrl).get('/some_package').replyWithError(''); - expect(await getReleases({ lookupName: 'some_package' })).toBeNull(); + expect( + await getPkgReleases({ datasource, depName: 'some_package' }) + ).toBeNull(); expect(httpMock.getTrace()).toMatchSnapshot(); }); it('returns null with wrong auth token', async () => { httpMock.scope(baseUrl).get('/certifi').reply(401); hostRules.find.mockReturnValueOnce({ token: 'this_simple_token' }); - const res = await getReleases({ lookupName: 'certifi' }); + const res = await getPkgReleases({ + datasource, + depName: 'certifi', + }); expect(res).toBeNull(); expect(httpMock.getTrace()).toMatchSnapshot(); }); it('processes real data', async () => { httpMock.scope(baseUrl).get('/certifi').reply(200, res1); - const res = await getReleases({ lookupName: 'certifi' }); + const res = await getPkgReleases({ + datasource, + depName: 'certifi', + }); expect(res).toMatchSnapshot(); expect(res).not.toBeNull(); expect(res).toBeDefined(); @@ -87,7 +108,10 @@ describe('datasource/hex', () => { it('process public repo without auth', async () => { httpMock.scope(baseUrl).get('/certifi').reply(200, res1); hostRules.find.mockReturnValueOnce({}); - const res = await getReleases({ lookupName: 'certifi' }); + const res = await getPkgReleases({ + datasource, + depName: 'certifi', + }); expect(res).toMatchSnapshot(); expect(res).not.toBeNull(); expect(res).toBeDefined(); diff --git a/lib/datasource/ruby-version/__snapshots__/index.spec.ts.snap b/lib/datasource/ruby-version/__snapshots__/index.spec.ts.snap index 4ee2d66c0cf8e2..892c5e38502a82 100644 --- a/lib/datasource/ruby-version/__snapshots__/index.spec.ts.snap +++ b/lib/datasource/ruby-version/__snapshots__/index.spec.ts.snap @@ -5,314 +5,319 @@ Object { "homepage": "https://www.ruby-lang.org", "releases": Array [ Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2018/12/25/ruby-2-6-0-released/", - "releaseTimestamp": "2018-12-25", - "version": "2.6.0", + "changelogUrl": "https://www.ruby-lang.org/en/news/2002/03/01/167-is-released/", + "releaseTimestamp": "2002-03-01", + "version": "1.6.7", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2018/12/15/ruby-2-6-0-rc2-released/", - "releaseTimestamp": "2018-12-15", - "version": "2.6.0-rc2", + "changelogUrl": "https://www.ruby-lang.org/en/news/2003/08/04/ruby-180-released/", + "releaseTimestamp": "2003-08-04", + "version": "1.8.0", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2018/12/06/ruby-2-6-0-rc1-released/", - "releaseTimestamp": "2018-12-06", - "version": "2.6.0-rc1", + "changelogUrl": "https://www.ruby-lang.org/en/news/2004/07/21/ruby-182-preview1-released/", + "releaseTimestamp": "2004-07-21", + "version": "1.8.2-preview1", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2018/11/06/ruby-2-6-0-preview3-released/", - "releaseTimestamp": "2018-11-06", - "version": "2.6.0-preview3", + "changelogUrl": "https://www.ruby-lang.org/en/news/2004/07/30/ruby-182-preview2-released/", + "releaseTimestamp": "2004-07-30", + "version": "1.8.2-preview2", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2018/10/18/ruby-2-5-3-released/", - "releaseTimestamp": "2018-10-18", - "version": "2.5.3", + "changelogUrl": "https://www.ruby-lang.org/en/news/2004/11/08/182-preview3-released/", + "releaseTimestamp": "2004-11-08", + "version": "1.8.2-preview3", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2018/10/17/ruby-2-5-2-released/", - "releaseTimestamp": "2018-10-17", - "version": "2.5.2", + "changelogUrl": "https://www.ruby-lang.org/en/news/2004/12/22/182-preview4-released/", + "releaseTimestamp": "2004-12-22", + "version": "1.8.2-preview4", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2018/10/17/ruby-2-4-5-released/", - "releaseTimestamp": "2018-10-17", - "version": "2.4.5", + "changelogUrl": "https://www.ruby-lang.org/en/news/2004/12/26/ruby-182-released/", + "releaseTimestamp": "2004-12-26", + "version": "1.8.2", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2018/10/17/ruby-2-3-8-released/", - "releaseTimestamp": "2018-10-17", - "version": "2.3.8", + "changelogUrl": "https://www.ruby-lang.org/en/news/2005/09/21/ruby-183-released/", + "releaseTimestamp": "2005-09-21", + "version": "1.8.3", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2018/05/31/ruby-2-6-0-preview2-released/", - "releaseTimestamp": "2018-05-31", - "version": "2.6.0-preview2", + "changelogUrl": "https://www.ruby-lang.org/en/news/2005/12/14/ruby-184-preview-2-released/", + "releaseTimestamp": "2005-12-14", + "version": "1.8.4-preview2", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2018/03/28/ruby-2-5-1-released/", - "releaseTimestamp": "2018-03-28", - "version": "2.5.1", + "changelogUrl": "https://www.ruby-lang.org/en/news/2005/12/24/ruby-184-released/", + "releaseTimestamp": "2005-12-24", + "version": "1.8.4", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2018/03/28/ruby-2-4-4-released/", - "releaseTimestamp": "2018-03-28", - "version": "2.4.4", + "changelogUrl": "https://www.ruby-lang.org/en/news/2006/08/29/ruby-1-8-5-released/", + "releaseTimestamp": "2006-08-29", + "version": "1.8.5", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2018/03/28/ruby-2-3-7-released/", - "releaseTimestamp": "2018-03-28", - "version": "2.3.7", + "changelogUrl": "https://www.ruby-lang.org/en/news/2008/08/11/ruby-1-8-7-p72-and-1-8-6-p287-released/", + "releaseTimestamp": "2008-08-11", + "version": "1.8.6-p287", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2018/03/28/ruby-2-2-10-released/", - "releaseTimestamp": "2018-03-28", - "version": "2.2.10", + "changelogUrl": "https://www.ruby-lang.org/en/news/2009/04/18/ruby-1-8-7-p160-and-1-8-6-p368-released/", + "releaseTimestamp": "2009-04-18", + "version": "1.8.6-p368", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2018/02/24/ruby-2-6-0-preview1-released/", - "releaseTimestamp": "2018-02-24", - "version": "2.6.0-preview1", + "changelogUrl": "https://www.ruby-lang.org/en/news/2007/03/12/ruby-1-8-6-released/", + "releaseTimestamp": "2007-03-12", + "version": "1.8.6", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2017/12/25/ruby-2-5-0-released/", - "releaseTimestamp": "2017-12-25", - "version": "2.5.0", + "changelogUrl": "https://www.ruby-lang.org/en/news/2009/04/18/ruby-1-8-7-p160-and-1-8-6-p368-released/", + "releaseTimestamp": "2009-04-18", + "version": "1.8.7-p160", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2017/12/14/ruby-2-5-0-rc1-released/", - "releaseTimestamp": "2017-12-14", - "version": "2.5.0-rc1", + "changelogUrl": "https://www.ruby-lang.org/en/news/2009/12/25/ruby-1-8-7-p248-released/", + "releaseTimestamp": "2009-12-25", + "version": "1.8.7-p248", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2017/12/14/ruby-2-4-3-released/", - "releaseTimestamp": "2017-12-14", - "version": "2.4.3", + "changelogUrl": "https://www.ruby-lang.org/en/news/2010/06/23/ruby-1-8-7-p299-released/", + "releaseTimestamp": "2010-06-23", + "version": "1.8.7-p299", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2017/12/14/ruby-2-3-6-released/", - "releaseTimestamp": "2017-12-14", - "version": "2.3.6", + "changelogUrl": "https://www.ruby-lang.org/en/news/2010/08/16/ruby-1-8-7-p302-is-released/", + "releaseTimestamp": "2010-08-16", + "version": "1.8.7-p302", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2017/12/14/ruby-2-2-9-released/", - "releaseTimestamp": "2017-12-14", - "version": "2.2.9", + "changelogUrl": "https://www.ruby-lang.org/en/news/2010/12/25/ruby-1-8-7-p330-released/", + "releaseTimestamp": "2010-12-25", + "version": "1.8.7-p330", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2017/10/10/ruby-2-5-0-preview1-released/", - "releaseTimestamp": "2017-10-10", - "version": "2.5.0-preview1", + "changelogUrl": "https://www.ruby-lang.org/en/news/2011/07/02/ruby-1-8-7-p352-released/", + "releaseTimestamp": "2011-07-02", + "version": "1.8.7-p352", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2017/09/14/ruby-2-4-2-released/", - "releaseTimestamp": "2017-09-14", - "version": "2.4.2", + "changelogUrl": "https://www.ruby-lang.org/en/news/2012/06/29/ruby-1-8-7-p370-released/", + "releaseTimestamp": "2012-06-29", + "version": "1.8.7-p370", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2017/09/14/ruby-2-3-5-released/", - "releaseTimestamp": "2017-09-14", - "version": "2.3.5", + "changelogUrl": "https://www.ruby-lang.org/en/news/2013/06/27/ruby-1-8-7-p374-is-released/", + "releaseTimestamp": "2013-06-27", + "version": "1.8.7-p374", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2017/09/14/ruby-2-2-8-released/", - "releaseTimestamp": "2017-09-14", - "version": "2.2.8", + "changelogUrl": "https://www.ruby-lang.org/en/news/2008/08/11/ruby-1-8-7-p72-and-1-8-6-p287-released/", + "releaseTimestamp": "2008-08-11", + "version": "1.8.7-p72", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2017/03/30/ruby-2-3-4-released/", - "releaseTimestamp": "2017-03-30", - "version": "2.3.4", + "changelogUrl": "https://www.ruby-lang.org/en/news/2008/05/31/ruby-1-8-7-has-been-released/", + "releaseTimestamp": "2008-05-31", + "version": "1.8.7", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2017/03/28/ruby-2-2-7-released/", - "releaseTimestamp": "2017-03-28", - "version": "2.2.7", + "changelogUrl": "https://www.ruby-lang.org/en/news/2007/12/25/ruby-1-9-0-released/", + "releaseTimestamp": "2007-12-25", + "version": "1.9.0", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2017/03/22/ruby-2-4-1-released/", - "releaseTimestamp": "2017-03-22", - "version": "2.4.1", + "changelogUrl": "https://www.ruby-lang.org/en/news/2009/05/12/ruby-1-9-1-p129-released/", + "releaseTimestamp": "2009-05-12", + "version": "1.9.1-p129", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2016/12/25/ruby-2-4-0-released/", - "releaseTimestamp": "2016-12-25", - "version": "2.4.0", + "changelogUrl": "https://www.ruby-lang.org/en/news/2009/07/20/ruby-1-9-1-p243-released/", + "releaseTimestamp": "2009-07-20", + "version": "1.9.1-p243", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2016/12/12/ruby-2-4-0-rc1-released/", - "releaseTimestamp": "2016-12-12", - "version": "2.4.0-rc1", + "changelogUrl": "https://www.ruby-lang.org/en/news/2009/12/07/ruby-1-9-1-p376-is-released/", + "releaseTimestamp": "2009-12-07", + "version": "1.9.1-p376", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2016/11/21/ruby-2-3-3-released/", - "releaseTimestamp": "2016-11-21", - "version": "2.3.3", + "changelogUrl": "https://www.ruby-lang.org/en/news/2010/07/02/ruby-1-9-1-p429-is-released/", + "releaseTimestamp": "2010-07-02", + "version": "1.9.1-p429", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2016/11/15/ruby-2-3-2-released/", - "releaseTimestamp": "2016-11-15", - "version": "2.3.2", + "changelogUrl": "https://www.ruby-lang.org/en/news/2010/08/16/ruby-1-9-1-p430-is-released/", + "releaseTimestamp": "2010-08-16", + "version": "1.9.1-p430", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2016/11/15/ruby-2-2-6-released/", - "releaseTimestamp": "2016-11-15", - "version": "2.2.6", + "changelogUrl": "https://www.ruby-lang.org/en/news/2008/10/28/ruby-1-9-1-preview-1-released/", + "releaseTimestamp": "2008-10-28", + "version": "1.9.1-preview1", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2016/11/09/ruby-2-4-0-preview3-released/", - "releaseTimestamp": "2016-11-09", - "version": "2.4.0-preview3", + "changelogUrl": "https://www.ruby-lang.org/en/news/2009/01/30/ruby-1-9-1-released/", + "releaseTimestamp": "2009-01-30", + "version": "1.9.1", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2016/09/08/ruby-2-4-0-preview2-released/", - "releaseTimestamp": "2016-09-08", - "version": "2.4.0-preview2", + "changelogUrl": "https://www.ruby-lang.org/en/news/2010/12/25/ruby-1-9-2-p136-is-released/", + "releaseTimestamp": "2010-12-25", + "version": "1.9.2-p136", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2016/06/20/ruby-2-4-0-preview1-released/", - "releaseTimestamp": "2016-06-20", - "version": "2.4.0-preview1", + "changelogUrl": "https://www.ruby-lang.org/en/news/2011/07/15/ruby-1-9-2-p290-is-released/", + "releaseTimestamp": "2011-07-15", + "version": "1.9.2-p290", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2016/04/26/ruby-2-3-1-released/", - "releaseTimestamp": "2016-04-26", - "version": "2.3.1", + "changelogUrl": "https://www.ruby-lang.org/en/news/2012/04/21/ruby-1-9-2-p320-is-released/", + "releaseTimestamp": "2012-04-21", + "version": "1.9.2-p320", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2016/04/26/ruby-2-2-5-released/", - "releaseTimestamp": "2016-04-26", - "version": "2.2.5", + "changelogUrl": "https://www.ruby-lang.org/en/news/2014/08/19/ruby-1-9-2-p330-released/", + "releaseTimestamp": "2014-08-19", + "version": "1.9.2-p330", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2016/04/01/ruby-2-1-10-released/", - "releaseTimestamp": "2016-04-01", - "version": "2.1.10", + "changelogUrl": "https://www.ruby-lang.org/en/news/2009/07/20/ruby-1-9-2-preview-1-released/", + "releaseTimestamp": "2009-07-20", + "version": "1.9.2-preview1", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2016/03/30/ruby-2-1-9-released/", - "releaseTimestamp": "2016-03-30", - "version": "2.1.9", + "changelogUrl": "https://www.ruby-lang.org/en/news/2010/07/02/ruby-1-9-2-rc1-is-released/", + "releaseTimestamp": "2010-07-02", + "version": "1.9.2-rc1", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2015/12/25/ruby-2-3-0-released/", - "releaseTimestamp": "2015-12-25", - "version": "2.3.0", + "changelogUrl": "https://www.ruby-lang.org/en/news/2010/07/11/ruby-1-9-2-rc2-is-released/", + "releaseTimestamp": "2010-07-11", + "version": "1.9.2-rc2", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2015/12/16/ruby-2-2-4-released/", - "releaseTimestamp": "2015-12-16", - "version": "2.2.4", + "changelogUrl": "https://www.ruby-lang.org/en/news/2010/08/18/ruby-1-9-2-released/", + "releaseTimestamp": "2010-08-18", + "version": "1.9.2", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2015/12/16/ruby-2-1-8-released/", - "releaseTimestamp": "2015-12-16", - "version": "2.1.8", + "changelogUrl": "https://www.ruby-lang.org/en/news/2012/02/16/ruby-1-9-3-p125-is-released/", + "releaseTimestamp": "2012-02-16", + "version": "1.9.3-p125", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2015/12/16/ruby-2-0-0-p648-released/", - "releaseTimestamp": "2015-12-16", - "version": "2.0.0-p648", + "changelogUrl": "https://www.ruby-lang.org/en/news/2012/04/20/ruby-1-9-3-p194-is-released/", + "releaseTimestamp": "2012-04-20", + "version": "1.9.3-p194", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2015/12/11/ruby-2-3-0-preview2-released/", - "releaseTimestamp": "2015-12-11", - "version": "2.3.0-preview2", + "changelogUrl": "https://www.ruby-lang.org/en/news/2012/10/12/ruby-1-9-3-p286-is-released/", + "releaseTimestamp": "2012-10-12", + "version": "1.9.3-p286", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2015/11/11/ruby-2-3-0-preview1-released/", - "releaseTimestamp": "2015-11-11", - "version": "2.3.0-preview1", + "changelogUrl": "https://www.ruby-lang.org/en/news/2012/11/09/ruby-1-9-3-p327-is-released/", + "releaseTimestamp": "2012-11-09", + "version": "1.9.3-p327", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2015/08/18/ruby-2-2-3-released/", - "releaseTimestamp": "2015-08-18", - "version": "2.2.3", + "changelogUrl": "https://www.ruby-lang.org/en/news/2012/12/25/ruby-1-9-3-p362-is-released/", + "releaseTimestamp": "2012-12-25", + "version": "1.9.3-p362", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2015/08/18/ruby-2-1-7-released/", - "releaseTimestamp": "2015-08-18", - "version": "2.1.7", + "changelogUrl": "https://www.ruby-lang.org/en/news/2013/01/17/ruby-1-9-3-p374-is-released/", + "releaseTimestamp": "2013-01-17", + "version": "1.9.3-p374", + }, + Object { + "changelogUrl": "https://www.ruby-lang.org/en/news/2013/02/06/ruby-1-9-3-p385-is-released/", + "releaseTimestamp": "2013-02-06", + "version": "1.9.3-p385", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2015/08/18/ruby-2-0-0-p647-released/", - "releaseTimestamp": "2015-08-18", - "version": "2.0.0-p647", + "changelogUrl": "https://www.ruby-lang.org/en/news/2013/02/22/ruby-1-9-3-p392-is-released/", + "releaseTimestamp": "2013-02-22", + "version": "1.9.3-p392", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2015/04/13/ruby-2-2-2-released/", - "releaseTimestamp": "2015-04-13", - "version": "2.2.2", + "changelogUrl": "https://www.ruby-lang.org/en/news/2013/05/14/ruby-1-9-3-p429-is-released/", + "releaseTimestamp": "2013-05-14", + "version": "1.9.3-p429", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2015/04/13/ruby-2-1-6-released/", - "releaseTimestamp": "2015-04-13", - "version": "2.1.6", + "changelogUrl": "https://www.ruby-lang.org/en/news/2013/06/27/ruby-1-9-3-p448-is-released/", + "releaseTimestamp": "2013-06-27", + "version": "1.9.3-p448", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2015/04/13/ruby-2-0-0-p645-released/", - "releaseTimestamp": "2015-04-13", - "version": "2.0.0-p645", + "changelogUrl": "https://www.ruby-lang.org/en/news/2013/11/22/ruby-1-9-3-p484-is-released/", + "releaseTimestamp": "2013-11-22", + "version": "1.9.3-p484", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2015/03/03/ruby-2-2-1-released/", - "releaseTimestamp": "2015-03-03", - "version": "2.2.1", + "changelogUrl": "https://www.ruby-lang.org/en/news/2014/02/24/ruby-1-9-3-p545-is-released/", + "releaseTimestamp": "2014-02-24", + "version": "1.9.3-p545", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2015/02/25/ruby-2-0-0-p643-is-released/", - "releaseTimestamp": "2015-02-25", - "version": "2.0.0-p643", + "changelogUrl": "https://www.ruby-lang.org/en/news/2014/05/16/ruby-1-9-3-p547-released/", + "releaseTimestamp": "2014-05-16", + "version": "1.9.3-p547", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2014/12/25/ruby-2-2-0-released/", - "releaseTimestamp": "2014-12-25", - "version": "2.2.0", + "changelogUrl": "https://www.ruby-lang.org/en/news/2014/10/27/ruby-1-9-3-p550-is-released/", + "releaseTimestamp": "2014-10-27", + "version": "1.9.3-p550", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2014/12/18/ruby-2-2-0-rc1-released/", - "releaseTimestamp": "2014-12-18", - "version": "2.2.0-rc1", + "changelogUrl": "https://www.ruby-lang.org/en/news/2014/11/13/ruby-1-9-3-p551-is-released/", + "releaseTimestamp": "2014-11-13", + "version": "1.9.3-p551", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2014/11/28/ruby-2-2-0-preview2-released/", - "releaseTimestamp": "2014-11-28", - "version": "2.2.0-preview2", + "changelogUrl": "https://www.ruby-lang.org/en/news/2011/08/01/ruby-1-9-3-preview1-has-been-released/", + "releaseTimestamp": "2011-08-01", + "version": "1.9.3-preview1", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2014/11/13/ruby-2-1-5-is-released/", - "releaseTimestamp": "2014-11-13", - "version": "2.1.5", + "changelogUrl": "https://www.ruby-lang.org/en/news/2011/09/24/ruby-1-9-3-rc1-has-been-released/", + "releaseTimestamp": "2011-09-24", + "version": "1.9.3-rc1", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2014/11/13/ruby-2-0-0-p598-is-released/", - "releaseTimestamp": "2014-11-13", - "version": "2.0.0-p598", + "changelogUrl": "https://www.ruby-lang.org/en/news/2011/10/31/ruby-1-9-3-p0-is-released/", + "releaseTimestamp": "2011-10-31", + "version": "1.9.3", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2014/11/13/ruby-1-9-3-p551-is-released/", - "releaseTimestamp": "2014-11-13", - "version": "1.9.3-p551", + "changelogUrl": "https://www.ruby-lang.org/en/news/2013/05/14/ruby-2-0-0-p195-is-released/", + "releaseTimestamp": "2013-05-14", + "version": "2.0.0-p195", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2014/10/27/ruby-2-1-4-released/", - "releaseTimestamp": "2014-10-27", - "version": "2.1.4", + "changelogUrl": "https://www.ruby-lang.org/en/news/2013/06/27/ruby-2-0-0-p247-is-released/", + "releaseTimestamp": "2013-06-27", + "version": "2.0.0-p247", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2014/10/27/ruby-2-0-0-p594-is-released/", - "releaseTimestamp": "2014-10-27", - "version": "2.0.0-p594", + "changelogUrl": "https://www.ruby-lang.org/en/news/2013/11/22/ruby-2-0-0-p353-is-released/", + "releaseTimestamp": "2013-11-22", + "version": "2.0.0-p353", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2014/10/27/ruby-1-9-3-p550-is-released/", - "releaseTimestamp": "2014-10-27", - "version": "1.9.3-p550", + "changelogUrl": "https://www.ruby-lang.org/en/news/2014/02/24/ruby-2-0-0-p451-is-released/", + "releaseTimestamp": "2014-02-24", + "version": "2.0.0-p451", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2014/09/19/ruby-2-1-3-is-released/", - "releaseTimestamp": "2014-09-19", - "version": "2.1.3", + "changelogUrl": "https://www.ruby-lang.org/en/news/2014/05/09/ruby-2-0-0-p481-is-released/", + "releaseTimestamp": "2014-05-09", + "version": "2.0.0-p481", }, Object { "changelogUrl": "https://www.ruby-lang.org/en/news/2014/09/19/ruby-2-0-0-p576-is-released/", @@ -320,54 +325,49 @@ Object { "version": "2.0.0-p576", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2014/09/18/ruby-2-2-0-preview1-released/", - "releaseTimestamp": "2014-09-18", - "version": "2.2.0-preview1", - }, - Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2014/08/19/ruby-1-9-2-p330-released/", - "releaseTimestamp": "2014-08-19", - "version": "1.9.2-p330", + "changelogUrl": "https://www.ruby-lang.org/en/news/2014/10/27/ruby-2-0-0-p594-is-released/", + "releaseTimestamp": "2014-10-27", + "version": "2.0.0-p594", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2014/05/16/ruby-1-9-3-p547-released/", - "releaseTimestamp": "2014-05-16", - "version": "1.9.3-p547", + "changelogUrl": "https://www.ruby-lang.org/en/news/2014/11/13/ruby-2-0-0-p598-is-released/", + "releaseTimestamp": "2014-11-13", + "version": "2.0.0-p598", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2014/05/09/ruby-2-1-2-is-released/", - "releaseTimestamp": "2014-05-09", - "version": "2.1.2", + "changelogUrl": "https://www.ruby-lang.org/en/news/2015/02/25/ruby-2-0-0-p643-is-released/", + "releaseTimestamp": "2015-02-25", + "version": "2.0.0-p643", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2014/05/09/ruby-2-0-0-p481-is-released/", - "releaseTimestamp": "2014-05-09", - "version": "2.0.0-p481", + "changelogUrl": "https://www.ruby-lang.org/en/news/2015/04/13/ruby-2-0-0-p645-released/", + "releaseTimestamp": "2015-04-13", + "version": "2.0.0-p645", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2014/02/24/ruby-2-1-1-is-released/", - "releaseTimestamp": "2014-02-24", - "version": "2.1.1", + "changelogUrl": "https://www.ruby-lang.org/en/news/2015/08/18/ruby-2-0-0-p647-released/", + "releaseTimestamp": "2015-08-18", + "version": "2.0.0-p647", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2014/02/24/ruby-2-0-0-p451-is-released/", - "releaseTimestamp": "2014-02-24", - "version": "2.0.0-p451", + "changelogUrl": "https://www.ruby-lang.org/en/news/2015/12/16/ruby-2-0-0-p648-released/", + "releaseTimestamp": "2015-12-16", + "version": "2.0.0-p648", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2014/02/24/ruby-1-9-3-p545-is-released/", - "releaseTimestamp": "2014-02-24", - "version": "1.9.3-p545", + "changelogUrl": "https://www.ruby-lang.org/en/news/2013/02/08/ruby-2-0-0-rc2-is-released/", + "releaseTimestamp": "2013-02-08", + "version": "2.0.0-rc2", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2013/12/25/ruby-2-1-0-is-released/", - "releaseTimestamp": "2013-12-25", - "version": "2.1.0", + "changelogUrl": "https://www.ruby-lang.org/en/news/2013/02/24/ruby-2-0-0-p0-is-released/", + "releaseTimestamp": "2013-02-24", + "version": "2.0.0", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2013/12/20/ruby-2-1-0-rc1-is-released/", - "releaseTimestamp": "2013-12-20", - "version": "2.1.0-rc1", + "changelogUrl": "https://www.ruby-lang.org/en/news/2013/09/23/ruby-2-1-0-preview1-is-released/", + "releaseTimestamp": "2013-09-23", + "version": "2.1.0-preview1", }, Object { "changelogUrl": "https://www.ruby-lang.org/en/news/2013/11/22/ruby-2-1-0-preview2-is-released/", @@ -375,299 +375,299 @@ Object { "version": "2.1.0-preview2", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2013/11/22/ruby-2-0-0-p353-is-released/", - "releaseTimestamp": "2013-11-22", - "version": "2.0.0-p353", + "changelogUrl": "https://www.ruby-lang.org/en/news/2013/12/20/ruby-2-1-0-rc1-is-released/", + "releaseTimestamp": "2013-12-20", + "version": "2.1.0-rc1", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2013/11/22/ruby-1-9-3-p484-is-released/", - "releaseTimestamp": "2013-11-22", - "version": "1.9.3-p484", + "changelogUrl": "https://www.ruby-lang.org/en/news/2013/12/25/ruby-2-1-0-is-released/", + "releaseTimestamp": "2013-12-25", + "version": "2.1.0", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2013/09/23/ruby-2-1-0-preview1-is-released/", - "releaseTimestamp": "2013-09-23", - "version": "2.1.0-preview1", + "changelogUrl": "https://www.ruby-lang.org/en/news/2014/02/24/ruby-2-1-1-is-released/", + "releaseTimestamp": "2014-02-24", + "version": "2.1.1", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2013/06/27/ruby-2-0-0-p247-is-released/", - "releaseTimestamp": "2013-06-27", - "version": "2.0.0-p247", + "changelogUrl": "https://www.ruby-lang.org/en/news/2014/05/09/ruby-2-1-2-is-released/", + "releaseTimestamp": "2014-05-09", + "version": "2.1.2", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2013/06/27/ruby-1-9-3-p448-is-released/", - "releaseTimestamp": "2013-06-27", - "version": "1.9.3-p448", + "changelogUrl": "https://www.ruby-lang.org/en/news/2014/09/19/ruby-2-1-3-is-released/", + "releaseTimestamp": "2014-09-19", + "version": "2.1.3", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2013/06/27/ruby-1-8-7-p374-is-released/", - "releaseTimestamp": "2013-06-27", - "version": "1.8.7-p374", + "changelogUrl": "https://www.ruby-lang.org/en/news/2014/10/27/ruby-2-1-4-released/", + "releaseTimestamp": "2014-10-27", + "version": "2.1.4", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2013/05/14/ruby-2-0-0-p195-is-released/", - "releaseTimestamp": "2013-05-14", - "version": "2.0.0-p195", + "changelogUrl": "https://www.ruby-lang.org/en/news/2014/11/13/ruby-2-1-5-is-released/", + "releaseTimestamp": "2014-11-13", + "version": "2.1.5", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2013/05/14/ruby-1-9-3-p429-is-released/", - "releaseTimestamp": "2013-05-14", - "version": "1.9.3-p429", + "changelogUrl": "https://www.ruby-lang.org/en/news/2015/04/13/ruby-2-1-6-released/", + "releaseTimestamp": "2015-04-13", + "version": "2.1.6", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2013/02/24/ruby-2-0-0-p0-is-released/", - "releaseTimestamp": "2013-02-24", - "version": "2.0.0", + "changelogUrl": "https://www.ruby-lang.org/en/news/2015/08/18/ruby-2-1-7-released/", + "releaseTimestamp": "2015-08-18", + "version": "2.1.7", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2013/02/22/ruby-1-9-3-p392-is-released/", - "releaseTimestamp": "2013-02-22", - "version": "1.9.3-p392", + "changelogUrl": "https://www.ruby-lang.org/en/news/2015/12/16/ruby-2-1-8-released/", + "releaseTimestamp": "2015-12-16", + "version": "2.1.8", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2013/02/08/ruby-2-0-0-rc2-is-released/", - "releaseTimestamp": "2013-02-08", - "version": "2.0.0-rc2", + "changelogUrl": "https://www.ruby-lang.org/en/news/2016/03/30/ruby-2-1-9-released/", + "releaseTimestamp": "2016-03-30", + "version": "2.1.9", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2013/02/06/ruby-1-9-3-p385-is-released/", - "releaseTimestamp": "2013-02-06", - "version": "1.9.3-p385", + "changelogUrl": "https://www.ruby-lang.org/en/news/2016/04/01/ruby-2-1-10-released/", + "releaseTimestamp": "2016-04-01", + "version": "2.1.10", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2013/01/17/ruby-1-9-3-p374-is-released/", - "releaseTimestamp": "2013-01-17", - "version": "1.9.3-p374", + "changelogUrl": "https://www.ruby-lang.org/en/news/2014/09/18/ruby-2-2-0-preview1-released/", + "releaseTimestamp": "2014-09-18", + "version": "2.2.0-preview1", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2012/12/25/ruby-1-9-3-p362-is-released/", - "releaseTimestamp": "2012-12-25", - "version": "1.9.3-p362", + "changelogUrl": "https://www.ruby-lang.org/en/news/2014/11/28/ruby-2-2-0-preview2-released/", + "releaseTimestamp": "2014-11-28", + "version": "2.2.0-preview2", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2012/11/09/ruby-1-9-3-p327-is-released/", - "releaseTimestamp": "2012-11-09", - "version": "1.9.3-p327", + "changelogUrl": "https://www.ruby-lang.org/en/news/2014/12/18/ruby-2-2-0-rc1-released/", + "releaseTimestamp": "2014-12-18", + "version": "2.2.0-rc1", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2012/10/12/ruby-1-9-3-p286-is-released/", - "releaseTimestamp": "2012-10-12", - "version": "1.9.3-p286", + "changelogUrl": "https://www.ruby-lang.org/en/news/2014/12/25/ruby-2-2-0-released/", + "releaseTimestamp": "2014-12-25", + "version": "2.2.0", }, - Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2012/06/29/ruby-1-8-7-p370-released/", - "releaseTimestamp": "2012-06-29", - "version": "1.8.7-p370", + Object { + "changelogUrl": "https://www.ruby-lang.org/en/news/2015/03/03/ruby-2-2-1-released/", + "releaseTimestamp": "2015-03-03", + "version": "2.2.1", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2012/04/21/ruby-1-9-2-p320-is-released/", - "releaseTimestamp": "2012-04-21", - "version": "1.9.2-p320", + "changelogUrl": "https://www.ruby-lang.org/en/news/2015/04/13/ruby-2-2-2-released/", + "releaseTimestamp": "2015-04-13", + "version": "2.2.2", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2012/04/20/ruby-1-9-3-p194-is-released/", - "releaseTimestamp": "2012-04-20", - "version": "1.9.3-p194", + "changelogUrl": "https://www.ruby-lang.org/en/news/2015/08/18/ruby-2-2-3-released/", + "releaseTimestamp": "2015-08-18", + "version": "2.2.3", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2012/02/16/ruby-1-9-3-p125-is-released/", - "releaseTimestamp": "2012-02-16", - "version": "1.9.3-p125", + "changelogUrl": "https://www.ruby-lang.org/en/news/2015/12/16/ruby-2-2-4-released/", + "releaseTimestamp": "2015-12-16", + "version": "2.2.4", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2011/10/31/ruby-1-9-3-p0-is-released/", - "releaseTimestamp": "2011-10-31", - "version": "1.9.3", + "changelogUrl": "https://www.ruby-lang.org/en/news/2016/04/26/ruby-2-2-5-released/", + "releaseTimestamp": "2016-04-26", + "version": "2.2.5", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2011/09/24/ruby-1-9-3-rc1-has-been-released/", - "releaseTimestamp": "2011-09-24", - "version": "1.9.3-rc1", + "changelogUrl": "https://www.ruby-lang.org/en/news/2016/11/15/ruby-2-2-6-released/", + "releaseTimestamp": "2016-11-15", + "version": "2.2.6", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2011/08/01/ruby-1-9-3-preview1-has-been-released/", - "releaseTimestamp": "2011-08-01", - "version": "1.9.3-preview1", + "changelogUrl": "https://www.ruby-lang.org/en/news/2017/03/28/ruby-2-2-7-released/", + "releaseTimestamp": "2017-03-28", + "version": "2.2.7", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2011/07/15/ruby-1-9-2-p290-is-released/", - "releaseTimestamp": "2011-07-15", - "version": "1.9.2-p290", + "changelogUrl": "https://www.ruby-lang.org/en/news/2017/09/14/ruby-2-2-8-released/", + "releaseTimestamp": "2017-09-14", + "version": "2.2.8", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2011/07/02/ruby-1-8-7-p352-released/", - "releaseTimestamp": "2011-07-02", - "version": "1.8.7-p352", + "changelogUrl": "https://www.ruby-lang.org/en/news/2017/12/14/ruby-2-2-9-released/", + "releaseTimestamp": "2017-12-14", + "version": "2.2.9", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2010/12/25/ruby-1-9-2-p136-is-released/", - "releaseTimestamp": "2010-12-25", - "version": "1.9.2-p136", + "changelogUrl": "https://www.ruby-lang.org/en/news/2018/03/28/ruby-2-2-10-released/", + "releaseTimestamp": "2018-03-28", + "version": "2.2.10", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2010/12/25/ruby-1-8-7-p330-released/", - "releaseTimestamp": "2010-12-25", - "version": "1.8.7-p330", + "changelogUrl": "https://www.ruby-lang.org/en/news/2015/11/11/ruby-2-3-0-preview1-released/", + "releaseTimestamp": "2015-11-11", + "version": "2.3.0-preview1", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2010/08/18/ruby-1-9-2-released/", - "releaseTimestamp": "2010-08-18", - "version": "1.9.2", + "changelogUrl": "https://www.ruby-lang.org/en/news/2015/12/11/ruby-2-3-0-preview2-released/", + "releaseTimestamp": "2015-12-11", + "version": "2.3.0-preview2", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2010/08/16/ruby-1-9-1-p430-is-released/", - "releaseTimestamp": "2010-08-16", - "version": "1.9.1-p430", + "changelogUrl": "https://www.ruby-lang.org/en/news/2015/12/25/ruby-2-3-0-released/", + "releaseTimestamp": "2015-12-25", + "version": "2.3.0", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2010/08/16/ruby-1-8-7-p302-is-released/", - "releaseTimestamp": "2010-08-16", - "version": "1.8.7-p302", + "changelogUrl": "https://www.ruby-lang.org/en/news/2016/04/26/ruby-2-3-1-released/", + "releaseTimestamp": "2016-04-26", + "version": "2.3.1", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2010/07/11/ruby-1-9-2-rc2-is-released/", - "releaseTimestamp": "2010-07-11", - "version": "1.9.2-rc2", + "changelogUrl": "https://www.ruby-lang.org/en/news/2016/11/15/ruby-2-3-2-released/", + "releaseTimestamp": "2016-11-15", + "version": "2.3.2", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2010/07/02/ruby-1-9-2-rc1-is-released/", - "releaseTimestamp": "2010-07-02", - "version": "1.9.2-rc1", + "changelogUrl": "https://www.ruby-lang.org/en/news/2016/11/21/ruby-2-3-3-released/", + "releaseTimestamp": "2016-11-21", + "version": "2.3.3", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2010/07/02/ruby-1-9-1-p429-is-released/", - "releaseTimestamp": "2010-07-02", - "version": "1.9.1-p429", + "changelogUrl": "https://www.ruby-lang.org/en/news/2017/03/30/ruby-2-3-4-released/", + "releaseTimestamp": "2017-03-30", + "version": "2.3.4", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2010/06/23/ruby-1-8-7-p299-released/", - "releaseTimestamp": "2010-06-23", - "version": "1.8.7-p299", + "changelogUrl": "https://www.ruby-lang.org/en/news/2017/09/14/ruby-2-3-5-released/", + "releaseTimestamp": "2017-09-14", + "version": "2.3.5", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2009/12/25/ruby-1-8-7-p248-released/", - "releaseTimestamp": "2009-12-25", - "version": "1.8.7-p248", + "changelogUrl": "https://www.ruby-lang.org/en/news/2017/12/14/ruby-2-3-6-released/", + "releaseTimestamp": "2017-12-14", + "version": "2.3.6", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2009/12/07/ruby-1-9-1-p376-is-released/", - "releaseTimestamp": "2009-12-07", - "version": "1.9.1-p376", + "changelogUrl": "https://www.ruby-lang.org/en/news/2018/03/28/ruby-2-3-7-released/", + "releaseTimestamp": "2018-03-28", + "version": "2.3.7", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2009/07/20/ruby-1-9-2-preview-1-released/", - "releaseTimestamp": "2009-07-20", - "version": "1.9.2-preview1", + "changelogUrl": "https://www.ruby-lang.org/en/news/2018/10/17/ruby-2-3-8-released/", + "releaseTimestamp": "2018-10-17", + "version": "2.3.8", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2009/07/20/ruby-1-9-1-p243-released/", - "releaseTimestamp": "2009-07-20", - "version": "1.9.1-p243", + "changelogUrl": "https://www.ruby-lang.org/en/news/2016/06/20/ruby-2-4-0-preview1-released/", + "releaseTimestamp": "2016-06-20", + "version": "2.4.0-preview1", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2009/05/12/ruby-1-9-1-p129-released/", - "releaseTimestamp": "2009-05-12", - "version": "1.9.1-p129", + "changelogUrl": "https://www.ruby-lang.org/en/news/2016/09/08/ruby-2-4-0-preview2-released/", + "releaseTimestamp": "2016-09-08", + "version": "2.4.0-preview2", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2009/04/18/ruby-1-8-7-p160-and-1-8-6-p368-released/", - "releaseTimestamp": "2009-04-18", - "version": "1.8.7-p160", + "changelogUrl": "https://www.ruby-lang.org/en/news/2016/11/09/ruby-2-4-0-preview3-released/", + "releaseTimestamp": "2016-11-09", + "version": "2.4.0-preview3", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2009/04/18/ruby-1-8-7-p160-and-1-8-6-p368-released/", - "releaseTimestamp": "2009-04-18", - "version": "1.8.6-p368", + "changelogUrl": "https://www.ruby-lang.org/en/news/2016/12/12/ruby-2-4-0-rc1-released/", + "releaseTimestamp": "2016-12-12", + "version": "2.4.0-rc1", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2009/01/30/ruby-1-9-1-released/", - "releaseTimestamp": "2009-01-30", - "version": "1.9.1", + "changelogUrl": "https://www.ruby-lang.org/en/news/2016/12/25/ruby-2-4-0-released/", + "releaseTimestamp": "2016-12-25", + "version": "2.4.0", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2008/10/28/ruby-1-9-1-preview-1-released/", - "releaseTimestamp": "2008-10-28", - "version": "1.9.1-preview1", + "changelogUrl": "https://www.ruby-lang.org/en/news/2017/03/22/ruby-2-4-1-released/", + "releaseTimestamp": "2017-03-22", + "version": "2.4.1", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2008/08/11/ruby-1-8-7-p72-and-1-8-6-p287-released/", - "releaseTimestamp": "2008-08-11", - "version": "1.8.7-p72", + "changelogUrl": "https://www.ruby-lang.org/en/news/2017/09/14/ruby-2-4-2-released/", + "releaseTimestamp": "2017-09-14", + "version": "2.4.2", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2008/08/11/ruby-1-8-7-p72-and-1-8-6-p287-released/", - "releaseTimestamp": "2008-08-11", - "version": "1.8.6-p287", + "changelogUrl": "https://www.ruby-lang.org/en/news/2017/12/14/ruby-2-4-3-released/", + "releaseTimestamp": "2017-12-14", + "version": "2.4.3", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2008/05/31/ruby-1-8-7-has-been-released/", - "releaseTimestamp": "2008-05-31", - "version": "1.8.7", + "changelogUrl": "https://www.ruby-lang.org/en/news/2018/03/28/ruby-2-4-4-released/", + "releaseTimestamp": "2018-03-28", + "version": "2.4.4", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2007/12/25/ruby-1-9-0-released/", - "releaseTimestamp": "2007-12-25", - "version": "1.9.0", + "changelogUrl": "https://www.ruby-lang.org/en/news/2018/10/17/ruby-2-4-5-released/", + "releaseTimestamp": "2018-10-17", + "version": "2.4.5", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2007/03/12/ruby-1-8-6-released/", - "releaseTimestamp": "2007-03-12", - "version": "1.8.6", + "changelogUrl": "https://www.ruby-lang.org/en/news/2017/10/10/ruby-2-5-0-preview1-released/", + "releaseTimestamp": "2017-10-10", + "version": "2.5.0-preview1", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2006/08/29/ruby-1-8-5-released/", - "releaseTimestamp": "2006-08-29", - "version": "1.8.5", + "changelogUrl": "https://www.ruby-lang.org/en/news/2017/12/14/ruby-2-5-0-rc1-released/", + "releaseTimestamp": "2017-12-14", + "version": "2.5.0-rc1", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2005/12/24/ruby-184-released/", - "releaseTimestamp": "2005-12-24", - "version": "1.8.4", + "changelogUrl": "https://www.ruby-lang.org/en/news/2017/12/25/ruby-2-5-0-released/", + "releaseTimestamp": "2017-12-25", + "version": "2.5.0", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2005/12/14/ruby-184-preview-2-released/", - "releaseTimestamp": "2005-12-14", - "version": "1.8.4-preview2", + "changelogUrl": "https://www.ruby-lang.org/en/news/2018/03/28/ruby-2-5-1-released/", + "releaseTimestamp": "2018-03-28", + "version": "2.5.1", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2005/09/21/ruby-183-released/", - "releaseTimestamp": "2005-09-21", - "version": "1.8.3", + "changelogUrl": "https://www.ruby-lang.org/en/news/2018/10/17/ruby-2-5-2-released/", + "releaseTimestamp": "2018-10-17", + "version": "2.5.2", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2004/12/26/ruby-182-released/", - "releaseTimestamp": "2004-12-26", - "version": "1.8.2", + "changelogUrl": "https://www.ruby-lang.org/en/news/2018/10/18/ruby-2-5-3-released/", + "releaseTimestamp": "2018-10-18", + "version": "2.5.3", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2004/12/22/182-preview4-released/", - "releaseTimestamp": "2004-12-22", - "version": "1.8.2-preview4", + "changelogUrl": "https://www.ruby-lang.org/en/news/2018/02/24/ruby-2-6-0-preview1-released/", + "releaseTimestamp": "2018-02-24", + "version": "2.6.0-preview1", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2004/11/08/182-preview3-released/", - "releaseTimestamp": "2004-11-08", - "version": "1.8.2-preview3", + "changelogUrl": "https://www.ruby-lang.org/en/news/2018/05/31/ruby-2-6-0-preview2-released/", + "releaseTimestamp": "2018-05-31", + "version": "2.6.0-preview2", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2004/07/30/ruby-182-preview2-released/", - "releaseTimestamp": "2004-07-30", - "version": "1.8.2-preview2", + "changelogUrl": "https://www.ruby-lang.org/en/news/2018/11/06/ruby-2-6-0-preview3-released/", + "releaseTimestamp": "2018-11-06", + "version": "2.6.0-preview3", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2004/07/21/ruby-182-preview1-released/", - "releaseTimestamp": "2004-07-21", - "version": "1.8.2-preview1", + "changelogUrl": "https://www.ruby-lang.org/en/news/2018/12/06/ruby-2-6-0-rc1-released/", + "releaseTimestamp": "2018-12-06", + "version": "2.6.0-rc1", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2003/08/04/ruby-180-released/", - "releaseTimestamp": "2003-08-04", - "version": "1.8.0", + "changelogUrl": "https://www.ruby-lang.org/en/news/2018/12/15/ruby-2-6-0-rc2-released/", + "releaseTimestamp": "2018-12-15", + "version": "2.6.0-rc2", }, Object { - "changelogUrl": "https://www.ruby-lang.org/en/news/2002/03/01/167-is-released/", - "releaseTimestamp": "2002-03-01", - "version": "1.6.7", + "changelogUrl": "https://www.ruby-lang.org/en/news/2018/12/25/ruby-2-6-0-released/", + "releaseTimestamp": "2018-12-25", + "version": "2.6.0", }, ], "sourceUrl": "https://github.com/ruby/ruby", diff --git a/lib/datasource/ruby-version/index.spec.ts b/lib/datasource/ruby-version/index.spec.ts index 5d69dfc9e5cbed..94dc098d569d1e 100644 --- a/lib/datasource/ruby-version/index.spec.ts +++ b/lib/datasource/ruby-version/index.spec.ts @@ -1,6 +1,7 @@ import fs from 'fs'; +import { getPkgReleases } from '..'; import * as httpMock from '../../../test/httpMock'; -import { getReleases } from '.'; +import { id as datasource } from '.'; const rubyReleasesHtml = fs.readFileSync( 'lib/datasource/ruby-version/__fixtures__/releases.html', @@ -22,7 +23,10 @@ describe('datasource/gradle', () => { .scope('https://www.ruby-lang.org') .get('/en/downloads/releases/') .reply(200, rubyReleasesHtml); - const res = await getReleases(); + const res = await getPkgReleases({ + datasource, + depName: 'ruby', + }); expect(res).toMatchSnapshot(); expect(httpMock.getTrace()).toMatchSnapshot(); }); @@ -31,7 +35,9 @@ describe('datasource/gradle', () => { .scope('https://www.ruby-lang.org') .get('/en/downloads/releases/') .reply(200, {}); - await expect(getReleases()).rejects.toThrow(); + await expect( + getPkgReleases({ datasource, depName: 'ruby' }) + ).rejects.toThrow(); expect(httpMock.getTrace()).toMatchSnapshot(); }); @@ -40,7 +46,9 @@ describe('datasource/gradle', () => { .scope('https://www.ruby-lang.org') .get('/en/downloads/releases/') .reply(404); - await expect(getReleases()).rejects.toThrow(); + await expect( + getPkgReleases({ datasource, depName: 'ruby' }) + ).rejects.toThrow(); expect(httpMock.getTrace()).toMatchSnapshot(); }); });