mirror of
				https://github.com/actions/checkout.git
				synced 2025-10-31 10:08:37 +08:00 
			
		
		
		
	Adding tests for injecting the GitHub URL
This commit is contained in:
		
							parent
							
								
									385d3aa94f
								
							
						
					
					
						commit
						092f9bd613
					
				|  | @ -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…
	
		Reference in New Issue
	
	Block a user
	 Peter Murray
						Peter Murray