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' ) }) })