Skip to content

Commit 6d0099b

Browse files
committed
gh unit test
1 parent 0cfd077 commit 6d0099b

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed

pkg/testcoverage/badgestorer/github_test.go

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
package badgestorer_test
22

33
import (
4+
"context"
5+
"os"
46
"testing"
57

8+
"github.com/google/go-github/v56/github"
69
"github.com/stretchr/testify/assert"
710

811
. "github.com/vladopajic/go-test-coverage/v2/pkg/testcoverage/badgestorer"
912
)
1013

14+
const envGitToken = "GITHUB_TOKEN"
15+
1116
func Test_Github_Error(t *testing.T) {
1217
t.Parallel()
1318

@@ -27,3 +32,65 @@ func Test_Github_Error(t *testing.T) {
2732
assert.Error(t, err)
2833
assert.False(t, updated)
2934
}
35+
36+
func Test_Github(t *testing.T) {
37+
t.Parallel()
38+
39+
if testing.Short() {
40+
return
41+
}
42+
43+
if getEnv(envGitToken) == "" {
44+
t.Skipf("%v env variable not set", envGitToken)
45+
return
46+
}
47+
48+
data := []byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 0}
49+
cfg := Git{
50+
Token: getEnv(envGitToken),
51+
Owner: "vladopajic",
52+
Repository: "go-test-coverage",
53+
Branch: "unit-test",
54+
FileName: "badge.svg",
55+
}
56+
s := NewGithub(cfg)
57+
58+
// put badge
59+
updated, err := s.Store(data)
60+
assert.NoError(t, err)
61+
assert.True(t, updated)
62+
63+
// put badge again - no change
64+
updated, err = s.Store(data)
65+
assert.NoError(t, err)
66+
assert.False(t, updated)
67+
68+
// put badge again - expect change
69+
updated, err = s.Store(append(data, byte(1)))
70+
assert.NoError(t, err)
71+
assert.True(t, updated)
72+
73+
deleteFile(t, cfg)
74+
}
75+
76+
func getEnv(key string) string {
77+
value, _ := os.LookupEnv(key)
78+
return value
79+
}
80+
81+
func deleteFile(t *testing.T, cfg Git) {
82+
t.Helper()
83+
84+
client := github.NewClient(nil).WithAuthToken(cfg.Token)
85+
_, _, err := client.Repositories.DeleteFile(
86+
context.Background(),
87+
cfg.Owner,
88+
cfg.Repository,
89+
cfg.FileName,
90+
&github.RepositoryContentFileOptions{
91+
Message: github.String("delete testing badge " + cfg.FileName),
92+
Branch: &cfg.Branch,
93+
},
94+
)
95+
assert.NoError(t, err)
96+
}

0 commit comments

Comments
 (0)