@@ -18,15 +18,13 @@ package scaffolds
18
18
19
19
import (
20
20
"os"
21
+ "path/filepath"
21
22
"testing"
22
23
23
- "github.com/spf13/afero"
24
- "github.com/stretchr/testify/assert"
25
- "github.com/stretchr/testify/require"
24
+ . "github.com/onsi/gomega"
26
25
27
26
"sigs.k8s.io/kubebuilder/v4/pkg/config"
28
27
v3 "sigs.k8s.io/kubebuilder/v4/pkg/config/v3"
29
- "sigs.k8s.io/kubebuilder/v4/pkg/machinery"
30
28
"sigs.k8s.io/kubebuilder/v4/pkg/model/resource"
31
29
)
32
30
@@ -108,27 +106,24 @@ func TestAPIScaffolder_discoverFeatureGates(t *testing.T) {
108
106
109
107
for _ , tt := range tests {
110
108
t .Run (tt .name , func (t * testing.T ) {
111
- // Create a mock filesystem
112
- fs := afero .NewMemMapFs ()
113
-
114
- scaffolder := & apiScaffolder {
115
- config : tt .config ,
116
- resource : tt .resource ,
117
- fs : machinery.Filesystem {FS : fs },
109
+ scaffolder := NewAPIScaffolder (tt .config , tt .resource , false )
110
+ apiScaffolder , ok := scaffolder .(* apiScaffolder )
111
+ if ! ok {
112
+ t .Fatal ("Expected apiScaffolder type" )
118
113
}
119
114
120
- gates := scaffolder .discoverFeatureGates ()
115
+ gates := apiScaffolder .discoverFeatureGates ()
121
116
122
117
// In a real test environment, we'd create test files with feature gates
123
118
// For now, we just verify the function doesn't panic and returns a slice
124
- assert . NotNil ( t , gates , "Expected gates slice to be returned" )
125
- assert . IsType ( t , []string {}, gates , "Expected gates to be a string slice" )
119
+ Expect ( gates ). NotTo ( BeNil () )
120
+ Expect ( gates ). To ( BeAssignableToTypeOf ( []string {}) )
126
121
})
127
122
}
128
123
}
129
124
130
125
func TestAPIScaffolder_NewAPIScaffolder (t * testing.T ) {
131
- cfg := & mockConfig {}
126
+ cfg := v3 . New ()
132
127
res := resource.Resource {
133
128
GVK : resource.GVK {
134
129
Group : "example.com" ,
@@ -138,45 +133,46 @@ func TestAPIScaffolder_NewAPIScaffolder(t *testing.T) {
138
133
}
139
134
140
135
scaffolder := NewAPIScaffolder (cfg , res , false )
141
- require . NotNil ( t , scaffolder , "Expected scaffolder to be created" )
136
+ Expect ( scaffolder ). NotTo ( BeNil () )
142
137
143
138
apiScaffolder , ok := scaffolder .(* apiScaffolder )
144
- require . True ( t , ok , "Expected apiScaffolder type" )
139
+ Expect ( ok ). To ( BeTrue () )
145
140
146
- assert . Equal ( t , cfg , apiScaffolder .config )
147
- assert . Equal ( t , res , apiScaffolder .resource )
148
- assert . False ( t , apiScaffolder .force )
141
+ Expect ( apiScaffolder .config ). To ( Equal ( cfg ) )
142
+ Expect ( apiScaffolder .resource ). To ( Equal ( res ) )
143
+ Expect ( apiScaffolder .force ). To ( BeFalse () )
149
144
}
150
145
151
146
func TestAPIScaffolder_discoverFeatureGates_Testdata (t * testing.T ) {
152
- // Test with actual testdata to ensure commented markers are ignored
153
- scaffolder := & apiScaffolder {
154
- config : v3 .New (),
155
- resource : resource.Resource {
156
- GVK : resource.GVK {
157
- Group : "crew" ,
158
- },
159
- },
160
- fs : machinery.Filesystem {
161
- FS : afero .NewOsFs (),
162
- },
163
- }
164
-
165
- // Change to the testdata directory
166
- originalDir , err := os .Getwd ()
147
+ // Change to testdata directory
148
+ oldDir , err := os .Getwd ()
167
149
if err != nil {
168
150
t .Fatalf ("Failed to get current directory: %v" , err )
169
151
}
170
- defer os .Chdir (originalDir )
152
+ defer os .Chdir (oldDir )
171
153
172
- if err := os .Chdir ("testdata/project-v4" ); err != nil {
173
- t .Skipf ("Skipping test - testdata directory not available: %v" , err )
154
+ // Change to testdata/project-v4 directory
155
+ testdataDir := filepath .Join ("testdata" , "project-v4" )
156
+ if err := os .Chdir (testdataDir ); err != nil {
157
+ t .Fatalf ("Failed to change to testdata directory: %v" , err )
174
158
}
175
159
176
- // Discover feature gates from the testdata
177
- featureGates := scaffolder .discoverFeatureGates ()
160
+ cfg := v3 .New ()
161
+ res := resource.Resource {
162
+ GVK : resource.GVK {
163
+ Group : "crew.example.com" ,
164
+ Version : "v1" ,
165
+ Kind : "Captain" ,
166
+ },
167
+ }
168
+
169
+ scaffolder := NewAPIScaffolder (cfg , res , false )
170
+ apiScaffolder , ok := scaffolder .(* apiScaffolder )
171
+ if ! ok {
172
+ t .Fatal ("Expected apiScaffolder type" )
173
+ }
178
174
179
- // Should not find any feature gates since they're all commented out
175
+ featureGates := apiScaffolder . discoverFeatureGates ()
180
176
if len (featureGates ) > 0 {
181
177
t .Errorf ("Expected no feature gates from testdata, but found %d: %v" , len (featureGates ), featureGates )
182
178
}
0 commit comments