@@ -25,22 +25,38 @@ import (
2525 "github.com/stretchr/testify/assert"
2626)
2727
28- // TestCRDs enumerates all CRD YAML files, and generates them in each language.
29- func TestCRDs (t * testing.T ) {
28+ var languages = []string {"dotnet" , "go" , "nodejs" , "python" }
29+
30+ const gkeManagedCertsUrl = "https://raw.githubusercontent.com/GoogleCloudPlatform/gke-managed-certs/master/deploy/managedcertificates-crd.yaml"
31+
32+ // execCrd2Pulumi runs the crd2pulumi binary in a temporary directory
33+ func execCrd2Pulumi (t * testing.T , lang , path string ) {
34+ tmpdir , err := ioutil .TempDir ("" , "" )
35+ assert .Nil (t , err , "expected to create a temp dir for the CRD output" )
36+ defer os .RemoveAll (tmpdir )
37+ langFlag := "--" + lang + "Path"
38+ t .Logf ("crd2pulumi %s=%s %s: running" , langFlag , tmpdir , path )
39+ crdCmd := exec .Command ("crd2pulumi" , langFlag , tmpdir , "--force" , path )
40+ crdOut , err := crdCmd .CombinedOutput ()
41+ t .Logf ("crd2pulumi %s=%s %s: output=\n %s" , langFlag , tmpdir , path , crdOut )
42+ assert .Nil (t , err , "expected crd2pulumi for '%s=%s %s' to succeed" , langFlag , tmpdir , path )
43+ }
44+
45+ // TestCRDsFromFile enumerates all CRD YAML files, and generates them in each language.
46+ func TestCRDsFromFile (t * testing.T ) {
3047 filepath .WalkDir ("crds" , func (path string , d fs.DirEntry , err error ) error {
3148 if ! d .IsDir () && (filepath .Ext (path ) == ".yml" || filepath .Ext (path ) == ".yaml" ) {
32- for _ , lang := range []string {"dotnet" , "go" , "nodejs" , "python" } {
33- tmpdir , err := ioutil .TempDir ("" , "" )
34- assert .Nil (t , err , "expected to create a temp dir for the CRD output" )
35- defer os .RemoveAll (tmpdir )
36- langFlag := "--" + lang + "Path"
37- t .Logf ("crd2pulumi %s=%s %s: running" , langFlag , tmpdir , path )
38- crdCmd := exec .Command ("crd2pulumi" , langFlag , tmpdir , "--force" , path )
39- crdOut , err := crdCmd .CombinedOutput ()
40- t .Logf ("crd2pulumi %s=%s %s: output=\n %s" , langFlag , tmpdir , path , crdOut )
41- assert .Nil (t , err , "expected crd2pulumi for '%s=%s %s' to succeed" , langFlag , tmpdir , path )
49+ for _ , lang := range languages {
50+ execCrd2Pulumi (t , lang , path )
4251 }
4352 }
4453 return nil
4554 })
4655}
56+
57+ // TestCRDsFromUrl pulls the CRD YAML file from a URL and generates it in each language
58+ func TestCRDsFromUrl (t * testing.T ) {
59+ for _ , lang := range languages {
60+ execCrd2Pulumi (t , lang , gkeManagedCertsUrl )
61+ }
62+ }
0 commit comments