1package gitlab
2
3import (
4 "testing"
5
6 "github.com/stretchr/testify/assert"
7)
8
9func TestProjectPath(t *testing.T) {
10 type args struct {
11 url string
12 }
13 type want struct {
14 path string
15 err error
16 }
17 tests := []struct {
18 name string
19 args args
20 want want
21 }{
22 {
23 name: "default url",
24 args: args{
25 url: "https://gitlab.com/MichaelMure/git-bug",
26 },
27 want: want{
28 path: "MichaelMure/git-bug",
29 err: nil,
30 },
31 },
32 {
33 name: "multiple sub groups",
34 args: args{
35 url: "https://gitlab.com/MichaelMure/group/subgroup/git-bug",
36 },
37 want: want{
38 path: "MichaelMure/group/subgroup/git-bug",
39 err: nil,
40 },
41 },
42 {
43 name: "default url with git extension",
44 args: args{
45 url: "https://gitlab.com/MichaelMure/git-bug.git",
46 },
47 want: want{
48 path: "MichaelMure/git-bug",
49 err: nil,
50 },
51 },
52 {
53 name: "url with git protocol",
54 args: args{
55 url: "git://gitlab.com/MichaelMure/git-bug.git",
56 },
57 want: want{
58 path: "MichaelMure/git-bug",
59 err: nil,
60 },
61 },
62 {
63 name: "ssh url",
64 args: args{
65 url: "git@gitlab.com/MichaelMure/git-bug.git",
66 },
67 want: want{
68 path: "MichaelMure/git-bug",
69 err: nil,
70 },
71 },
72 }
73
74 for _, tt := range tests {
75 t.Run(tt.name, func(t *testing.T) {
76 path, err := getProjectPath(tt.args.url)
77 assert.Equal(t, tt.want.path, path)
78 assert.Equal(t, tt.want.err, err)
79 })
80 }
81}