gitly
Version:
An API to download and/or extract git repositories
141 lines (140 loc) • 4.75 kB
JavaScript
"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',
});
});
});