mirror of
				https://github.com/actions/checkout.git
				synced 2025-10-31 18:18: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 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…
	
		Reference in New Issue
	
	Block a user
	 Peter Murray
						Peter Murray