File tree 2 files changed +60
-1
lines changed
2 files changed +60
-1
lines changed Original file line number Diff line number Diff line change @@ -3,7 +3,7 @@ import styled from 'styled-components'
3
3
import { Button , Popover } from 'antd'
4
4
import semver from 'semver/preload'
5
5
import queryString from 'query-string'
6
- import R from 'ramda'
6
+ import * as R from 'ramda'
7
7
8
8
import { RELEASES_URL } from '../../utils'
9
9
import { Select } from './'
@@ -120,8 +120,10 @@ export const filterReleases = (
120
120
121
121
switch ( showRCs ) {
122
122
case 'all' :
123
+ // show all rcs
123
124
break
124
125
case 'latest' : {
126
+ // show only latest version's rcs
125
127
let latestRelease = filteredReleases [ 0 ]
126
128
let earliestLatestReleaseIndex = R . findIndex (
127
129
release =>
@@ -140,12 +142,29 @@ export const filterReleases = (
140
142
break
141
143
}
142
144
case 'none' :
145
+ // don't show any rcs
143
146
filteredReleases = R . reject ( isRC ) ( filteredReleases )
144
147
break
145
148
default :
146
149
break
147
150
}
148
151
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
+
149
168
return filteredReleases
150
169
}
151
170
Original file line number Diff line number Diff line change @@ -30,6 +30,34 @@ const releasesNoRCsWithLatestReleaseRCs = [
30
30
'0.63.2-rc.0' ,
31
31
...releasesNoRCs
32
32
]
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
+ ]
33
61
34
62
describe ( 'release filtering' , ( ) => {
35
63
it ( 'should return the correct releases' , ( ) => {
@@ -41,5 +69,17 @@ describe('release filtering', () => {
41
69
expect ( filterReleases ( releases , { showRCs : 'latest' } ) ) . toEqual (
42
70
releasesNoRCsWithLatestReleaseRCs
43
71
)
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 )
44
84
} )
45
85
} )
You can’t perform that action at this time.
0 commit comments