1- package github
1+ package github_test
22
33import (
44 "context"
@@ -11,6 +11,7 @@ import (
1111 "testing"
1212 "time"
1313
14+ "github.com/gruntwork-io/terragrunt/internal/github"
1415 "github.com/gruntwork-io/terragrunt/pkg/log"
1516 "github.com/gruntwork-io/terragrunt/test/helpers"
1617 "github.com/stretchr/testify/assert"
@@ -20,12 +21,10 @@ import (
2021func TestNewClient (t * testing.T ) {
2122 t .Parallel ()
2223
23- client := NewGitHubAPIClient ()
24+ client := github . NewGitHubAPIClient ()
2425 require .NotNil (t , client )
2526
26- assert .Equal (t , "https://api.github.com" , client .baseURL )
27- assert .NotNil (t , client .httpClient )
28- assert .NotNil (t , client .cache )
27+ assert .NotNil (t , client )
2928}
3029
3130func TestNewClientWithOptions (t * testing.T ) {
@@ -34,13 +33,12 @@ func TestNewClientWithOptions(t *testing.T) {
3433 customHTTPClient := & http.Client {Timeout : 10 * time .Second }
3534 customBaseURL := "https://custom.github.com"
3635
37- client := NewGitHubAPIClient (
38- WithHTTPClient (customHTTPClient ),
39- WithBaseURL (customBaseURL ),
36+ client := github . NewGitHubAPIClient (
37+ github . WithHTTPClient (customHTTPClient ),
38+ github . WithBaseURL (customBaseURL ),
4039 )
4140
42- assert .Equal (t , customHTTPClient , client .httpClient )
43- assert .Equal (t , customBaseURL , client .baseURL )
41+ assert .NotNil (t , client )
4442}
4543
4644func TestGetLatestRelease (t * testing.T ) {
@@ -62,7 +60,7 @@ func TestGetLatestRelease(t *testing.T) {
6260 }))
6361 defer server .Close ()
6462
65- client := NewGitHubAPIClient (WithBaseURL (server .URL ))
63+ client := github . NewGitHubAPIClient (github . WithBaseURL (server .URL ))
6664
6765 release , err := client .GetLatestRelease (t .Context (), "owner/repo" )
6866 require .NoError (t , err )
@@ -83,7 +81,7 @@ func TestGetLatestReleaseTag(t *testing.T) {
8381 }))
8482 defer server .Close ()
8583
86- client := NewGitHubAPIClient (WithBaseURL (server .URL ))
84+ client := github . NewGitHubAPIClient (github . WithBaseURL (server .URL ))
8785
8886 tag , err := client .GetLatestReleaseTag (t .Context (), "owner/repo" )
8987 require .NoError (t , err )
@@ -94,7 +92,7 @@ func TestGetLatestReleaseTag(t *testing.T) {
9492func TestGetLatestReleaseInvalidRepository (t * testing.T ) {
9593 t .Parallel ()
9694
97- client := NewGitHubAPIClient ()
95+ client := github . NewGitHubAPIClient ()
9896
9997 testCases := []string {
10098 "" ,
@@ -120,7 +118,7 @@ func TestGetLatestReleaseHTTPError(t *testing.T) {
120118 }))
121119 defer server .Close ()
122120
123- client := NewGitHubAPIClient (WithBaseURL (server .URL ))
121+ client := github . NewGitHubAPIClient (github . WithBaseURL (server .URL ))
124122
125123 _ , err := client .GetLatestRelease (t .Context (), "owner/repo" )
126124 require .Error (t , err )
@@ -138,7 +136,7 @@ func TestGetLatestReleaseEmptyTag(t *testing.T) {
138136 }))
139137 defer server .Close ()
140138
141- client := NewGitHubAPIClient (WithBaseURL (server .URL ))
139+ client := github . NewGitHubAPIClient (github . WithBaseURL (server .URL ))
142140
143141 _ , err := client .GetLatestRelease (t .Context (), "owner/repo" )
144142 require .Error (t , err )
@@ -158,7 +156,7 @@ func TestGetLatestReleaseCaching(t *testing.T) {
158156 }))
159157 defer server .Close ()
160158
161- client := NewGitHubAPIClient (WithBaseURL (server .URL ))
159+ client := github . NewGitHubAPIClient (github . WithBaseURL (server .URL ))
162160
163161 // First call should hit the server
164162 tag1 , err := client .GetLatestReleaseTag (t .Context (), "owner/repo" )
@@ -180,51 +178,42 @@ func TestGetLatestReleaseCaching(t *testing.T) {
180178func TestNewGitHubReleasesDownloadClient (t * testing.T ) {
181179 t .Parallel ()
182180
183- client := NewGitHubReleasesDownloadClient ()
184- if client == nil {
185- t .Fatal ("NewGitHubReleasesDownloadClient() returned nil" )
186- }
187-
188- if client .logger != nil {
189- t .Error ("Expected logger to be nil by default" )
190- }
181+ client := github .NewGitHubReleasesDownloadClient ()
182+ require .NotNil (t , client )
191183}
192184
193185func TestNewGitHubReleasesDownloadClientWithOptions (t * testing.T ) {
194186 t .Parallel ()
195187
196188 logger := log .New ()
197- client := NewGitHubReleasesDownloadClient (WithLogger (logger ))
198-
199- if client .logger != logger {
200- t .Error ("Expected custom logger to be set" )
201- }
189+ client := github .NewGitHubReleasesDownloadClient (github .WithLogger (logger ))
190+ require .NotNil (t , client )
202191}
203192
204193func TestDownloadReleaseAssetsValidation (t * testing.T ) {
205194 t .Parallel ()
206195
207- client := NewGitHubReleasesDownloadClient ()
196+ client := github . NewGitHubReleasesDownloadClient ()
208197 ctx := context .Background ()
209198
210199 testCases := []struct {
211200 name string
212- assets * ReleaseAssets
201+ assets * github. ReleaseAssets
213202 errorMsg string
214203 }{
215204 {
216205 name : "empty repository" ,
217- assets : & ReleaseAssets {Repository : "" , PackageFile : "/tmp/package.zip" },
206+ assets : & github. ReleaseAssets {Repository : "" , PackageFile : "/tmp/package.zip" },
218207 errorMsg : "repository cannot be empty" ,
219208 },
220209 {
221210 name : "empty package file" ,
222- assets : & ReleaseAssets {Repository : "owner/repo" , PackageFile : "" },
211+ assets : & github. ReleaseAssets {Repository : "owner/repo" , PackageFile : "" },
223212 errorMsg : "package file path cannot be empty" ,
224213 },
225214 {
226215 name : "missing version for GitHub repo" ,
227- assets : & ReleaseAssets {Repository : "owner/repo" , Version : "" , PackageFile : "/tmp/package.zip" },
216+ assets : & github. ReleaseAssets {Repository : "owner/repo" , Version : "" , PackageFile : "/tmp/package.zip" },
228217 errorMsg : "version cannot be empty for GitHub repository downloads" ,
229218 },
230219 }
@@ -264,9 +253,9 @@ func TestDownloadReleaseAssetsGitHubRelease(t *testing.T) {
264253 defer server .Close ()
265254
266255 // Use direct URL approach for testing since mock servers are complex to set up for GitHub releases format
267- client := NewGitHubReleasesDownloadClient ()
256+ client := github . NewGitHubReleasesDownloadClient ()
268257
269- assets := & ReleaseAssets {
258+ assets := & github. ReleaseAssets {
270259 Repository : server .URL + "/package.zip" , // Direct URL
271260 PackageFile : filepath .Join (tempDir , "package.zip" ),
272261 // Direct URLs don't use checksum files
@@ -297,9 +286,9 @@ func TestDownloadReleaseAssetsDirectURL(t *testing.T) {
297286 }))
298287 defer server .Close ()
299288
300- client := NewGitHubReleasesDownloadClient ()
289+ client := github . NewGitHubReleasesDownloadClient ()
301290
302- assets := & ReleaseAssets {
291+ assets := & github. ReleaseAssets {
303292 Repository : server .URL + "/direct-download.zip" ,
304293 PackageFile : filepath .Join (tempDir , "direct.zip" ),
305294 // Note: No Version, ChecksumFile, or ChecksumSigFile for direct URLs
0 commit comments