Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: Import index in datasource tests #6542

Merged
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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