Skip to content

Commit

Permalink
refactor: Import index in datasource tests (#6542)
Browse files Browse the repository at this point in the history
  • Loading branch information
zharinov committed Jun 18, 2020
1 parent 73b213c commit ed7483a
Show file tree
Hide file tree
Showing 13 changed files with 787 additions and 685 deletions.
109 changes: 54 additions & 55 deletions lib/datasource/cdnjs/__snapshots__/index.spec.ts.snap
Expand Up @@ -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",
}
`;

Expand All @@ -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",
}
`;

Expand Down
58 changes: 34 additions & 24 deletions 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',
Expand Down Expand Up @@ -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 () => {
Expand All @@ -56,44 +59,50 @@ 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 () => {
httpMock
.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();
});
Expand All @@ -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();
Expand Down

0 comments on commit ed7483a

Please sign in to comment.