mirror of
				https://github.com/actions/checkout.git
				synced 2025-11-04 06:41:56 +02: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 path from 'path'
 | 
			
		||||
import * as stateHelper from '../lib/state-helper'
 | 
			
		||||
import {IGitCommandManager} from '../lib/git-command-manager'
 | 
			
		||||
import {IGitSourceSettings} from '../lib/git-source-settings'
 | 
			
		||||
import { IGitCommandManager } from '../lib/git-command-manager'
 | 
			
		||||
import { IGitSourceSettings } from '../lib/git-source-settings'
 | 
			
		||||
 | 
			
		||||
const isWindows = process.platform === 'win32'
 | 
			
		||||
const testWorkspace = path.join(__dirname, '_temp', 'git-auth-helper')
 | 
			
		||||
| 
						 | 
				
			
			@ -17,9 +17,10 @@ let localGitConfigPath: string
 | 
			
		|||
let globalGitConfigPath: string
 | 
			
		||||
let runnerTemp: string
 | 
			
		||||
let tempHomedir: string
 | 
			
		||||
let git: IGitCommandManager & {env: {[key: string]: string}}
 | 
			
		||||
let git: IGitCommandManager & { env: { [key: string]: string } }
 | 
			
		||||
let settings: IGitSourceSettings
 | 
			
		||||
let sshPath: string
 | 
			
		||||
let githubServerUrl: string
 | 
			
		||||
 | 
			
		||||
describe('git-auth-helper tests', () => {
 | 
			
		||||
  beforeAll(async () => {
 | 
			
		||||
| 
						 | 
				
			
			@ -32,7 +33,7 @@ describe('git-auth-helper tests', () => {
 | 
			
		|||
 | 
			
		||||
  beforeEach(() => {
 | 
			
		||||
    // Mock setSecret
 | 
			
		||||
    jest.spyOn(core, 'setSecret').mockImplementation((secret: string) => {})
 | 
			
		||||
    jest.spyOn(core, 'setSecret').mockImplementation((secret: string) => { })
 | 
			
		||||
 | 
			
		||||
    // Mock error/warning/info/debug
 | 
			
		||||
    jest.spyOn(core, 'error').mockImplementation(jest.fn())
 | 
			
		||||
| 
						 | 
				
			
			@ -67,11 +68,15 @@ describe('git-auth-helper tests', () => {
 | 
			
		|||
    }
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  const configureAuth_configuresAuthHeader =
 | 
			
		||||
    'configureAuth configures auth header'
 | 
			
		||||
  it(configureAuth_configuresAuthHeader, async () => {
 | 
			
		||||
  async function testAuthHeader(testName: string, serverUrl: string | undefined = undefined) {
 | 
			
		||||
    // 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
 | 
			
		||||
    const authHelper = gitAuthHelper.createAuthHelper(git, settings)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -88,9 +93,25 @@ describe('git-auth-helper tests', () => {
 | 
			
		|||
    ).toString('base64')
 | 
			
		||||
    expect(
 | 
			
		||||
      configContent.indexOf(
 | 
			
		||||
        `http.https://github.com/.extraheader AUTHORIZATION: basic ${basicCredential}`
 | 
			
		||||
        `http.${expectedServerUrl}/.extraheader AUTHORIZATION: basic ${basicCredential}`
 | 
			
		||||
      )
 | 
			
		||||
    ).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 =
 | 
			
		||||
| 
						 | 
				
			
			@ -678,9 +699,9 @@ async function setup(testName: string): Promise<void> {
 | 
			
		|||
  workspace = path.join(testWorkspace, testName, 'workspace')
 | 
			
		||||
  runnerTemp = path.join(testWorkspace, testName, 'runner-temp')
 | 
			
		||||
  tempHomedir = path.join(testWorkspace, testName, 'home-dir')
 | 
			
		||||
  await fs.promises.mkdir(workspace, {recursive: true})
 | 
			
		||||
  await fs.promises.mkdir(runnerTemp, {recursive: true})
 | 
			
		||||
  await fs.promises.mkdir(tempHomedir, {recursive: true})
 | 
			
		||||
  await fs.promises.mkdir(workspace, { recursive: true })
 | 
			
		||||
  await fs.promises.mkdir(runnerTemp, { recursive: true })
 | 
			
		||||
  await fs.promises.mkdir(tempHomedir, { recursive: true })
 | 
			
		||||
  process.env['RUNNER_TEMP'] = runnerTemp
 | 
			
		||||
  process.env['HOME'] = tempHomedir
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -688,7 +709,7 @@ async function setup(testName: string): Promise<void> {
 | 
			
		|||
  globalGitConfigPath = path.join(tempHomedir, '.gitconfig')
 | 
			
		||||
  await fs.promises.writeFile(globalGitConfigPath, '')
 | 
			
		||||
  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, '')
 | 
			
		||||
 | 
			
		||||
  git = {
 | 
			
		||||
| 
						 | 
				
			
			@ -779,7 +800,7 @@ async function setup(testName: string): Promise<void> {
 | 
			
		|||
    sshStrict: true,
 | 
			
		||||
    workflowOrganizationId: 123456,
 | 
			
		||||
    setSafeDirectory: true,
 | 
			
		||||
    githubServerUrl: undefined
 | 
			
		||||
    githubServerUrl: githubServerUrl
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue