|  |  |  | @ -13,6 +13,8 @@ let matchers = require('../matchers.json'); | 
		
	
		
			
				|  |  |  |  | let goTestManifest = require('./data/versions-manifest.json'); | 
		
	
		
			
				|  |  |  |  | let matcherPattern = matchers.problemMatcher[0].pattern[0]; | 
		
	
		
			
				|  |  |  |  | let matcherRegExp = new RegExp(matcherPattern.regexp); | 
		
	
		
			
				|  |  |  |  | let win32Join = path.win32.join; | 
		
	
		
			
				|  |  |  |  | let posixJoin = path.posix.join; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | describe('setup-go', () => { | 
		
	
		
			
				|  |  |  |  |   let inputs = {} as any; | 
		
	
	
		
			
				
					|  |  |  | @ -27,8 +29,10 @@ describe('setup-go', () => { | 
		
	
		
			
				|  |  |  |  |   let getSpy: jest.SpyInstance; | 
		
	
		
			
				|  |  |  |  |   let platSpy: jest.SpyInstance; | 
		
	
		
			
				|  |  |  |  |   let archSpy: jest.SpyInstance; | 
		
	
		
			
				|  |  |  |  |   let joinSpy: jest.SpyInstance; | 
		
	
		
			
				|  |  |  |  |   let dlSpy: jest.SpyInstance; | 
		
	
		
			
				|  |  |  |  |   let extractTarSpy: jest.SpyInstance; | 
		
	
		
			
				|  |  |  |  |   let extractZipSpy: jest.SpyInstance; | 
		
	
		
			
				|  |  |  |  |   let cacheSpy: jest.SpyInstance; | 
		
	
		
			
				|  |  |  |  |   let dbgSpy: jest.SpyInstance; | 
		
	
		
			
				|  |  |  |  |   let whichSpy: jest.SpyInstance; | 
		
	
	
		
			
				
					|  |  |  | @ -61,10 +65,21 @@ describe('setup-go', () => { | 
		
	
		
			
				|  |  |  |  |     archSpy.mockImplementation(() => os['arch']); | 
		
	
		
			
				|  |  |  |  |     execSpy = jest.spyOn(cp, 'execSync'); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     // switch path join behaviour based on set os.platform
 | 
		
	
		
			
				|  |  |  |  |     joinSpy = jest.spyOn(path, 'join'); | 
		
	
		
			
				|  |  |  |  |     joinSpy.mockImplementation((...paths: string[]): string => { | 
		
	
		
			
				|  |  |  |  |       if (os['platform'] == 'win32') { | 
		
	
		
			
				|  |  |  |  |         return win32Join(...paths); | 
		
	
		
			
				|  |  |  |  |       } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |       return posixJoin(...paths); | 
		
	
		
			
				|  |  |  |  |     }); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     // @actions/tool-cache
 | 
		
	
		
			
				|  |  |  |  |     findSpy = jest.spyOn(tc, 'find'); | 
		
	
		
			
				|  |  |  |  |     dlSpy = jest.spyOn(tc, 'downloadTool'); | 
		
	
		
			
				|  |  |  |  |     extractTarSpy = jest.spyOn(tc, 'extractTar'); | 
		
	
		
			
				|  |  |  |  |     extractZipSpy = jest.spyOn(tc, 'extractZip'); | 
		
	
		
			
				|  |  |  |  |     cacheSpy = jest.spyOn(tc, 'cacheDir'); | 
		
	
		
			
				|  |  |  |  |     getSpy = jest.spyOn(im, 'getVersionsDist'); | 
		
	
		
			
				|  |  |  |  |     getManifestSpy = jest.spyOn(tc, 'getManifestFromRepo'); | 
		
	
	
		
			
				
					|  |  |  | @ -325,6 +340,31 @@ describe('setup-go', () => { | 
		
	
		
			
				|  |  |  |  |     expect(cnSpy).toHaveBeenCalledWith(`::add-path::${expPath}${osm.EOL}`); | 
		
	
		
			
				|  |  |  |  |   }); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   it('downloads a version not in the cache (windows)', async () => { | 
		
	
		
			
				|  |  |  |  |     os.platform = 'win32'; | 
		
	
		
			
				|  |  |  |  |     os.arch = 'x64'; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     inputs['go-version'] = '1.13.1'; | 
		
	
		
			
				|  |  |  |  |     process.env['RUNNER_TEMP'] = 'C:\\temp\\'; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     findSpy.mockImplementation(() => ''); | 
		
	
		
			
				|  |  |  |  |     dlSpy.mockImplementation(() => 'C:\\temp\\some\\path'); | 
		
	
		
			
				|  |  |  |  |     extractZipSpy.mockImplementation(() => 'C:\\temp\\some\\other\\path'); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     let toolPath = path.normalize('C:\\cache\\go\\1.13.0\\x64'); | 
		
	
		
			
				|  |  |  |  |     cacheSpy.mockImplementation(() => toolPath); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     await main.run(); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     let expPath = path.win32.join(toolPath, 'bin'); | 
		
	
		
			
				|  |  |  |  |     expect(dlSpy).toHaveBeenCalledWith( | 
		
	
		
			
				|  |  |  |  |       'https://storage.googleapis.com/golang/go1.13.1.windows-amd64.zip', | 
		
	
		
			
				|  |  |  |  |       'C:\\temp\\go1.13.1.windows-amd64.zip', | 
		
	
		
			
				|  |  |  |  |       undefined | 
		
	
		
			
				|  |  |  |  |     ); | 
		
	
		
			
				|  |  |  |  |     expect(cnSpy).toHaveBeenCalledWith(`::add-path::${expPath}${osm.EOL}`); | 
		
	
		
			
				|  |  |  |  |   }); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   it('does not find a version that does not exist', async () => { | 
		
	
		
			
				|  |  |  |  |     os.platform = 'linux'; | 
		
	
		
			
				|  |  |  |  |     os.arch = 'x64'; | 
		
	
	
		
			
				
					|  |  |  | 
 |