From 34077fea916c84b603b47e1d803183aa8b270e3e Mon Sep 17 00:00:00 2001 From: Evsyukov Denis Date: Sun, 10 Dec 2023 23:40:56 +0300 Subject: [PATCH] feat: draft test for downloadAndExtract --- gobrew.go | 2 +- helpers.go | 4 +- helpers_test.go | 35 ++++++++++++++++-- ...chive.tar.gz => go1.9.darwin-arm64.tar.gz} | Bin 4 files changed, 35 insertions(+), 6 deletions(-) rename testdata/{archive.tar.gz => go1.9.darwin-arm64.tar.gz} (100%) diff --git a/gobrew.go b/gobrew.go index b1bb38c..f0037db 100644 --- a/gobrew.go +++ b/gobrew.go @@ -297,7 +297,7 @@ func (gb *GoBrew) Install(version string) string { gb.mkDirs(version) color.Infof("==> [Info] Downloading version: %s\n", version) - gb.downloadAndExtract(version) + gb.downloadAndExtract(defaultRegistryPath, version) gb.cleanDownloadsDir() color.Successf("==> [Success] Downloaded version: %s\n", version) return version diff --git a/helpers.go b/helpers.go index d94692b..ba787d5 100644 --- a/helpers.go +++ b/helpers.go @@ -319,10 +319,10 @@ func (gb *GoBrew) getVersionDir(version string) string { return filepath.Join(gb.versionsDir, version) } -func (gb *GoBrew) downloadAndExtract(version string) { +func (gb *GoBrew) downloadAndExtract(url, version string) { tarName := "go" + version + "." + gb.getArch() + tarNameExt - registryPath := defaultRegistryPath + registryPath := url if p := os.Getenv("GOBREW_REGISTRY"); p != "" { registryPath = p } diff --git a/helpers_test.go b/helpers_test.go index 1c60f52..0d01218 100644 --- a/helpers_test.go +++ b/helpers_test.go @@ -153,9 +153,9 @@ func TestGoBrew_extract(t *testing.T) { wantErr bool }{ { - name: "arhive.tar.gz", + name: "go1.9.darwin-arm64.tar.gz", args: args{ - srcTar: "testdata/archive.tar.gz", + srcTar: "testdata/go1.9.darwin-arm64.tar.gz", dstDir: "tmp", }, wantErr: false, @@ -204,11 +204,40 @@ func Test_doRequest(t *testing.T) { t.Run(tt.name, func(t *testing.T) { t.Parallel() ts := httptest.NewServer(http.FileServer(http.Dir("testdata"))) - urlGet, _ := url.JoinPath(ts.URL, tt.args.url) defer ts.Close() + urlGet, _ := url.JoinPath(ts.URL, tt.args.url) if gotData := doRequest(urlGet); !reflect.DeepEqual(gotData, tt.wantData) { t.Errorf("doRequest() = %s, want %s", gotData, tt.wantData) } }) } } + +func TestGoBrew_downloadAndExtract(t *testing.T) { + t.Skip() + t.Parallel() + type args struct { + version string + } + tests := []struct { + name string + args args + }{ + { + name: "", + args: args{ + version: "1.9", + }, + }, + } + for _, tt := range tests { + tt := tt + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + ts := httptest.NewServer(http.FileServer(http.Dir("testdata"))) + defer ts.Close() + gb := NewGoBrew(t.TempDir()) + gb.downloadAndExtract(ts.URL+"/", tt.args.version) + }) + } +} diff --git a/testdata/archive.tar.gz b/testdata/go1.9.darwin-arm64.tar.gz similarity index 100% rename from testdata/archive.tar.gz rename to testdata/go1.9.darwin-arm64.tar.gz