From 17f3fe18374cb57dea5cccaf37fd884c74f055c8 Mon Sep 17 00:00:00 2001 From: "David J. Felix" Date: Thu, 29 Aug 2019 19:36:24 -0400 Subject: [PATCH] Fix tests for always-auth --- __tests__/__snapshots__/authutil.test.ts.snap | 18 ++++++++++--- __tests__/authutil.test.ts | 14 +++++++--- lib/authutil.js | 6 ++--- lib/setup-node.js | 2 +- src/authutil.ts | 26 +++++-------------- src/setup-node.ts | 2 +- 6 files changed, 36 insertions(+), 32 deletions(-) diff --git a/__tests__/__snapshots__/authutil.test.ts.snap b/__tests__/__snapshots__/authutil.test.ts.snap index 3059617b..c142cf4a 100644 --- a/__tests__/__snapshots__/authutil.test.ts.snap +++ b/__tests__/__snapshots__/authutil.test.ts.snap @@ -2,20 +2,30 @@ exports[`installer tests Appends trailing slash to registry 1`] = ` "//registry.npmjs.org/:_authToken=\${NODE_AUTH_TOKEN} -registry=https://registry.npmjs.org/" +registry=https://registry.npmjs.org/ +always-auth=false" `; exports[`installer tests Automatically configures GPR scope 1`] = ` "npm.pkg.github.com/:_authToken=\${NODE_AUTH_TOKEN} -@ownername:registry=npm.pkg.github.com/" +@ownername:registry=npm.pkg.github.com/ +always-auth=false" `; exports[`installer tests Configures scoped npm registries 1`] = ` "//registry.npmjs.org/:_authToken=\${NODE_AUTH_TOKEN} -@myscope:registry=https://registry.npmjs.org/" +@myscope:registry=https://registry.npmjs.org/ +always-auth=false" +`; + +exports[`installer tests Sets up npmrc for always-auth true 1`] = ` +"//registry.npmjs.org/:_authToken=\${NODE_AUTH_TOKEN} +registry=https://registry.npmjs.org/ +always-auth=true" `; exports[`installer tests Sets up npmrc for npmjs 1`] = ` "//registry.npmjs.org/:_authToken=\${NODE_AUTH_TOKEN} -registry=https://registry.npmjs.org/" +registry=https://registry.npmjs.org/ +always-auth=false" `; diff --git a/__tests__/authutil.test.ts b/__tests__/authutil.test.ts index 2e88011e..c75d5b65 100644 --- a/__tests__/authutil.test.ts +++ b/__tests__/authutil.test.ts @@ -33,13 +33,13 @@ describe('installer tests', () => { }); it('Sets up npmrc for npmjs', async () => { - await auth.configAuthentication('https://registry.npmjs.org/'); + await auth.configAuthentication('https://registry.npmjs.org/', 'false'); 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'); + await auth.configAuthentication('https://registry.npmjs.org', 'false'); expect(fs.existsSync(rcFile)).toBe(true); expect(fs.readFileSync(rcFile, {encoding: 'utf8'})).toMatchSnapshot(); @@ -47,16 +47,22 @@ describe('installer tests', () => { it('Configures scoped npm registries', async () => { process.env['INPUT_SCOPE'] = 'myScope'; - await auth.configAuthentication('https://registry.npmjs.org'); + await auth.configAuthentication('https://registry.npmjs.org', 'false'); 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'); + await auth.configAuthentication('npm.pkg.github.com', 'false'); expect(fs.existsSync(rcFile)).toBe(true); expect(fs.readFileSync(rcFile, {encoding: 'utf8'})).toMatchSnapshot(); }); + + it('Sets up npmrc for always-auth true', async () => { + await auth.configAuthentication('https://registry.npmjs.org/', 'true'); + expect(fs.existsSync(rcFile)).toBe(true); + expect(fs.readFileSync(rcFile, {encoding: 'utf8'})).toMatchSnapshot(); + }); }); diff --git a/lib/authutil.js b/lib/authutil.js index 1be060ac..6da4630b 100644 --- a/lib/authutil.js +++ b/lib/authutil.js @@ -12,15 +12,15 @@ const os = __importStar(require("os")); const path = __importStar(require("path")); const core = __importStar(require("@actions/core")); const github = __importStar(require("@actions/github")); -function configAuthentication({ registryUrl, alwaysAuth }) { +function configAuthentication(registryUrl, alwaysAuth) { const npmrc = path.resolve(process.env['RUNNER_TEMP'] || process.cwd(), '.npmrc'); if (!registryUrl.endsWith('/')) { registryUrl += '/'; } - writeRegistryToFile({ registryUrl, fileLocation: npmrc, alwaysAuth }); + writeRegistryToFile(registryUrl, npmrc, alwaysAuth); } exports.configAuthentication = configAuthentication; -function writeRegistryToFile({ registryUrl, fileLocation, alwaysAuth }) { +function writeRegistryToFile(registryUrl, fileLocation, alwaysAuth) { let scope = core.getInput('scope'); if (!scope && registryUrl.indexOf('npm.pkg.github.com') > -1) { scope = github.context.repo.owner; diff --git a/lib/setup-node.js b/lib/setup-node.js index aa2cf306..d7b35185 100644 --- a/lib/setup-node.js +++ b/lib/setup-node.js @@ -37,7 +37,7 @@ function run() { const registryUrl = core.getInput('registry-url'); const alwaysAuth = core.getInput('always-auth'); if (registryUrl) { - auth.configAuthentication({ registryUrl, alwaysAuth }); + auth.configAuthentication(registryUrl, alwaysAuth); } // TODO: setup proxy from runner proxy config const matchersPath = path.join(__dirname, '..', '.github'); diff --git a/src/authutil.ts b/src/authutil.ts index 0dbeb487..07e0b24c 100644 --- a/src/authutil.ts +++ b/src/authutil.ts @@ -4,14 +4,7 @@ import * as path from 'path'; import * as core from '@actions/core'; import * as github from '@actions/github'; -interface ConfigureAuthenticationParams { - registryUrl: string; - alwaysAuth: string; -} -export function configAuthentication({ - registryUrl, - alwaysAuth -}: ConfigureAuthenticationParams) { +export function configAuthentication(registryUrl: string, alwaysAuth: string) { const npmrc: string = path.resolve( process.env['RUNNER_TEMP'] || process.cwd(), '.npmrc' @@ -20,19 +13,14 @@ export function configAuthentication({ registryUrl += '/'; } - writeRegistryToFile({registryUrl, fileLocation: npmrc, alwaysAuth}); + writeRegistryToFile(registryUrl, npmrc, alwaysAuth); } -interface WriteRegistryToFileParams { - registryUrl: string; - fileLocation: string; - alwaysAuth: string; -} -function writeRegistryToFile({ - registryUrl, - fileLocation, - alwaysAuth -}: WriteRegistryToFileParams) { +function writeRegistryToFile( + registryUrl: string, + fileLocation: string, + alwaysAuth: string +) { let scope: string = core.getInput('scope'); if (!scope && registryUrl.indexOf('npm.pkg.github.com') > -1) { scope = github.context.repo.owner; diff --git a/src/setup-node.ts b/src/setup-node.ts index b3ee36d5..51deccbe 100644 --- a/src/setup-node.ts +++ b/src/setup-node.ts @@ -21,7 +21,7 @@ async function run() { const registryUrl: string = core.getInput('registry-url'); const alwaysAuth: string = core.getInput('always-auth'); if (registryUrl) { - auth.configAuthentication({registryUrl, alwaysAuth}); + auth.configAuthentication(registryUrl, alwaysAuth); } // TODO: setup proxy from runner proxy config