Created
August 5, 2026 15:33
-
-
Save quentinalbertone/1a2541156af9f2ff09042e1ede549a60 to your computer and use it in GitHub Desktop.
fake http client
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package main | |
| import ( | |
| "bytes" | |
| "context" | |
| "encoding/json" | |
| "fmt" | |
| "io" | |
| "net/http" | |
| "testing" | |
| egoscale "github.com/exoscale/egoscale/v3" | |
| "github.com/exoscale/egoscale/v3/credentials" | |
| ) | |
| type fakeSKSVersionsTransport struct { | |
| versions []string | |
| } | |
| func (t *fakeSKSVersionsTransport) RoundTrip(req *http.Request) (*http.Response, error) { | |
| body, err := json.Marshal(map[string]any{ | |
| "sks-cluster-versions": t.versions, | |
| }) | |
| if err != nil { | |
| return nil, err | |
| } | |
| return &http.Response{ | |
| StatusCode: http.StatusOK, | |
| Body: io.NopCloser(bytes.NewReader(body)), | |
| Header: make(http.Header), | |
| }, nil | |
| } | |
| func TestRun(t *testing.T) { | |
| fakeVersions := []string{"0.0.0", "1.1.1", "2.2.2"} | |
| fakeHTTPClient := &http.Client{ | |
| Transport: &fakeSKSVersionsTransport{versions: fakeVersions}, | |
| } | |
| client, err := egoscale.NewClient( | |
| credentials.NewStaticCredentials("test-key", "test-secret"), | |
| egoscale.ClientOptWithEndpoint(egoscale.CHGva2), | |
| egoscale.ClientOptWithHTTPClient(fakeHTTPClient), | |
| ) | |
| if err != nil { | |
| t.Fatalf("failed to create egoscale client: %v", err) | |
| } | |
| resp, err := client.ListSKSClusterVersions(context.Background()) | |
| if err != nil { | |
| t.Fatalf("ListSKSClusterVersions returned an error: %v", err) | |
| } | |
| for _, v := range resp.SKSClusterVersions { | |
| fmt.Println(v) | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment