@@ -114,45 +114,41 @@ func TestInFlightChecksumsEnvironmentVariable(t *testing.T) {
114114
115115 for _ , tt := range tests {
116116 t .Run (tt .name , func (t * testing.T ) {
117- // Clean up any previous env var
118- os .Unsetenv ("LEEWAY_ENABLE_IN_FLIGHT_CHECKSUMS" )
119-
120- // Set environment variable if specified
117+ // Set environment variable using t.Setenv for proper cleanup
121118 if tt .envValue != "" {
122- os .Setenv ("LEEWAY_ENABLE_IN_FLIGHT_CHECKSUMS" , tt .envValue )
123- defer os .Unsetenv ("LEEWAY_ENABLE_IN_FLIGHT_CHECKSUMS" )
119+ t .Setenv ("LEEWAY_ENABLE_IN_FLIGHT_CHECKSUMS" , tt .envValue )
124120 }
125121
126122 // Create test command
127123 cmd := & cobra.Command {
128124 Use : "build" ,
129125 Run : func (cmd * cobra.Command , args []string ) {},
130126 }
131-
127+
132128 addBuildFlags (cmd )
133-
129+
134130 // Set flag if specified
135131 if tt .flagSet {
136132 err := cmd .Flags ().Set ("in-flight-checksums" , tt .flagValue )
137133 if err != nil {
138134 t .Fatalf ("failed to set flag: %v" , err )
139135 }
140136 }
141-
142- // Call getBuildOpts which should apply the logic
143- opts , localCache := getBuildOpts ( cmd )
144-
145- if opts = = nil {
146- t .Error ( "expected build options but got nil" )
137+
138+ // Test the actual logic from getBuildOpts
139+ inFlightChecksumsDefault := os . Getenv ( "LEEWAY_ENABLE_IN_FLIGHT_CHECKSUMS" ) == "true"
140+ inFlightChecksums , err := cmd . Flags (). GetBool ( "in-flight-checksums" )
141+ if err ! = nil {
142+ t .Fatalf ( "failed to get flag: %v" , err )
147143 }
148- if localCache == nil {
149- t .Error ("expected local cache but got nil" )
144+ // If flag wasn't explicitly set, use environment variable
145+ if ! cmd .Flags ().Changed ("in-flight-checksums" ) {
146+ inFlightChecksums = inFlightChecksumsDefault
147+ }
148+
149+ if inFlightChecksums != tt .expected {
150+ t .Errorf ("expected in-flight checksums to be %v, got %v" , tt .expected , inFlightChecksums )
150151 }
151-
152- // Note: Since we can't directly inspect opts.InFlightChecksums,
153- // this test verifies the function executes without error.
154- // The actual behavior is validated through integration tests.
155- // To properly test, you may need to expose the option or use integration tests.
156152 })
157153 }
158154}
@@ -244,87 +240,3 @@ func TestGetBuildOptsWithInFlightChecksums(t *testing.T) {
244240 })
245241 }
246242}
247-
248- func TestInFlightChecksumsEnvironmentVariable (t * testing.T ) {
249- tests := []struct {
250- name string
251- envValue string
252- flagValue string
253- flagSet bool
254- expected bool
255- }{
256- {
257- name : "env var enabled, no flag" ,
258- envValue : "true" ,
259- expected : true ,
260- },
261- {
262- name : "env var disabled, no flag" ,
263- envValue : "false" ,
264- expected : false ,
265- },
266- {
267- name : "no env var, no flag" ,
268- envValue : "" ,
269- expected : false ,
270- },
271- {
272- name : "env var enabled, flag explicitly disabled" ,
273- envValue : "true" ,
274- flagValue : "false" ,
275- flagSet : true ,
276- expected : false , // Flag should override
277- },
278- {
279- name : "env var disabled, flag explicitly enabled" ,
280- envValue : "false" ,
281- flagValue : "true" ,
282- flagSet : true ,
283- expected : true , // Flag should override
284- },
285- }
286-
287- for _ , tt := range tests {
288- t .Run (tt .name , func (t * testing.T ) {
289- // Clean up any previous env var
290- os .Unsetenv ("LEEWAY_ENABLE_IN_FLIGHT_CHECKSUMS" )
291-
292- // Set environment variable if specified
293- if tt .envValue != "" {
294- os .Setenv ("LEEWAY_ENABLE_IN_FLIGHT_CHECKSUMS" , tt .envValue )
295- defer os .Unsetenv ("LEEWAY_ENABLE_IN_FLIGHT_CHECKSUMS" )
296- }
297-
298- // Create test command
299- cmd := & cobra.Command {
300- Use : "build" ,
301- Run : func (cmd * cobra.Command , args []string ) {},
302- }
303-
304- addBuildFlags (cmd )
305-
306- // Set flag if specified
307- if tt .flagSet {
308- err := cmd .Flags ().Set ("in-flight-checksums" , tt .flagValue )
309- if err != nil {
310- t .Fatalf ("failed to set flag: %v" , err )
311- }
312- }
313-
314- // Call getBuildOpts which should apply the logic
315- opts , localCache := getBuildOpts (cmd )
316-
317- if opts == nil {
318- t .Error ("expected build options but got nil" )
319- }
320- if localCache == nil {
321- t .Error ("expected local cache but got nil" )
322- }
323-
324- // Note: Since we can't directly inspect opts.InFlightChecksums,
325- // this test verifies the function executes without error.
326- // The actual behavior is validated through integration tests.
327- // To properly test, you may need to expose the option or use integration tests.
328- })
329- }
330- }
0 commit comments