Skip to content

Commit 17a664d

Browse files
author
Scott Schulthess
committed
add git test
1 parent 46d5367 commit 17a664d

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed

git_test.go

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
package resource
2+
3+
import (
4+
"bytes"
5+
"net/url"
6+
"os"
7+
"testing"
8+
9+
"github.com/stretchr/testify/assert"
10+
)
11+
12+
func TestNewGitClient_SetsEnvVars(t *testing.T) {
13+
source := &Source{
14+
AccessToken: "token",
15+
PrivateKey: "privateKey",
16+
UseGitHubApp: false,
17+
ApplicationID: 123,
18+
GithubOrganization: "org",
19+
SkipSSLVerification: true,
20+
DisableGitLFS: true,
21+
}
22+
23+
var output bytes.Buffer
24+
client, err := NewGitClient(source, "/tmp", &output)
25+
assert.NoError(t, err)
26+
assert.Equal(t, source.AccessToken, client.AccessToken)
27+
assert.Equal(t, source.PrivateKey, client.PrivateKey)
28+
assert.Equal(t, source.UseGitHubApp, client.UseGithubApp)
29+
assert.Equal(t, source.ApplicationID, client.ApplicationID)
30+
assert.Equal(t, source.GithubOrganization, client.GithubOrganization)
31+
assert.Equal(t, "/tmp", client.Directory)
32+
33+
assert.Equal(t, "true", os.Getenv("GIT_SSL_NO_VERIFY"))
34+
assert.Equal(t, "true", os.Getenv("GIT_LFS_SKIP_SMUDGE"))
35+
}
36+
37+
func TestEndpoint_GithubAppDisabled(t *testing.T) {
38+
client := &GitClient{
39+
AccessToken: "token",
40+
UseGithubApp: false,
41+
}
42+
43+
endpoint, err := client.Endpoint("https://github.com/user/repo.git")
44+
assert.NoError(t, err)
45+
46+
parsed, _ := url.Parse(endpoint)
47+
user := parsed.User.Username()
48+
pass, _ := parsed.User.Password()
49+
assert.Equal(t, "x-oauth-basic", user)
50+
assert.Equal(t, "token", pass)
51+
}
52+
53+
func TestEndpoint_GithubAppEnabled(t *testing.T) {
54+
client := &GitClient{
55+
AccessToken: "token",
56+
UseGithubApp: true,
57+
}
58+
59+
endpoint, err := client.Endpoint("https://github.com/user/repo.git")
60+
assert.NoError(t, err)
61+
62+
parsed, _ := url.Parse(endpoint)
63+
user := parsed.User.Username()
64+
pass, _ := parsed.User.Password()
65+
assert.Equal(t, "", user)
66+
assert.Equal(t, "", pass)
67+
}
68+
69+
func TestEndpoint_InvalidURL(t *testing.T) {
70+
client := &GitClient{}
71+
_, err := client.Endpoint("://invalid-url")
72+
assert.Error(t, err)
73+
assert.Contains(t, err.Error(), "failed to parse commit url")
74+
}

0 commit comments

Comments
 (0)