[piwheels], filter out versions with no files (#7696)
This commit is contained in:
@@ -10,6 +10,7 @@ const schema = Joi.object({
|
||||
Joi.object({
|
||||
prerelease: Joi.boolean().required(),
|
||||
yanked: Joi.boolean().required(),
|
||||
files: Joi.object().required(),
|
||||
})
|
||||
)
|
||||
.required(),
|
||||
@@ -66,10 +67,12 @@ export default class PiWheelsVersion extends BaseJsonService {
|
||||
version: key,
|
||||
prerelease: releases[key].prerelease,
|
||||
yanked: releases[key].yanked,
|
||||
hasFiles: Object.keys(releases[key].files).length > 0,
|
||||
}),
|
||||
[]
|
||||
)
|
||||
.filter(release => !release.yanked) // exclude any yanked releases
|
||||
.filter(release => release.hasFiles) // exclude any releases with no wheels
|
||||
|
||||
if (allReleases.length === 0) {
|
||||
throw new InvalidResponse({ prettyMessage: 'no versions found' })
|
||||
|
||||
@@ -7,36 +7,43 @@ describe('PiWheelsVersion', function () {
|
||||
test(PiWheelsVersion.transform, () => {
|
||||
given(
|
||||
{
|
||||
'2.0.0rc1': { prerelease: true, yanked: false },
|
||||
'1.9.0': { prerelease: false, yanked: false },
|
||||
'2.0.0rc1': { prerelease: true, yanked: false, files: { foobar: {} } },
|
||||
'1.9.0': { prerelease: false, yanked: false, files: { foobar: {} } },
|
||||
},
|
||||
false
|
||||
).expect('1.9.0')
|
||||
given(
|
||||
{
|
||||
'2.0.0rc1': { prerelease: true, yanked: false },
|
||||
'1.9.0': { prerelease: false, yanked: false },
|
||||
'2.0.0rc1': { prerelease: true, yanked: false, files: { foobar: {} } },
|
||||
'1.9.0': { prerelease: false, yanked: false, files: { foobar: {} } },
|
||||
},
|
||||
true
|
||||
).expect('2.0.0rc1')
|
||||
given(
|
||||
{
|
||||
'2.0.0': { prerelease: false, yanked: true },
|
||||
'1.9.0': { prerelease: false, yanked: false },
|
||||
'2.0.0': { prerelease: false, yanked: true, files: { foobar: {} } },
|
||||
'1.9.0': { prerelease: false, yanked: false, files: { foobar: {} } },
|
||||
},
|
||||
false
|
||||
).expect('1.9.0')
|
||||
given(
|
||||
{
|
||||
'2.0.0': { prerelease: false, yanked: false },
|
||||
'1.9.0': { prerelease: false, yanked: false },
|
||||
'2.0.0': { prerelease: false, yanked: false, files: {} },
|
||||
'1.9.0': { prerelease: false, yanked: false, files: { foobar: {} } },
|
||||
},
|
||||
false
|
||||
).expect('1.9.0')
|
||||
given(
|
||||
{
|
||||
'2.0.0': { prerelease: false, yanked: false, files: { foobar: {} } },
|
||||
'1.9.0': { prerelease: false, yanked: false, files: { foobar: {} } },
|
||||
},
|
||||
false
|
||||
).expect('2.0.0')
|
||||
given(
|
||||
{
|
||||
'2.0.0rc2': { prerelease: true, yanked: false },
|
||||
'2.0.0rc1': { prerelease: true, yanked: false },
|
||||
'2.0.0rc2': { prerelease: true, yanked: false, files: { foobar: {} } },
|
||||
'2.0.0rc1': { prerelease: true, yanked: false, files: { foobar: {} } },
|
||||
},
|
||||
false
|
||||
).expect('2.0.0rc2')
|
||||
@@ -45,7 +52,10 @@ describe('PiWheelsVersion', function () {
|
||||
it('throws `no releases` InvalidResponse if no versions', function () {
|
||||
expect(() =>
|
||||
PiWheelsVersion.transform(
|
||||
{ '1.0.0': { prerelease: false, yanked: true } },
|
||||
{
|
||||
'1.0.1': { prerelease: false, yanked: false, files: {} },
|
||||
'1.0.0': { prerelease: false, yanked: true, files: { foobar: {} } },
|
||||
},
|
||||
false
|
||||
)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user