@ -76,115 +76,102 @@ describe('authutil tests', () => {
}
it ( 'Sets up npmrc for npmjs' , async ( ) = > {
await auth . configAuthentication ( 'https://registry.npmjs.org/' , 'false' );
await auth . configAuthentication ( 'https://registry.npmjs.org/' );
expect ( fs . statSync ( rcFile ) ) . toBeDefined ( ) ;
const contents = fs . readFileSync ( rcFile , { encoding : 'utf8' } ) ;
const rc = readRcFile ( rcFile ) ;
expect ( rc [ 'registry' ] ) . toBe ( 'https://registry.npmjs.org/' ) ;
expect ( rc [ 'always-auth' ] ) . toBe ( 'false' ) ;
} ) ;
it ( 'Appends trailing slash to registry' , async ( ) = > {
await auth . configAuthentication ( 'https://registry.npmjs.org' , 'false' );
await auth . configAuthentication ( 'https://registry.npmjs.org' );
expect ( fs . statSync ( rcFile ) ) . toBeDefined ( ) ;
const rc = readRcFile ( rcFile ) ;
expect ( rc [ 'registry' ] ) . toBe ( 'https://registry.npmjs.org/' ) ;
expect ( rc [ 'always-auth' ] ) . toBe ( 'false' ) ;
} ) ;
it ( 'Configures scoped npm registries' , async ( ) = > {
process . env [ 'INPUT_SCOPE' ] = 'myScope' ;
await auth . configAuthentication ( 'https://registry.npmjs.org' , 'false' );
await auth . configAuthentication ( 'https://registry.npmjs.org' );
expect ( fs . statSync ( rcFile ) ) . toBeDefined ( ) ;
const rc = readRcFile ( rcFile ) ;
expect ( rc [ '@myscope:registry' ] ) . toBe ( 'https://registry.npmjs.org/' ) ;
expect ( rc [ 'always-auth' ] ) . toBe ( 'false' ) ;
} ) ;
it ( 'Automatically configures GPR scope' , async ( ) = > {
await auth . configAuthentication ( 'npm.pkg.github.com' , 'false' );
await auth . configAuthentication ( 'npm.pkg.github.com' );
expect ( fs . statSync ( rcFile ) ) . toBeDefined ( ) ;
const rc = readRcFile ( rcFile ) ;
expect ( rc [ '@ownername:registry' ] ) . toBe ( 'npm.pkg.github.com/' ) ;
expect ( rc [ 'always-auth' ] ) . toBe ( 'false' ) ;
} ) ;
it ( 'Sets up npmrc for always-auth true' , async ( ) = > {
await auth . configAuthentication ( 'https://registry.npmjs.org/' , 'true' ) ;
expect ( fs . statSync ( rcFile ) ) . toBeDefined ( ) ;
const rc = readRcFile ( rcFile ) ;
expect ( rc [ 'registry' ] ) . toBe ( 'https://registry.npmjs.org/' ) ;
expect ( rc [ 'always-auth' ] ) . toBe ( 'true' ) ;
} ) ;
it ( 'is already set the NODE_AUTH_TOKEN export it' , async ( ) = > {
process . env . NODE_AUTH_TOKEN = 'foobar' ;
await auth . configAuthentication ( 'npm.pkg.github.com' , 'false' );
await auth . configAuthentication ( 'npm.pkg.github.com' ) ;
expect ( fs . statSync ( rcFile ) ) . toBeDefined ( ) ;
const rc = readRcFile ( rcFile ) ;
expect ( rc [ '@ownername:registry' ] ) . toBe ( 'npm.pkg.github.com/' ) ;
expect ( rc [ 'always-auth' ] ) . toBe ( 'false' ) ;
expect ( process . env . NODE_AUTH_TOKEN ) . toEqual ( 'foobar' ) ;
} ) ;
it ( 'configAuthentication should overwrite non-scoped with non-scoped' , async ( ) = > {
fs . writeFileSync ( rcFile , 'registry=NNN' ) ;
await auth . configAuthentication ( 'https://registry.npmjs.org/' , 'true' );
await auth . configAuthentication ( 'https://registry.npmjs.org/' );
const contents = fs . readFileSync ( rcFile , { encoding : 'utf8' } ) ;
expect ( contents ) . toBe (
` //registry.npmjs.org/:_authToken= \ ${ NODE_AUTH_TOKEN } ${ os . EOL } registry=https://registry.npmjs.org/ ${ os . EOL } always-auth=true `
` //registry.npmjs.org/:_authToken= \ ${ NODE_AUTH_TOKEN } ${ os . EOL } registry=https://registry.npmjs.org/ `
) ;
} ) ;
it ( 'configAuthentication should overwrite only non-scoped' , async ( ) = > {
fs . writeFileSync ( rcFile , ` registry=NNN ${ os . EOL } @myscope:registry=MMM ` ) ;
await auth . configAuthentication ( 'https://registry.npmjs.org/' , 'true' );
await auth . configAuthentication ( 'https://registry.npmjs.org/' );
const contents = fs . readFileSync ( rcFile , { encoding : 'utf8' } ) ;
expect ( contents ) . toBe (
` @myscope:registry=MMM ${ os . EOL } //registry.npmjs.org/:_authToken= \ ${ NODE_AUTH_TOKEN } ${ os . EOL } registry=https://registry.npmjs.org/ ${ os . EOL } always-auth=true `
` @myscope:registry=MMM ${ os . EOL } //registry.npmjs.org/:_authToken= \ ${ NODE_AUTH_TOKEN } ${ os . EOL } registry=https://registry.npmjs.org/ `
) ;
} ) ;
it ( 'configAuthentication should add non-scoped to scoped' , async ( ) = > {
fs . writeFileSync ( rcFile , '@myscope:registry=NNN' ) ;
await auth . configAuthentication ( 'https://registry.npmjs.org/' , 'true' );
await auth . configAuthentication ( 'https://registry.npmjs.org/' );
const contents = fs . readFileSync ( rcFile , { encoding : 'utf8' } ) ;
expect ( contents ) . toBe (
` @myscope:registry=NNN ${ os . EOL } //registry.npmjs.org/:_authToken= \ ${ NODE_AUTH_TOKEN } ${ os . EOL } registry=https://registry.npmjs.org/ ${ os . EOL } always-auth=true `
` @myscope:registry=NNN ${ os . EOL } //registry.npmjs.org/:_authToken= \ ${ NODE_AUTH_TOKEN } ${ os . EOL } registry=https://registry.npmjs.org/ `
) ;
} ) ;
it ( 'configAuthentication should overwrite scoped with scoped' , async ( ) = > {
process . env [ 'INPUT_SCOPE' ] = 'myscope' ;
fs . writeFileSync ( rcFile , ` @myscope:registry=NNN ` ) ;
await auth . configAuthentication ( 'https://registry.npmjs.org/' , 'true' );
await auth . configAuthentication ( 'https://registry.npmjs.org/' );
const contents = fs . readFileSync ( rcFile , { encoding : 'utf8' } ) ;
expect ( contents ) . toBe (
` //registry.npmjs.org/:_authToken= \ ${ NODE_AUTH_TOKEN } ${ os . EOL } @myscope:registry=https://registry.npmjs.org/ ${ os . EOL } always-auth=true `
` //registry.npmjs.org/:_authToken= \ ${ NODE_AUTH_TOKEN } ${ os . EOL } @myscope:registry=https://registry.npmjs.org/ `
) ;
} ) ;
it ( 'configAuthentication should overwrite only scoped' , async ( ) = > {
process . env [ 'INPUT_SCOPE' ] = 'myscope' ;
fs . writeFileSync ( rcFile , ` registry=NNN ${ os . EOL } @myscope:registry=MMM ` ) ;
await auth . configAuthentication ( 'https://registry.npmjs.org/' , 'true' );
await auth . configAuthentication ( 'https://registry.npmjs.org/' );
const contents = fs . readFileSync ( rcFile , { encoding : 'utf8' } ) ;
expect ( contents ) . toBe (
` registry=NNN ${ os . EOL } //registry.npmjs.org/:_authToken= \ ${ NODE_AUTH_TOKEN } ${ os . EOL } @myscope:registry=https://registry.npmjs.org/ ${ os . EOL } always-auth=true `
` registry=NNN ${ os . EOL } //registry.npmjs.org/:_authToken= \ ${ NODE_AUTH_TOKEN } ${ os . EOL } @myscope:registry=https://registry.npmjs.org/ `
) ;
} ) ;
it ( 'configAuthentication should add scoped to non-scoped' , async ( ) = > {
process . env [ 'INPUT_SCOPE' ] = 'myscope' ;
fs . writeFileSync ( rcFile , ` registry=MMM ` ) ;
await auth . configAuthentication ( 'https://registry.npmjs.org/' , 'true' );
await auth . configAuthentication ( 'https://registry.npmjs.org/' );
const contents = fs . readFileSync ( rcFile , { encoding : 'utf8' } ) ;
expect ( contents ) . toBe (
` registry=MMM ${ os . EOL } //registry.npmjs.org/:_authToken= \ ${ NODE_AUTH_TOKEN } ${ os . EOL } @myscope:registry=https://registry.npmjs.org/ ${ os . EOL } always-auth=true `
` registry=MMM ${ os . EOL } //registry.npmjs.org/:_authToken= \ ${ NODE_AUTH_TOKEN } ${ os . EOL } @myscope:registry=https://registry.npmjs.org/ `
) ;
} ) ;
@ -194,20 +181,20 @@ describe('authutil tests', () => {
rcFile ,
` @otherscope:registry=NNN ${ os . EOL } @myscope:registry=MMM `
) ;
await auth . configAuthentication ( 'https://registry.npmjs.org/' , 'true' );
await auth . configAuthentication ( 'https://registry.npmjs.org/' );
const contents = fs . readFileSync ( rcFile , { encoding : 'utf8' } ) ;
expect ( contents ) . toBe (
` @otherscope:registry=NNN ${ os . EOL } //registry.npmjs.org/:_authToken= \ ${ NODE_AUTH_TOKEN } ${ os . EOL } @myscope:registry=https://registry.npmjs.org/ ${ os . EOL } always-auth=true `
` @otherscope:registry=NNN ${ os . EOL } //registry.npmjs.org/:_authToken= \ ${ NODE_AUTH_TOKEN } ${ os . EOL } @myscope:registry=https://registry.npmjs.org/ `
) ;
} ) ;
it ( 'configAuthentication should add scoped to another scoped' , async ( ) = > {
process . env [ 'INPUT_SCOPE' ] = 'myscope' ;
fs . writeFileSync ( rcFile , ` @otherscope:registry=MMM ` ) ;
await auth . configAuthentication ( 'https://registry.npmjs.org/' , 'true' );
await auth . configAuthentication ( 'https://registry.npmjs.org/' );
const contents = fs . readFileSync ( rcFile , { encoding : 'utf8' } ) ;
expect ( contents ) . toBe (
` @otherscope:registry=MMM ${ os . EOL } //registry.npmjs.org/:_authToken= \ ${ NODE_AUTH_TOKEN } ${ os . EOL } @myscope:registry=https://registry.npmjs.org/ ${ os . EOL } always-auth=true `
` @otherscope:registry=MMM ${ os . EOL } //registry.npmjs.org/:_authToken= \ ${ NODE_AUTH_TOKEN } ${ os . EOL } @myscope:registry=https://registry.npmjs.org/ `
) ;
} ) ;
} ) ;