github.com/giantswarm/apiextensions/v6@v6.6.0/pkg/crd/renderer_github_test.go (about) 1 //go:build github 2 3 package crd 4 5 import ( 6 "context" 7 "net/http" 8 "os" 9 "testing" 10 11 "github.com/google/go-github/v39/github" 12 "github.com/stretchr/testify/require" 13 "golang.org/x/oauth2" 14 ) 15 16 func buildTestRenderer() Renderer { 17 ctx := context.Background() 18 httpClient := http.DefaultClient 19 if githubToken := os.Getenv("GITHUB_TOKEN"); githubToken != "" { 20 token := oauth2.Token{AccessToken: githubToken} 21 ts := oauth2.StaticTokenSource(&token) 22 httpClient = oauth2.NewClient(ctx, ts) 23 } 24 25 return Renderer{ 26 GithubClient: github.NewClient(httpClient), 27 } 28 } 29 30 func Test_downloadReleaseAssetCRDs(t *testing.T) { 31 renderer := buildTestRenderer() 32 asset := ReleaseAssetFileDefinition{ 33 Owner: "kubernetes-sigs", 34 Repo: "cluster-api", 35 Version: "v0.3.22", 36 Files: []string{"cluster-api-components.yaml"}, 37 Provider: "aws", 38 } 39 crds, err := renderer.downloadReleaseAssetCRDs(context.Background(), asset) 40 require.Nil(t, err, err) 41 require.Len(t, crds, 11) 42 } 43 44 func Test_downloadRepositoryCRDs(t *testing.T) { 45 renderer := buildTestRenderer() 46 crds, err := renderer.downloadRepositoryCRDs(context.Background(), RemoteRepositoryDefinition{ 47 Path: "config/crd", 48 Owner: "giantswarm", 49 Provider: "common", 50 Name: "apiextensions", 51 Reference: "v3.35.0", 52 }) 53 require.Nil(t, err, err) 54 require.Len(t, crds, 30) 55 }