Skip to content

Commit bb2e3d9

Browse files
committed
more
1 parent c0e8cdf commit bb2e3d9

File tree

2 files changed

+60
-1
lines changed

2 files changed

+60
-1
lines changed

src/components/common/VersionSelector.js

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import styled from 'styled-components'
33
import { Button, Popover } from 'antd'
44
import semver from 'semver/preload'
55
import queryString from 'query-string'
6-
import R from 'ramda'
6+
import * as R from 'ramda'
77

88
import { RELEASES_URL } from '../../utils'
99
import { Select } from './'
@@ -120,8 +120,10 @@ export const filterReleases = (
120120

121121
switch (showRCs) {
122122
case 'all':
123+
// show all rcs
123124
break
124125
case 'latest': {
126+
// show only latest version's rcs
125127
let latestRelease = filteredReleases[0]
126128
let earliestLatestReleaseIndex = R.findIndex(
127129
release =>
@@ -140,12 +142,29 @@ export const filterReleases = (
140142
break
141143
}
142144
case 'none':
145+
// don't show any rcs
143146
filteredReleases = R.reject(isRC)(filteredReleases)
144147
break
145148
default:
146149
break
147150
}
148151

152+
if (maxVersion !== undefined) {
153+
// drop all versions later than `maxVersion`
154+
filteredReleases = R.dropWhile(
155+
release =>
156+
semver.compare(semver.coerce(release), semver.coerce(maxVersion)) > 0
157+
)(filteredReleases)
158+
}
159+
160+
if (minVersion !== undefined) {
161+
// take all versions later or equal to `minVersion`
162+
filteredReleases = R.takeWhile(
163+
release =>
164+
semver.compare(semver.coerce(release), semver.coerce(minVersion)) >= 0
165+
)(filteredReleases)
166+
}
167+
149168
return filteredReleases
150169
}
151170

src/components/common/VersionSelector.test.js

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,34 @@ const releasesNoRCsWithLatestReleaseRCs = [
3030
'0.63.2-rc.0',
3131
...releasesNoRCs
3232
]
33+
const releasesBeforeMax = [
34+
'0.62.4',
35+
'0.62.4-rc.1',
36+
'0.62.4-rc.0',
37+
'0.62.3',
38+
'0.62.1',
39+
'0.62.0',
40+
'0.62.0-rc.1',
41+
'0.61.3'
42+
]
43+
const releasesAfterMin = [
44+
'0.63.2-rc.1',
45+
'0.63.2-rc.0',
46+
'0.63.1',
47+
'0.63.0',
48+
'0.62.4',
49+
'0.62.4-rc.1',
50+
'0.62.4-rc.0',
51+
'0.62.3',
52+
'0.62.1'
53+
]
54+
const releasesBetweenMinAndMax = [
55+
'0.62.4',
56+
'0.62.4-rc.1',
57+
'0.62.4-rc.0',
58+
'0.62.3',
59+
'0.62.1'
60+
]
3361

3462
describe('release filtering', () => {
3563
it('should return the correct releases', () => {
@@ -41,5 +69,17 @@ describe('release filtering', () => {
4169
expect(filterReleases(releases, { showRCs: 'latest' })).toEqual(
4270
releasesNoRCsWithLatestReleaseRCs
4371
)
72+
73+
expect(filterReleases(releases, { maxVersion: '0.62.4' })).toEqual(
74+
releasesBeforeMax
75+
)
76+
77+
expect(filterReleases(releases, { minVersion: '0.62.1' })).toEqual(
78+
releasesAfterMin
79+
)
80+
81+
expect(
82+
filterReleases(releases, { minVersion: '0.62.1', maxVersion: '0.62.4' })
83+
).toEqual(releasesBetweenMinAndMax)
4484
})
4585
})

0 commit comments

Comments
 (0)