@@ -110,13 +110,47 @@ test('coerce tests', (t) => {
110
110
[ '1.2.3/6' , '6.0.0' , { rtl : true } ] ,
111
111
[ '1.2.3.4' , '2.3.4' , { rtl : true } ] ,
112
112
[ '1.2.3.4xyz' , '2.3.4' , { rtl : true } ] ,
113
+
114
+ [ '1-rc.5' , '1.0.0-rc.5' , { includePrerelease : true } ] ,
115
+ [ '1.2-rc.5' , '1.2.0-rc.5' , { includePrerelease : true } ] ,
116
+ [ '1.2.3-rc.5' , '1.2.3-rc.5' , { includePrerelease : true } ] ,
117
+ [ '1.2.3-rc.5/a' , '1.2.3-rc.5' , { includePrerelease : true } ] ,
118
+ [ '1.2.3.4-rc.5' , '1.2.3' , { includePrerelease : true } ] ,
119
+ [ '1.2.3.4+rev.6' , '1.2.3' , { includePrerelease : true } ] ,
120
+
121
+ [ '1+rev.6' , '1.0.0+rev.6' , { includePrerelease : true } ] ,
122
+ [ '1.2+rev.6' , '1.2.0+rev.6' , { includePrerelease : true } ] ,
123
+ [ '1.2.3+rev.6' , '1.2.3+rev.6' , { includePrerelease : true } ] ,
124
+ [ '1.2.3+rev.6/a' , '1.2.3+rev.6' , { includePrerelease : true } ] ,
125
+ [ '1.2.3.4-rc.5' , '1.2.3' , { includePrerelease : true } ] ,
126
+ [ '1.2.3.4+rev.6' , '1.2.3' , { includePrerelease : true } ] ,
127
+
128
+ [ '1-rc.5+rev.6' , '1.0.0-rc.5+rev.6' , { includePrerelease : true } ] ,
129
+ [ '1.2-rc.5+rev.6' , '1.2.0-rc.5+rev.6' , { includePrerelease : true } ] ,
130
+ [ '1.2.3-rc.5+rev.6' , '1.2.3-rc.5+rev.6' , { includePrerelease : true } ] ,
131
+ [ '1.2.3-rc.5+rev.6/a' , '1.2.3-rc.5+rev.6' , { includePrerelease : true } ] ,
132
+
133
+ [ '1.2-rc.5+rev.6' , '1.2.0-rc.5+rev.6' , { rtl : true , includePrerelease : true } ] ,
134
+ [ '1.2.3-rc.5+rev.6' , '1.2.3-rc.5+rev.6' , { rtl : true , includePrerelease : true } ] ,
135
+ [ '1.2.3.4-rc.5+rev.6' , '2.3.4-rc.5+rev.6' , { rtl : true , includePrerelease : true } ] ,
136
+ [ '1.2.3.4-rc.5' , '2.3.4-rc.5' , { rtl : true , includePrerelease : true } ] ,
137
+ [ '1.2.3.4+rev.6' , '2.3.4+rev.6' , { rtl : true , includePrerelease : true } ] ,
138
+ [ '1.2.3.4-rc.5+rev.6/7' , '7.0.0' , { rtl : true , includePrerelease : true } ] ,
139
+ [ '1.2.3.4-rc/7.5+rev.6' , '7.5.0+rev.6' , { rtl : true , includePrerelease : true } ] ,
140
+ [ '1.2.3.4/7-rc.5+rev.6' , '7.0.0-rc.5+rev.6' , { rtl : true , includePrerelease : true } ] ,
113
141
]
114
142
coerceToValid . forEach ( ( [ input , expected , options ] ) => {
115
- const msg = `coerce(${ input } ) should become ${ expected } `
116
- t . same ( ( coerce ( input , options ) || { } ) . version , expected , msg )
143
+ const coerceExpression = `coerce(${ input } , ${ JSON . stringify ( options ) } )`
144
+ const coercedVersion = coerce ( input , options ) || { }
145
+ const expectedVersion = parse ( expected )
146
+ t . equal ( expectedVersion . compare ( coercedVersion ) , 0 ,
147
+ `${ coerceExpression } should be equal to ${ expectedVersion } ` )
148
+ t . equal ( expectedVersion . compareBuild ( coercedVersion ) , 0 ,
149
+ `${ coerceExpression } build should be equal to ${ expectedVersion } ` )
117
150
} )
118
151
119
152
t . same ( valid ( coerce ( '42.6.7.9.3-alpha' ) ) , '42.6.7' )
153
+ t . same ( valid ( coerce ( '42.6.7-alpha+rev.1' , { includePrerelease : true } ) ) , '42.6.7-alpha' )
120
154
t . same ( valid ( coerce ( 'v2' ) ) , '2.0.0' )
121
155
122
156
t . end ( )
0 commit comments