@@ -5,6 +5,7 @@ package crdmanagement_test
55
66import (
77 "context"
8+ "os"
89 "testing"
910
1011 . "github.com/onsi/gomega"
@@ -41,9 +42,10 @@ func Test_AllCRDsReady_NoneAreFiltered(t *testing.T) {
4142 g := NewGomegaWithT (t )
4243
4344 testData := testSetup (t )
45+ g .Expect (testcommon .CheckBundledCRDsDirectory (testData .crdPath )).To (Succeed ())
4446
4547 // load crds
46- goalCRDs , err := testData .crdManager .LoadOperatorCRDs (testData .crdPath , testData .namespace )
48+ goalCRDs , err := testData .crdManager .LoadOperatorCRDs (testData .crdPath , testData .namespace , testData . crdManager . BuildCRDFileFilter ( "*" , nil ) )
4749 g .Expect (err ).ToNot (HaveOccurred ())
4850
4951 readyResources := crdmanagement .MakeCRDMap (goalCRDs )
@@ -63,9 +65,10 @@ func Test_FiveCRDsReady_AllOthersAreFiltered(t *testing.T) {
6365 g := NewGomegaWithT (t )
6466
6567 testData := testSetup (t )
68+ g .Expect (testcommon .CheckBundledCRDsDirectory (testData .crdPath )).To (Succeed ())
6669
6770 // load crds
68- goalCRDs , err := testData .crdManager .LoadOperatorCRDs (testData .crdPath , testData .namespace )
71+ goalCRDs , err := testData .crdManager .LoadOperatorCRDs (testData .crdPath , testData .namespace , testData . crdManager . BuildCRDFileFilter ( "*" , nil ) )
6972 g .Expect (err ).ToNot (HaveOccurred ())
7073
7174 // Filter all but the first 5 CRDs
@@ -88,6 +91,54 @@ func Test_FiveCRDsReady_AllOthersAreFiltered(t *testing.T) {
8891 g .Expect (objs ).To (HaveLen (5 ))
8992}
9093
94+ // This test requires that the task target `bundle-crds` has been run
95+ func Test_ResourceGroupPattern_AllOthersAreFiltered (t * testing.T ) {
96+ t .Parallel ()
97+ g := NewGomegaWithT (t )
98+
99+ testData := testSetup (t )
100+ g .Expect (testcommon .CheckBundledCRDsDirectory (testData .crdPath )).To (Succeed ())
101+
102+ // load crds
103+ shouldLoad := testData .crdManager .BuildCRDFileFilter ("resources.azure.com/ResourceGroup" , nil )
104+ goalCRDs , err := testData .crdManager .LoadOperatorCRDs (testData .crdPath , testData .namespace , shouldLoad )
105+ g .Expect (err ).ToNot (HaveOccurred ())
106+
107+ readyResources := crdmanagement .MakeCRDMap (goalCRDs )
108+
109+ knownTypes , err := testData .getKnownStorageTypes ()
110+ g .Expect (err ).ToNot (HaveOccurred ())
111+
112+ // Filter the types to register
113+ objs , err := crdmanagement .FilterStorageTypesByReadyCRDs (testData .logger , testData .s .GetScheme (), readyResources , knownTypes )
114+ g .Expect (err ).ToNot (HaveOccurred ())
115+ g .Expect (objs ).To (HaveLen (1 ))
116+ }
117+
118+ // This test requires that the task target `bundle-crds` has been run
119+ func Test_AllCRDFilenames_MatchExpectedPattern (t * testing.T ) {
120+ t .Parallel ()
121+ g := NewGomegaWithT (t )
122+
123+ testData := testSetup (t )
124+ g .Expect (testcommon .CheckBundledCRDsDirectory (testData .crdPath )).To (Succeed ())
125+
126+ entries , err := os .ReadDir (testData .crdPath )
127+ g .Expect (err ).ToNot (HaveOccurred ())
128+ g .Expect (entries ).ToNot (BeEmpty ())
129+
130+ for _ , entry := range entries {
131+ if entry .IsDir () {
132+ continue
133+ }
134+ filename := entry .Name ()
135+
136+ // Every file should have the expected prefix and .yaml suffix
137+ g .Expect (filename ).To (HavePrefix (crdmanagement .CRDFilePrefix ), "file %q missing expected prefix" , filename )
138+ g .Expect (filename ).To (HaveSuffix (".yaml" ), "file %q missing .yaml suffix" , filename )
139+ }
140+ }
141+
91142/*
92143 * Helpers
93144 */
0 commit comments