forked from TypeStrong/typedoc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
GitHubPlugin.test.ts
99 lines (78 loc) · 3.56 KB
/
GitHubPlugin.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
import * as github from "../../../lib/converter/plugins/GitHubPlugin";
import { RepositoryType } from "../../../lib/models";
import Assert = require("assert");
describe("Repository", function () {
describe("constructor", function () {
it("defaults to github.com hostname", function () {
const repository = new github.Repository("", "", []);
Assert.equal(repository.hostname, "github.com");
Assert.equal(repository.type, RepositoryType.GitHub);
});
it("handles a personal GitHub HTTPS URL", function () {
const mockRemotes = ["https://github.com/joebloggs/foobar.git"];
const repository = new github.Repository("", "", mockRemotes);
Assert.equal(repository.hostname, "github.com");
Assert.equal(repository.user, "joebloggs");
Assert.equal(repository.project, "foobar");
Assert.equal(repository.type, RepositoryType.GitHub);
});
it("handles an enterprise GitHub URL", function () {
const mockRemotes = ["git@github.acme.com:joebloggs/foobar.git"];
const repository = new github.Repository("", "", mockRemotes);
Assert.equal(repository.hostname, "github.acme.com");
Assert.equal(repository.user, "joebloggs");
Assert.equal(repository.project, "foobar");
Assert.equal(repository.type, RepositoryType.GitHub);
});
it("handles a Bitbucket HTTPS URL", function () {
const mockRemotes = [
"https://joebloggs@bitbucket.org/joebloggs/foobar.git",
];
const repository = new github.Repository("", "", mockRemotes);
Assert.equal(repository.hostname, "bitbucket.org");
Assert.equal(repository.user, "joebloggs");
Assert.equal(repository.project, "foobar");
Assert.equal(repository.type, RepositoryType.Bitbucket);
});
it("handles a Bitbucket SSH URL", function () {
const mockRemotes = ["git@bitbucket.org:joebloggs/foobar.git"];
const repository = new github.Repository("", "", mockRemotes);
Assert.equal(repository.hostname, "bitbucket.org");
Assert.equal(repository.user, "joebloggs");
Assert.equal(repository.project, "foobar");
Assert.equal(repository.type, RepositoryType.Bitbucket);
});
});
describe("getURL", () => {
const repositoryPath = "C:/Projects/foobar";
const filePath = repositoryPath + "/src/index.ts";
it("returns a GitHub URL", function () {
const mockRemotes = ["https://github.com/joebloggs/foobar.git"];
const repository = new github.Repository(
repositoryPath,
"main",
mockRemotes
);
repository.files = [filePath];
Assert.equal(
repository.getURL(filePath),
"https://github.com/joebloggs/foobar/blob/main/src/index.ts"
);
});
it("returns a Bitbucket URL", function () {
const mockRemotes = [
"https://joebloggs@bitbucket.org/joebloggs/foobar.git",
];
const repository = new github.Repository(
repositoryPath,
"main",
mockRemotes
);
repository.files = [filePath];
Assert.equal(
repository.getURL(filePath),
"https://bitbucket.org/joebloggs/foobar/src/main/src/index.ts"
);
});
});
});