Skip to content
Snippets Groups Projects
Select Git revision
  • 2d0e4e78c851a978908f8a7f71d43d7923957bce
  • main default protected
  • dependabot/github_actions/github-actions-f558e3613a
  • dependabot/cargo/cargo-a5ed25a02d
  • dependabot/npm_and_yarn/test/braces-3.0.3
  • dependabot/npm_and_yarn/test/axios-1.6.8
  • polyfillcust-patch-1
  • dependabot/npm_and_yarn/test/follow-redirects-1.15.6
  • v4.57.0
  • v4.56.1
  • v4.56.0
  • v4.55.0
  • v4.54.0
  • v4.53.0
  • v4.52.0
  • v4.51.0
  • v4.50.6
  • v4.50.5
  • v4.50.4
  • v4.50.3
  • v4.50.2
  • v4.50.1
  • v4.50.0
  • v4.49.5
  • v4.49.4
  • v4.49.3
  • v4.49.2
  • v4.49.1
28 results

tests.js

Blame
  • url.spec.ts 2.84 KiB
    import { hostRules } from '../../../test/util';
    import { getHttpUrl, getRemoteUrlWithToken } from './url';
    
    jest.mock('../host-rules');
    
    describe('util/git/url', () => {
      describe('getHttpUrl()', () => {
        it('returns https url for git url', () => {
          expect(getHttpUrl('git://foo.bar/')).toBe('https://foo.bar/');
        });
    
        it('returns https url for https url', () => {
          expect(getHttpUrl('https://foo.bar/')).toBe('https://foo.bar/');
        });
    
        it('returns http url for http url', () => {
          expect(getHttpUrl('http://foo.bar/')).toBe('http://foo.bar/');
        });
      });
    
      describe('getRemoteUrlWithToken()', () => {
        it('returns original url if no host rule is found', () => {
          expect(getRemoteUrlWithToken('https://foo.bar/')).toBe(
            'https://foo.bar/'
          );
        });
    
        it('returns http url with token', () => {
          hostRules.find.mockReturnValueOnce({ token: 'token' });
          expect(getRemoteUrlWithToken('http://foo.bar/')).toBe(
            'http://token@foo.bar/'
          );
        });
    
        it('returns https url with token', () => {
          hostRules.find.mockReturnValueOnce({ token: 'token' });
          expect(getRemoteUrlWithToken('https://foo.bar/')).toBe(
            'https://token@foo.bar/'
          );
        });
    
        it('returns https url with token for non-http protocols', () => {
          hostRules.find.mockReturnValueOnce({ token: 'token' });
          expect(getRemoteUrlWithToken('ssh://foo.bar/')).toBe(
            'https://token@foo.bar/'
          );
        });
    
        it('returns https url with encoded token', () => {
          hostRules.find.mockReturnValueOnce({ token: 't#ken' });
          expect(getRemoteUrlWithToken('https://foo.bar/')).toBe(
            'https://t%23ken@foo.bar/'
          );
        });
    
        it('returns http url with username and password', () => {
          hostRules.find.mockReturnValueOnce({
            username: 'user',
            password: 'pass',
          });
          expect(getRemoteUrlWithToken('http://foo.bar/')).toBe(
            'http://user:pass@foo.bar/'
          );
        });
    
        it('returns https url with username and password', () => {
          hostRules.find.mockReturnValueOnce({
            username: 'user',
            password: 'pass',
          });
          expect(getRemoteUrlWithToken('https://foo.bar/')).toBe(
            'https://user:pass@foo.bar/'
          );
        });
    
        it('returns https url with username and password for non-http protocols', () => {
          hostRules.find.mockReturnValueOnce({
            username: 'user',
            password: 'pass',
          });
          expect(getRemoteUrlWithToken('ssh://foo.bar/')).toBe(
            'https://user:pass@foo.bar/'
          );
        });
    
        it('returns https url with encoded username and password', () => {
          hostRules.find.mockReturnValueOnce({
            username: 'u$er',
            password: 'p@ss',
          });
          expect(getRemoteUrlWithToken('https://foo.bar/')).toBe(
            'https://u%24er:p%40ss@foo.bar/'
          );
        });
      });
    });