2022-04-01 00:39:57 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  *  as  cache  from  '@actions/cache' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  *  as  core  from  '@actions/core' ;  
						 
					
						
							
								
									
										
										
										
											2023-04-10 10:29:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  convertVersionToSemver , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  isVersionSatisfies , 
							 
						 
					
						
							
								
									
										
										
										
											2024-10-21 19:57:52 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  isCacheFeatureAvailable , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  isGhes 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-10 10:29:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  from  '../src/util' ;  
						 
					
						
							
								
									
										
										
										
											2022-04-01 00:39:57 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								jest . mock ( '@actions/cache' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								jest . mock ( '@actions/core' ) ;  
						 
					
						
							
								
									
										
										
										
											2021-04-05 13:02:27 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								describe ( 'isVersionSatisfies' ,  ( )  = >  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  it . each ( [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [ 'x' ,  '11.0.0' ,  true ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [ '3' ,  '3.7.1' ,  true ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [ '3' ,  '3.7.2' ,  true ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [ '3' ,  '3.7.2+4' ,  true ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [ '2.5' ,  '2.5.0' ,  true ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [ '2.5' ,  '2.5.0+1' ,  true ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [ '2.5' ,  '2.6.1' ,  false ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [ '2.5.1' ,  '2.5.0' ,  false ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [ '2.5.1+3' ,  '2.5.0' ,  false ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [ '2.5.1+3' ,  '2.5.1+3' ,  true ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [ '2.5.1+3' ,  '2.5.1+2' ,  false ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [ '15.0.0+14' ,  '15.0.0+14.1.202003190635' ,  false ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [ '15.0.0+14.1.202003190635' ,  '15.0.0+14.1.202003190635' ,  true ] 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-09 14:49:35 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  ] ) ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    '%s, %s -> %s' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ( inputRange : string ,  inputVersion : string ,  expected : boolean )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      const  actual  =  isVersionSatisfies ( inputRange ,  inputVersion ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      expect ( actual ) . toBe ( expected ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-02 04:33:15 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								} ) ;  
						 
					
						
							
								
									
										
										
										
											2022-04-01 00:39:57 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								describe ( 'isCacheFeatureAvailable' ,  ( )  = >  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  it ( 'isCacheFeatureAvailable disabled on GHES' ,  ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    jest . spyOn ( cache ,  'isFeatureAvailable' ) . mockImplementation ( ( )  = >  false ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-16 23:04:57 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    const  infoMock  =  jest . spyOn ( core ,  'warning' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    const  message  = 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      'Caching is only supported on GHES version >= 3.5. If you are on a version >= 3.5, please check with your GHES admin if the Actions cache service is enabled or not.' ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-01 00:39:57 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    try  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      process . env [ 'GITHUB_SERVER_URL' ]  =  'http://example.com' ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-16 23:04:57 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      expect ( isCacheFeatureAvailable ( ) ) . toBeFalsy ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      expect ( infoMock ) . toHaveBeenCalledWith ( message ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-01 00:39:57 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    }  finally  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      delete  process . env [ 'GITHUB_SERVER_URL' ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  it ( 'isCacheFeatureAvailable disabled on dotcom' ,  ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    jest . spyOn ( cache ,  'isFeatureAvailable' ) . mockImplementation ( ( )  = >  false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    const  infoMock  =  jest . spyOn ( core ,  'warning' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-09 14:49:35 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    const  message  = 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      'The runner was not able to contact the cache service. Caching will be skipped' ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-01 00:39:57 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    try  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      process . env [ 'GITHUB_SERVER_URL' ]  =  'http://github.com' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      expect ( isCacheFeatureAvailable ( ) ) . toBe ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      expect ( infoMock ) . toHaveBeenCalledWith ( message ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }  finally  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      delete  process . env [ 'GITHUB_SERVER_URL' ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  it ( 'isCacheFeatureAvailable is enabled' ,  ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    jest . spyOn ( cache ,  'isFeatureAvailable' ) . mockImplementation ( ( )  = >  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( isCacheFeatureAvailable ( ) ) . toBe ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ) ;  
						 
					
						
							
								
									
										
										
										
											2023-04-10 10:29:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								describe ( 'convertVersionToSemver' ,  ( )  = >  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  it . each ( [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [ '12' ,  '12' ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [ '12.0' ,  '12.0' ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [ '12.0.2' ,  '12.0.2' ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [ '12.0.2.1' ,  '12.0.2+1' ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [ '12.0.2.1.0' ,  '12.0.2+1.0' ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ] ) ( '%s -> %s' ,  ( input : string ,  expected : string )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    const  actual  =  convertVersionToSemver ( input ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( actual ) . toBe ( expected ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ) ;  
						 
					
						
							
								
									
										
										
										
											2024-10-21 19:57:52 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								describe ( 'isGhes' ,  ( )  = >  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  const  pristineEnv  =  process . env ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  beforeEach ( ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    jest . resetModules ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    process . env  =  { . . . pristineEnv } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  afterAll ( ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    process . env  =  pristineEnv ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  it ( 'returns false when the GITHUB_SERVER_URL environment variable is not defined' ,  async  ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    delete  process . env [ 'GITHUB_SERVER_URL' ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( isGhes ( ) ) . toBeFalsy ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  it ( 'returns false when the GITHUB_SERVER_URL environment variable is set to github.com' ,  async  ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    process . env [ 'GITHUB_SERVER_URL' ]  =  'https://github.com' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( isGhes ( ) ) . toBeFalsy ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  it ( 'returns false when the GITHUB_SERVER_URL environment variable is set to a GitHub Enterprise Cloud-style URL' ,  async  ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    process . env [ 'GITHUB_SERVER_URL' ]  =  'https://contoso.ghe.com' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( isGhes ( ) ) . toBeFalsy ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  it ( 'returns false when the GITHUB_SERVER_URL environment variable has a .localhost suffix' ,  async  ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    process . env [ 'GITHUB_SERVER_URL' ]  =  'https://mock-github.localhost' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( isGhes ( ) ) . toBeFalsy ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  it ( 'returns true when the GITHUB_SERVER_URL environment variable is set to some other URL' ,  async  ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    process . env [ 'GITHUB_SERVER_URL' ]  =  'https://src.onpremise.fabrikam.com' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( isGhes ( ) ) . toBeTruthy ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ) ;