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  }