mirror of
https://github.com/actions/checkout.git
synced 2025-03-14 10:07:00 +00:00
Adding tests for injecting the GitHub URL
This commit is contained in:
parent
385d3aa94f
commit
092f9bd613
1 changed files with 35 additions and 14 deletions
|
@ -5,8 +5,8 @@ import * as io from '@actions/io'
|
||||||
import * as os from 'os'
|
import * as os from 'os'
|
||||||
import * as path from 'path'
|
import * as path from 'path'
|
||||||
import * as stateHelper from '../lib/state-helper'
|
import * as stateHelper from '../lib/state-helper'
|
||||||
import {IGitCommandManager} from '../lib/git-command-manager'
|
import { IGitCommandManager } from '../lib/git-command-manager'
|
||||||
import {IGitSourceSettings} from '../lib/git-source-settings'
|
import { IGitSourceSettings } from '../lib/git-source-settings'
|
||||||
|
|
||||||
const isWindows = process.platform === 'win32'
|
const isWindows = process.platform === 'win32'
|
||||||
const testWorkspace = path.join(__dirname, '_temp', 'git-auth-helper')
|
const testWorkspace = path.join(__dirname, '_temp', 'git-auth-helper')
|
||||||
|
@ -17,9 +17,10 @@ let localGitConfigPath: string
|
||||||
let globalGitConfigPath: string
|
let globalGitConfigPath: string
|
||||||
let runnerTemp: string
|
let runnerTemp: string
|
||||||
let tempHomedir: string
|
let tempHomedir: string
|
||||||
let git: IGitCommandManager & {env: {[key: string]: string}}
|
let git: IGitCommandManager & { env: { [key: string]: string } }
|
||||||
let settings: IGitSourceSettings
|
let settings: IGitSourceSettings
|
||||||
let sshPath: string
|
let sshPath: string
|
||||||
|
let githubServerUrl: string
|
||||||
|
|
||||||
describe('git-auth-helper tests', () => {
|
describe('git-auth-helper tests', () => {
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
|
@ -32,7 +33,7 @@ describe('git-auth-helper tests', () => {
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
// Mock setSecret
|
// Mock setSecret
|
||||||
jest.spyOn(core, 'setSecret').mockImplementation((secret: string) => {})
|
jest.spyOn(core, 'setSecret').mockImplementation((secret: string) => { })
|
||||||
|
|
||||||
// Mock error/warning/info/debug
|
// Mock error/warning/info/debug
|
||||||
jest.spyOn(core, 'error').mockImplementation(jest.fn())
|
jest.spyOn(core, 'error').mockImplementation(jest.fn())
|
||||||
|
@ -67,11 +68,15 @@ describe('git-auth-helper tests', () => {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
const configureAuth_configuresAuthHeader =
|
async function testAuthHeader(testName: string, serverUrl: string | undefined = undefined) {
|
||||||
'configureAuth configures auth header'
|
|
||||||
it(configureAuth_configuresAuthHeader, async () => {
|
|
||||||
// Arrange
|
// Arrange
|
||||||
await setup(configureAuth_configuresAuthHeader)
|
let expectedServerUrl = 'https://github.com'
|
||||||
|
if (serverUrl) {
|
||||||
|
githubServerUrl = serverUrl
|
||||||
|
expectedServerUrl = githubServerUrl
|
||||||
|
}
|
||||||
|
|
||||||
|
await setup(testName)
|
||||||
expect(settings.authToken).toBeTruthy() // sanity check
|
expect(settings.authToken).toBeTruthy() // sanity check
|
||||||
const authHelper = gitAuthHelper.createAuthHelper(git, settings)
|
const authHelper = gitAuthHelper.createAuthHelper(git, settings)
|
||||||
|
|
||||||
|
@ -88,9 +93,25 @@ describe('git-auth-helper tests', () => {
|
||||||
).toString('base64')
|
).toString('base64')
|
||||||
expect(
|
expect(
|
||||||
configContent.indexOf(
|
configContent.indexOf(
|
||||||
`http.https://github.com/.extraheader AUTHORIZATION: basic ${basicCredential}`
|
`http.${expectedServerUrl}/.extraheader AUTHORIZATION: basic ${basicCredential}`
|
||||||
)
|
)
|
||||||
).toBeGreaterThanOrEqual(0)
|
).toBeGreaterThanOrEqual(0)
|
||||||
|
}
|
||||||
|
|
||||||
|
const configureAuth_configuresAuthHeader =
|
||||||
|
'configureAuth configures auth header'
|
||||||
|
it(configureAuth_configuresAuthHeader, async () => {
|
||||||
|
await testAuthHeader(configureAuth_configuresAuthHeader);
|
||||||
|
})
|
||||||
|
|
||||||
|
const configureAuth_AcceptsGitHubServerUrl = 'inject https://my-ghes-server.com as github server url'
|
||||||
|
it(configureAuth_AcceptsGitHubServerUrl, async () => {
|
||||||
|
await testAuthHeader(configureAuth_AcceptsGitHubServerUrl, 'https://my-ghes-server.com');
|
||||||
|
})
|
||||||
|
|
||||||
|
const configureAuth_AcceptsGitHubServerUrlSetToGHEC = 'inject https://github.com as github server url'
|
||||||
|
it(configureAuth_AcceptsGitHubServerUrlSetToGHEC, async () => {
|
||||||
|
await testAuthHeader(configureAuth_AcceptsGitHubServerUrl, 'https://github.com');
|
||||||
})
|
})
|
||||||
|
|
||||||
const configureAuth_configuresAuthHeaderEvenWhenPersistCredentialsFalse =
|
const configureAuth_configuresAuthHeaderEvenWhenPersistCredentialsFalse =
|
||||||
|
@ -678,9 +699,9 @@ async function setup(testName: string): Promise<void> {
|
||||||
workspace = path.join(testWorkspace, testName, 'workspace')
|
workspace = path.join(testWorkspace, testName, 'workspace')
|
||||||
runnerTemp = path.join(testWorkspace, testName, 'runner-temp')
|
runnerTemp = path.join(testWorkspace, testName, 'runner-temp')
|
||||||
tempHomedir = path.join(testWorkspace, testName, 'home-dir')
|
tempHomedir = path.join(testWorkspace, testName, 'home-dir')
|
||||||
await fs.promises.mkdir(workspace, {recursive: true})
|
await fs.promises.mkdir(workspace, { recursive: true })
|
||||||
await fs.promises.mkdir(runnerTemp, {recursive: true})
|
await fs.promises.mkdir(runnerTemp, { recursive: true })
|
||||||
await fs.promises.mkdir(tempHomedir, {recursive: true})
|
await fs.promises.mkdir(tempHomedir, { recursive: true })
|
||||||
process.env['RUNNER_TEMP'] = runnerTemp
|
process.env['RUNNER_TEMP'] = runnerTemp
|
||||||
process.env['HOME'] = tempHomedir
|
process.env['HOME'] = tempHomedir
|
||||||
|
|
||||||
|
@ -688,7 +709,7 @@ async function setup(testName: string): Promise<void> {
|
||||||
globalGitConfigPath = path.join(tempHomedir, '.gitconfig')
|
globalGitConfigPath = path.join(tempHomedir, '.gitconfig')
|
||||||
await fs.promises.writeFile(globalGitConfigPath, '')
|
await fs.promises.writeFile(globalGitConfigPath, '')
|
||||||
localGitConfigPath = path.join(workspace, '.git', 'config')
|
localGitConfigPath = path.join(workspace, '.git', 'config')
|
||||||
await fs.promises.mkdir(path.dirname(localGitConfigPath), {recursive: true})
|
await fs.promises.mkdir(path.dirname(localGitConfigPath), { recursive: true })
|
||||||
await fs.promises.writeFile(localGitConfigPath, '')
|
await fs.promises.writeFile(localGitConfigPath, '')
|
||||||
|
|
||||||
git = {
|
git = {
|
||||||
|
@ -779,7 +800,7 @@ async function setup(testName: string): Promise<void> {
|
||||||
sshStrict: true,
|
sshStrict: true,
|
||||||
workflowOrganizationId: 123456,
|
workflowOrganizationId: 123456,
|
||||||
setSafeDirectory: true,
|
setSafeDirectory: true,
|
||||||
githubServerUrl: undefined
|
githubServerUrl: githubServerUrl
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue