mirror of
				https://code.forgejo.org/actions/checkout.git
				synced 2025-11-04 14:49:12 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			46 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import * as urlHelper from '../lib/url-helper'
 | 
						|
 | 
						|
import { IGitSourceSettings } from '../lib/git-source-settings';
 | 
						|
 | 
						|
function getSettings(u: string): IGitSourceSettings {
 | 
						|
  return {
 | 
						|
    githubServerUrl: u,
 | 
						|
    repositoryPath: '',
 | 
						|
    repositoryOwner: 'some-owner',
 | 
						|
    repositoryName: 'some-name',
 | 
						|
    ref: '', commit: '', clean: false, filter: undefined,
 | 
						|
    sparseCheckout: [], sparseCheckoutConeMode: false,
 | 
						|
    fetchDepth: 0, fetchTags: false, showProgress: false,
 | 
						|
    lfs: false, submodules: false, nestedSubmodules: false,
 | 
						|
    authToken: '', sshKey: '', sshKnownHosts: '', sshStrict: false,
 | 
						|
    persistCredentials: false, workflowOrganizationId: undefined,
 | 
						|
    setSafeDirectory: false
 | 
						|
  }
 | 
						|
}
 | 
						|
describe('url-helper tests', () => {
 | 
						|
  it('getFetchUrl works on GitHub repos', async () => {
 | 
						|
    expect(urlHelper.getFetchUrl(getSettings('https://github.com'))).toBe(
 | 
						|
      "https://github.com/some-owner/some-name"
 | 
						|
    )
 | 
						|
  })
 | 
						|
 | 
						|
  it('getFetchUrl works on 3rd party repos with sub-path', async () => {
 | 
						|
    expect(urlHelper.getFetchUrl(getSettings('https://other.com/subpath'))).toBe(
 | 
						|
      'https://other.com/subpath/some-owner/some-name'
 | 
						|
    )
 | 
						|
  })
 | 
						|
 | 
						|
  it('getFetchUrl works on 3rd party repos with ssh keys', async () => {
 | 
						|
    expect(urlHelper.getFetchUrl(getSettings('https://other.com/subpath'))).toBe(
 | 
						|
      'https://other.com/subpath/some-owner/some-name'
 | 
						|
    )
 | 
						|
  })
 | 
						|
 | 
						|
  it('getFetchUrl works with ssh credentials', async () => {
 | 
						|
    let settings = getSettings('https://other.com/subpath');
 | 
						|
    settings.sshKey = 'not-empty'
 | 
						|
    expect(urlHelper.getFetchUrl(settings)).toBe(
 | 
						|
      'git@other.com:some-owner/some-name.git'
 | 
						|
    )
 | 
						|
  })
 | 
						|
})
 |