Skip to content
Snippets Groups Projects
Select Git revision
  • 4f141dfa84706ad4c91d214a5228619c511f1ad5
  • master default protected
  • gh-pages
  • dependabot/npm_and_yarn/nock-14.0.9
  • dependabot/npm_and_yarn/react-19.1.1
  • dependabot/npm_and_yarn/react-dom-19.1.1
  • server-2025-08-01-57ada99c
  • server-2025-02-01-6100669a
  • server-2024-11-01-87cba042
  • server-2024-10-01-6875b7c8
  • dependabot/npm_and_yarn/path-to-regexp-8.2.0
  • server-2024-09-01-3d52575c
  • daily-tests-gha2
  • daily-tests-gha
  • server-2023-12-01-92d8fb8e
  • server-2023-11-01-a80c93fd
  • server-2023-10-01-31096085
  • coc-v2
  • server-2023-09-01-8edc3810
  • server-2023-08-01-75858a03
  • server-2023-07-01-02183d8d
  • server-2025-08-03
  • server-2025-07-01
  • 5.0.2
  • 5.0.1
  • 5.0.0
  • server-2025-06-01
  • server-2025-05-01
  • server-2025-04-03
  • server-2025-03-02
  • server-2025-03-01
  • server-2025-02-02
  • server-2025-01-01
  • server-2024-12-01
  • server-2024-11-02
  • 4.1.0
  • server-2024-09-25
  • server-2024-09-02
  • server-2024-08-01
  • server-2024-07-01
  • 4.0.0
41 results

validators.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/'
          );
        });
      });
    });