Skip to content

Commit

Permalink
more
Browse files Browse the repository at this point in the history
  • Loading branch information
pvinis committed Jan 22, 2020
1 parent c0e8cdf commit bb2e3d9
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 1 deletion.
21 changes: 20 additions & 1 deletion src/components/common/VersionSelector.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import styled from 'styled-components'
import { Button, Popover } from 'antd'
import semver from 'semver/preload'
import queryString from 'query-string'
import R from 'ramda'
import * as R from 'ramda'

import { RELEASES_URL } from '../../utils'
import { Select } from './'
Expand Down Expand Up @@ -120,8 +120,10 @@ export const filterReleases = (

switch (showRCs) {
case 'all':
// show all rcs
break
case 'latest': {
// show only latest version's rcs
let latestRelease = filteredReleases[0]
let earliestLatestReleaseIndex = R.findIndex(
release =>
Expand All @@ -140,12 +142,29 @@ export const filterReleases = (
break
}
case 'none':
// don't show any rcs
filteredReleases = R.reject(isRC)(filteredReleases)
break
default:
break
}

if (maxVersion !== undefined) {
// drop all versions later than `maxVersion`
filteredReleases = R.dropWhile(
release =>
semver.compare(semver.coerce(release), semver.coerce(maxVersion)) > 0
)(filteredReleases)
}

if (minVersion !== undefined) {
// take all versions later or equal to `minVersion`
filteredReleases = R.takeWhile(
release =>
semver.compare(semver.coerce(release), semver.coerce(minVersion)) >= 0
)(filteredReleases)
}

return filteredReleases
}

Expand Down
40 changes: 40 additions & 0 deletions src/components/common/VersionSelector.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,34 @@ const releasesNoRCsWithLatestReleaseRCs = [
'0.63.2-rc.0',
...releasesNoRCs
]
const releasesBeforeMax = [
'0.62.4',
'0.62.4-rc.1',
'0.62.4-rc.0',
'0.62.3',
'0.62.1',
'0.62.0',
'0.62.0-rc.1',
'0.61.3'
]
const releasesAfterMin = [
'0.63.2-rc.1',
'0.63.2-rc.0',
'0.63.1',
'0.63.0',
'0.62.4',
'0.62.4-rc.1',
'0.62.4-rc.0',
'0.62.3',
'0.62.1'
]
const releasesBetweenMinAndMax = [
'0.62.4',
'0.62.4-rc.1',
'0.62.4-rc.0',
'0.62.3',
'0.62.1'
]

describe('release filtering', () => {
it('should return the correct releases', () => {
Expand All @@ -41,5 +69,17 @@ describe('release filtering', () => {
expect(filterReleases(releases, { showRCs: 'latest' })).toEqual(
releasesNoRCsWithLatestReleaseRCs
)

expect(filterReleases(releases, { maxVersion: '0.62.4' })).toEqual(
releasesBeforeMax
)

expect(filterReleases(releases, { minVersion: '0.62.1' })).toEqual(
releasesAfterMin
)

expect(
filterReleases(releases, { minVersion: '0.62.1', maxVersion: '0.62.4' })
).toEqual(releasesBetweenMinAndMax)
})
})

0 comments on commit bb2e3d9

Please sign in to comment.