63 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			63 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | import io = require('@actions/io'); | ||
|  | import fs = require('fs'); | ||
|  | import path = require('path'); | ||
|  | 
 | ||
|  | const tempDir = path.join( | ||
|  |   __dirname, | ||
|  |   'runner', | ||
|  |   path.join( | ||
|  |     Math.random() | ||
|  |       .toString(36) | ||
|  |       .substring(7) | ||
|  |   ), | ||
|  |   'temp' | ||
|  | ); | ||
|  | 
 | ||
|  | const rcFile = path.join(tempDir, '.npmrc'); | ||
|  | 
 | ||
|  | process.env['GITHUB_REPOSITORY'] = 'owner/repo'; | ||
|  | process.env['RUNNER_TEMP'] = tempDir; | ||
|  | import * as auth from '../src/authutil'; | ||
|  | 
 | ||
|  | describe('installer tests', () => { | ||
|  |   beforeAll(async () => { | ||
|  |     await io.rmRF(tempDir); | ||
|  |     await io.mkdirP(tempDir); | ||
|  |   }, 100000); | ||
|  | 
 | ||
|  |   beforeEach(() => { | ||
|  |     if (fs.existsSync(rcFile)) { | ||
|  |       fs.unlinkSync(rcFile); | ||
|  |     } | ||
|  |     process.env['INPUT_SCOPE'] = ''; | ||
|  |   }); | ||
|  | 
 | ||
|  |   it('Sets up npmrc for npmjs', async () => { | ||
|  |     await auth.configAuthentication('https://registry.npmjs.org/'); | ||
|  |     expect(fs.existsSync(rcFile)).toBe(true); | ||
|  |     expect(fs.readFileSync(rcFile, {encoding: 'utf8'})).toMatchSnapshot(); | ||
|  |   }); | ||
|  | 
 | ||
|  |   it('Appends trailing slash to registry', async () => { | ||
|  |     await auth.configAuthentication('https://registry.npmjs.org'); | ||
|  | 
 | ||
|  |     expect(fs.existsSync(rcFile)).toBe(true); | ||
|  |     expect(fs.readFileSync(rcFile, {encoding: 'utf8'})).toMatchSnapshot(); | ||
|  |   }); | ||
|  | 
 | ||
|  |   it('Configures scoped npm registries', async () => { | ||
|  |     process.env['INPUT_SCOPE'] = 'myScope'; | ||
|  |     await auth.configAuthentication('https://registry.npmjs.org'); | ||
|  | 
 | ||
|  |     expect(fs.existsSync(rcFile)).toBe(true); | ||
|  |     expect(fs.readFileSync(rcFile, {encoding: 'utf8'})).toMatchSnapshot(); | ||
|  |   }); | ||
|  | 
 | ||
|  |   it('Automatically configures GPR scope', async () => { | ||
|  |     await auth.configAuthentication('npm.pkg.github.com'); | ||
|  | 
 | ||
|  |     expect(fs.existsSync(rcFile)).toBe(true); | ||
|  |     expect(fs.readFileSync(rcFile, {encoding: 'utf8'})).toMatchSnapshot(); | ||
|  |   }); | ||
|  | }); |