Skip to content

Commit 74d71ed

Browse files
committed
Refactor some duplication in tests
1 parent 0b6993f commit 74d71ed

File tree

1 file changed

+22
-18
lines changed

1 file changed

+22
-18
lines changed

pkg/github/releases_test.go

+22-18
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@ const (
2222
repo = "slsa-provenance-action"
2323
)
2424

25+
const (
26+
releasesAPI = "https://api.github.com/repos/philips-labs/slsa-provenance-action/releases"
27+
firstRelease = "v0.1.1"
28+
assetsURLTemplate = "GET: %s/assets/%d"
29+
)
30+
2531
var githubToken string
2632

2733
func tokenRetriever() string {
@@ -44,18 +50,16 @@ func TestFetchRelease(t *testing.T) {
4450
assert := assert.New(t)
4551
ctx := context.Background()
4652

47-
api := "https://api.github.com/repos/philips-labs/slsa-provenance-action/releases"
48-
4953
client, requestLogger := createReleaseClient(ctx)
50-
release, err := client.FetchRelease(ctx, owner, repo, "v0.1.1")
54+
release, err := client.FetchRelease(ctx, owner, repo, firstRelease)
5155

5256
if !assert.NoError(err) && !assert.NotNil(release) {
5357
return
5458
}
5559
assert.Equal(int64(51517953), release.GetID())
56-
assert.Equal("v0.1.1", release.GetTagName())
60+
assert.Equal(firstRelease, release.GetTagName())
5761
assert.Len(release.Assets, 7)
58-
assert.Equal(fmt.Sprintf("GET: %s?per_page=20\nGET: %s?page=2&per_page=20\n", api, api), requestLogger.String())
62+
assert.Equal(fmt.Sprintf("GET: %s?per_page=20\nGET: %s?page=2&per_page=20\n", releasesAPI, releasesAPI), requestLogger.String())
5963
}
6064

6165
func TestDownloadReleaseAssets(t *testing.T) {
@@ -66,8 +70,8 @@ func TestDownloadReleaseAssets(t *testing.T) {
6670

6771
ctx := context.Background()
6872

69-
api := "https://api.github.com/repos/philips-labs/slsa-provenance-action/releases"
70-
version := "v0.1.1"
73+
api := releasesAPI
74+
version := firstRelease
7175
client, requestLogger := createReleaseClient(ctx)
7276
release, _, err := client.Repositories.GetReleaseByTag(ctx, owner, repo, version)
7377
if !assert.NoError(err) || !assert.NotNil(release) {
@@ -87,13 +91,13 @@ func TestDownloadReleaseAssets(t *testing.T) {
8791
}
8892
assert.NotEmpty(requestLogger)
8993
assert.Contains(requestLogger.String(), fmt.Sprintf("GET: %s/%d/assets?per_page=10", api, release.GetID()))
90-
assert.Contains(requestLogger.String(), fmt.Sprintf("GET: %s/assets/%d", api, assets[0].GetID()))
91-
assert.Contains(requestLogger.String(), fmt.Sprintf("GET: %s/assets/%d", api, assets[1].GetID()))
92-
assert.Contains(requestLogger.String(), fmt.Sprintf("GET: %s/assets/%d", api, assets[2].GetID()))
93-
assert.Contains(requestLogger.String(), fmt.Sprintf("GET: %s/assets/%d", api, assets[3].GetID()))
94-
assert.Contains(requestLogger.String(), fmt.Sprintf("GET: %s/assets/%d", api, assets[4].GetID()))
95-
assert.Contains(requestLogger.String(), fmt.Sprintf("GET: %s/assets/%d", api, assets[5].GetID()))
96-
assert.Contains(requestLogger.String(), fmt.Sprintf("GET: %s/assets/%d", api, assets[6].GetID()))
94+
assert.Contains(requestLogger.String(), fmt.Sprintf(assetsURLTemplate, api, assets[0].GetID()))
95+
assert.Contains(requestLogger.String(), fmt.Sprintf(assetsURLTemplate, api, assets[1].GetID()))
96+
assert.Contains(requestLogger.String(), fmt.Sprintf(assetsURLTemplate, api, assets[2].GetID()))
97+
assert.Contains(requestLogger.String(), fmt.Sprintf(assetsURLTemplate, api, assets[3].GetID()))
98+
assert.Contains(requestLogger.String(), fmt.Sprintf(assetsURLTemplate, api, assets[4].GetID()))
99+
assert.Contains(requestLogger.String(), fmt.Sprintf(assetsURLTemplate, api, assets[5].GetID()))
100+
assert.Contains(requestLogger.String(), fmt.Sprintf(assetsURLTemplate, api, assets[6].GetID()))
97101
assert.Contains(requestLogger.String(), "GET: https://objects.githubusercontent.com/github-production-release-asset")
98102

99103
defer func() {
@@ -165,7 +169,7 @@ func TestListReleaseAssets(t *testing.T) {
165169
assert := assert.New(t)
166170
ctx := context.Background()
167171

168-
api := "https://api.github.com/repos/philips-labs/slsa-provenance-action/releases/51517953/assets"
172+
api := releasesAPI + "/51517953/assets"
169173

170174
client, requestLogger := createReleaseClient(ctx)
171175
opt := gh.ListOptions{PerPage: 4}
@@ -185,17 +189,17 @@ func TestListReleaseAssets(t *testing.T) {
185189
assert.Len(assets, 7)
186190

187191
_, err = client.ListReleaseAssets(ctx, owner, repo, 0, opt)
188-
assert.EqualError(err, "failed to list release assets: GET https://api.github.com/repos/philips-labs/slsa-provenance-action/releases/0/assets?per_page=10: 404 Not Found []")
192+
assert.EqualError(err, "failed to list release assets: GET "+releasesAPI+"/0/assets?per_page=10: 404 Not Found []")
189193
}
190194

191195
func TestListReleases(t *testing.T) {
192196
assert := assert.New(t)
193197
ctx := context.Background()
194198

195-
api := "https://api.github.com/repos/philips-labs/slsa-provenance-action/releases"
199+
api := releasesAPI
196200

197201
client, requestLogger := createReleaseClient(ctx)
198-
opt := gh.ListOptions{PerPage: 20}
202+
opt := gh.ListOptions{PerPage: 25}
199203
releases, err := client.ListReleases(ctx, owner, repo, opt)
200204
if !assert.NoError(err) {
201205
return

0 commit comments

Comments
 (0)