mirror of
				https://kkgithub.com/actions/setup-node.git
				synced 2025-11-04 20:51:59 +08:00 
			
		
		
		
	
		
			
	
	
		
			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();
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								});
							 |