@@ -253,6 +253,39 @@ describe('findPackageForDownload', () => {
253253 expect ( result . version ) . toBe ( expected ) ;
254254 } ) ;
255255
256+ describe ( 'compound build versions' , ( ) => {
257+ beforeEach ( ( ) => {
258+ distribution [ 'getAvailableVersions' ] = async ( ) =>
259+ [ '1' , '1.1' , '1.2' , '1.10' ] . map ( build => ( {
260+ featureVersion : 25 ,
261+ interimVersion : 0 ,
262+ updateVersion : 4 ,
263+ buildVersion : 1 ,
264+ version : `25.0.4+${ build } ` ,
265+ downloadUrl : `https://download.bell-sw.com/java/25.0.4+${ build } /bellsoft-jdk25.0.4+${ build } -macos-aarch64.tar.gz`
266+ } ) ) ;
267+ } ) ;
268+
269+ it . each ( [
270+ [ '25.0.4+1.1' , '25.0.4+1.1' ] ,
271+ [ '25.0.4+1' , '25.0.4+1' ] ,
272+ [ '25.0.4' , '25.0.4+1.10' ] ,
273+ [ '25' , '25.0.4+1.10' ]
274+ ] ) ( 'version is %s -> %s' , async ( input , expected ) => {
275+ const result = await distribution [ 'findPackageForDownload' ] ( input ) ;
276+ expect ( result ) . toEqual ( {
277+ version : expected ,
278+ url : `https://download.bell-sw.com/java/${ expected } /bellsoft-jdk${ expected } -macos-aarch64.tar.gz`
279+ } ) ;
280+ } ) ;
281+
282+ it ( 'does not substitute a different compound build' , async ( ) => {
283+ await expect (
284+ distribution [ 'findPackageForDownload' ] ( '25.0.4+1.3' )
285+ ) . rejects . toThrow ( / N o m a t c h i n g v e r s i o n f o u n d f o r S e m V e r / ) ;
286+ } ) ;
287+ } ) ;
288+
256289 it ( 'should throw an error' , async ( ) => {
257290 await expect ( distribution [ 'findPackageForDownload' ] ( '17' ) ) . rejects . toThrow (
258291 / N o m a t c h i n g v e r s i o n f o u n d f o r S e m V e r /
@@ -335,6 +368,36 @@ describe('convertVersionToSemver', () => {
335368 buildVersion : 13
336369 } ,
337370 '11.0.0+13'
371+ ] ,
372+ [
373+ {
374+ version : '25.0.4+1.1' ,
375+ featureVersion : 25 ,
376+ interimVersion : 0 ,
377+ updateVersion : 4 ,
378+ buildVersion : 1
379+ } ,
380+ '25.0.4+1.1'
381+ ] ,
382+ [
383+ {
384+ version : '25+36' ,
385+ featureVersion : 25 ,
386+ interimVersion : 0 ,
387+ updateVersion : 0 ,
388+ buildVersion : 36
389+ } ,
390+ '25.0.0+36'
391+ ] ,
392+ [
393+ {
394+ version : '8u202' ,
395+ featureVersion : 8 ,
396+ interimVersion : 0 ,
397+ updateVersion : 202 ,
398+ buildVersion : 8
399+ } ,
400+ '8.0.202+8'
338401 ]
339402 ] ) ( '%s -> %s' , ( input , expected ) => {
340403 const actual = distributions [ 'convertVersionToSemver' ] ( {
0 commit comments