11package mock
22
33import (
4+ "embed"
45 "io"
56 "log"
67 "testing"
@@ -22,8 +23,12 @@ import (
2223 "k8s.io/client-go/rest"
2324 metricsfake "k8s.io/metrics/pkg/client/clientset/versioned/fake"
2425 "k8s.io/utils/ptr"
26+ "sigs.k8s.io/yaml"
2527)
2628
29+ //go:embed testdata/crds.yaml
30+ var testDataFS embed.FS
31+
2732func SetupMockDataCollector (t * testing.T ) * data_collector.DataCollector {
2833 t .Helper ()
2934
@@ -70,27 +75,15 @@ func SetupMockDataCollector(t *testing.T) *data_collector.DataCollector {
7075 Host : "https://mock-k8s-server" ,
7176 }
7277
73- // Create a CRD clientset (using the real clientset, but not actually connecting)
74- crd := & apiextensionsv1.CustomResourceDefinition {
75- ObjectMeta : metav1.ObjectMeta {
76- Name : "testcrd.example.com" ,
77- },
78- Spec : apiextensionsv1.CustomResourceDefinitionSpec {
79- Group : "example.com" ,
80- Names : apiextensionsv1.CustomResourceDefinitionNames {
81- Kind : "TestCRD" ,
82- Plural : "testcrds" ,
83- Singular : "testcrd" ,
84- },
85- Scope : apiextensionsv1 .NamespaceScoped ,
86- Versions : []apiextensionsv1.CustomResourceDefinitionVersion {
87- {
88- Name : "v1" ,
89- Served : true ,
90- Storage : true ,
91- },
92- },
93- },
78+ // Use embedded file
79+ data , err := testDataFS .ReadFile ("testdata/crds.yaml" )
80+ if err != nil {
81+ t .Fatalf ("failed to read embedded testdata/crds.yaml: %v" , err )
82+ }
83+
84+ crd := & apiextensionsv1.CustomResourceDefinition {}
85+ if err := yaml .Unmarshal (data , crd ); err != nil {
86+ t .Fatalf ("failed to unmarshal CRD from testdata/crds.yaml: %v" , err )
9487 }
9588
9689 crdClient := apiextensionsfake .NewClientset (crd )
@@ -100,8 +93,6 @@ func SetupMockDataCollector(t *testing.T) *data_collector.DataCollector {
10093 defer ctrl .Finish ()
10194 helmClient := mockHelmClient .NewMockClient (ctrl )
10295
103-
104-
10596 helmClient .EXPECT ().GetSettings ().Return (& cli.EnvSettings {}).AnyTimes ()
10697 var mockedRelease = release.Release {
10798 Name : "test" ,
0 commit comments