UNPKG

gitly

Version:

An API to download and/or extract git repositories

141 lines (140 loc) 4.75 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const parse_1 = __importDefault(require("../parse")); describe('utils/parse', () => { it('should parse "owner/repo"', () => { expect((0, parse_1.default)('owner/repo')).toStrictEqual({ protocol: 'https', host: 'github.com', hostname: 'github', hash: '', href: 'https://github.com/owner/repo', path: '/owner/repo', repository: 'repo', owner: 'owner', type: 'master', }); }); it('should parse "owner/repo#v1.0.0"', () => { expect((0, parse_1.default)('owner/repo#v1.0.0')).toStrictEqual({ protocol: 'https', host: 'github.com', hostname: 'github', hash: '#v1.0.0', href: 'https://github.com/owner/repo#v1.0.0', path: '/owner/repo', repository: 'repo', owner: 'owner', type: 'v1.0.0', }); }); it('should parse "https://host.com/owner/repo"', () => { expect((0, parse_1.default)('https://host.com/owner/repo')).toStrictEqual({ protocol: 'https', host: 'host.com', hostname: 'host', hash: '', href: 'https://host.com/owner/repo', path: '/owner/repo', repository: 'repo', owner: 'owner', type: 'master', }); }); it('should parse "host.com/owner/repo"', () => { expect((0, parse_1.default)('host.com/owner/repo')).toStrictEqual({ protocol: 'https', host: 'host.com', hostname: 'host', hash: '', href: 'https://host.com/owner/repo', path: '/owner/repo', repository: 'repo', owner: 'owner', type: 'master', }); }); it('should parse "host.com/owner/repo.git"', () => { expect((0, parse_1.default)('host.com/owner/repo.git')).toStrictEqual({ protocol: 'https', host: 'host.com', hostname: 'host', hash: '', href: 'https://host.com/owner/repo', path: '/owner/repo', repository: 'repo', owner: 'owner', type: 'master', }); }); it('should parse "host.com/owner/repo.git#tag"', () => { expect((0, parse_1.default)('host.com/owner/repo.git#tag')).toStrictEqual({ protocol: 'https', host: 'host.com', hostname: 'host', hash: '#tag', href: 'https://host.com/owner/repo#tag', path: '/owner/repo', repository: 'repo', owner: 'owner', type: 'tag', }); }); it('should parse "host.com/owner/repo#tag"', () => { expect((0, parse_1.default)('host.com/owner/repo#tag')).toStrictEqual({ protocol: 'https', host: 'host.com', hostname: 'host', hash: '#tag', href: 'https://host.com/owner/repo#tag', path: '/owner/repo', repository: 'repo', owner: 'owner', type: 'tag', }); }); it('should parse "host:owner/repo"', () => { expect((0, parse_1.default)('host:owner/repo')).toStrictEqual({ protocol: 'https', host: 'host.com', hostname: 'host', hash: '', href: 'https://host.com/owner/repo', path: '/owner/repo', repository: 'repo', owner: 'owner', type: 'master', }); }); it('should parse "host:owner/repo#tag"', () => { expect((0, parse_1.default)('host:owner/repo#tag')).toStrictEqual({ protocol: 'https', host: 'host.com', hostname: 'host', hash: '#tag', href: 'https://host.com/owner/repo#tag', path: '/owner/repo', repository: 'repo', owner: 'owner', type: 'tag', }); }); it('should parse "owner/repo#tag" with a different host', () => { expect((0, parse_1.default)('owner/repo#tag', { host: 'blah.dev', })).toStrictEqual({ protocol: 'https', host: 'blah.dev', hostname: 'blah', hash: '#tag', href: 'https://blah.dev/owner/repo#tag', path: '/owner/repo', repository: 'repo', owner: 'owner', type: 'tag', }); }); });