@@ -323,6 +323,140 @@ describe('getAppendArgs', () => {
323323 ) ;
324324} ) ;
325325
326+ describe ( 'getVersion' , ( ) => {
327+ beforeEach ( ( ) => {
328+ process . env = Object . keys ( process . env ) . reduce ( ( object , key ) => {
329+ if ( ! key . startsWith ( 'INPUT_' ) ) {
330+ object [ key ] = process . env [ key ] ;
331+ }
332+ return object ;
333+ } , { } ) ;
334+ } ) ;
335+
336+ // prettier-ignore
337+ test . each ( [
338+ [
339+ 0 ,
340+ new Map < string , string > ( [
341+ // defaults
342+ [ 'install' , 'false' ] ,
343+ [ 'use' , 'true' ] ,
344+ [ 'cache-binary' , 'true' ] ,
345+ [ 'cleanup' , 'true' ] ,
346+ ] ) ,
347+ ''
348+ ] ,
349+ [
350+ 1 ,
351+ new Map < string , string > ( [
352+ [ 'version' , 'latest' ] ,
353+ // defaults
354+ [ 'install' , 'false' ] ,
355+ [ 'use' , 'true' ] ,
356+ [ 'cache-binary' , 'true' ] ,
357+ [ 'cleanup' , 'true' ]
358+ ] ) ,
359+ 'latest'
360+ ] ,
361+ [
362+ 2 ,
363+ new Map < string , string > ( [
364+ [ 'version' , 'edge' ] ,
365+ // defaults
366+ [ 'install' , 'false' ] ,
367+ [ 'use' , 'true' ] ,
368+ [ 'cache-binary' , 'true' ] ,
369+ [ 'cleanup' , 'true' ]
370+ ] ) ,
371+ 'edge'
372+ ] ,
373+ [
374+ 3 ,
375+ new Map < string , string > ( [
376+ [ 'version' , 'v0.19.2' ] ,
377+ // defaults
378+ [ 'install' , 'false' ] ,
379+ [ 'use' , 'true' ] ,
380+ [ 'cache-binary' , 'true' ] ,
381+ [ 'cleanup' , 'true' ]
382+ ] ) ,
383+ 'v0.19.2'
384+ ] ,
385+ [
386+ 4 ,
387+ new Map < string , string > ( [
388+ [ 'version' , 'latest' ] ,
389+ [ 'driver' , 'cloud' ] ,
390+ // defaults
391+ [ 'install' , 'false' ] ,
392+ [ 'use' , 'true' ] ,
393+ [ 'cache-binary' , 'true' ] ,
394+ [ 'cleanup' , 'true' ]
395+ ] ) ,
396+ 'cloud:latest'
397+ ] ,
398+ [
399+ 5 ,
400+ new Map < string , string > ( [
401+ [ 'version' , 'edge' ] ,
402+ [ 'driver' , 'cloud' ] ,
403+ // defaults
404+ [ 'install' , 'false' ] ,
405+ [ 'use' , 'true' ] ,
406+ [ 'cache-binary' , 'true' ] ,
407+ [ 'cleanup' , 'true' ]
408+ ] ) ,
409+ 'cloud:edge'
410+ ] ,
411+ [
412+ 6 ,
413+ new Map < string , string > ( [
414+ [ 'driver' , 'cloud' ] ,
415+ // defaults
416+ [ 'install' , 'false' ] ,
417+ [ 'use' , 'true' ] ,
418+ [ 'cache-binary' , 'true' ] ,
419+ [ 'cleanup' , 'true' ] ,
420+ ] ) ,
421+ 'cloud:latest'
422+ ] ,
423+ [
424+ 7 ,
425+ new Map < string , string > ( [
426+ [ 'version' , 'cloud:v0.11.2-desktop.2' ] ,
427+ [ 'driver' , 'cloud' ] ,
428+ // defaults
429+ [ 'install' , 'false' ] ,
430+ [ 'use' , 'true' ] ,
431+ [ 'cache-binary' , 'true' ] ,
432+ [ 'cleanup' , 'true' ] ,
433+ ] ) ,
434+ 'cloud:v0.11.2-desktop.2'
435+ ] ,
436+ [
437+ 8 ,
438+ new Map < string , string > ( [
439+ [ 'version' , 'cloud:v0.11.2-desktop.2' ] ,
440+ // defaults
441+ [ 'install' , 'false' ] ,
442+ [ 'use' , 'true' ] ,
443+ [ 'cache-binary' , 'true' ] ,
444+ [ 'cleanup' , 'true' ] ,
445+ ] ) ,
446+ 'cloud:v0.11.2-desktop.2'
447+ ] ,
448+ ] ) (
449+ '[%d] given %p as inputs, returns version %p' ,
450+ async ( num : number , inputs : Map < string , string > , expected : string ) => {
451+ inputs . forEach ( ( value : string , name : string ) => {
452+ setInput ( name , value ) ;
453+ } ) ;
454+ const inp = await context . getInputs ( ) ;
455+ expect ( context . getVersion ( inp ) ) . toEqual ( expected ) ;
456+ }
457+ ) ;
458+ } ) ;
459+
326460// See: https://github.com/actions/toolkit/blob/master/packages/core/src/core.ts#L67
327461function getInputName ( name : string ) : string {
328462 return `INPUT_${ name . replace ( / / g, '_' ) . toUpperCase ( ) } ` ;
0 commit comments