chore: return empty slices instead of nil for safety

Christian Rocha created

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>

Change summary

internal/env/env.go      | 9 +--------
internal/env/env_test.go | 6 ++++--
2 files changed, 5 insertions(+), 10 deletions(-)

Detailed changes

internal/env/env.go 🔗

@@ -17,11 +17,7 @@ func (o *osEnv) Get(key string) string {
 }
 
 func (o *osEnv) Env() []string {
-	env := os.Environ()
-	if len(env) == 0 {
-		return nil
-	}
-	return env
+	return os.Environ()
 }
 
 func New() Env {
@@ -42,9 +38,6 @@ func (m *mapEnv) Get(key string) string {
 
 // Env implements Env.
 func (m *mapEnv) Env() []string {
-	if len(m.m) == 0 {
-		return nil
-	}
 	env := make([]string, 0, len(m.m))
 	for k, v := range m.m {
 		env = append(env, k+"="+v)

internal/env/env_test.go 🔗

@@ -90,13 +90,15 @@ func TestMapEnv_Env(t *testing.T) {
 	t.Run("empty map", func(t *testing.T) {
 		env := NewFromMap(map[string]string{})
 		envVars := env.Env()
-		require.Nil(t, envVars)
+		require.NotNil(t, envVars)
+		require.Len(t, envVars, 0)
 	})
 
 	t.Run("nil map", func(t *testing.T) {
 		env := NewFromMap(nil)
 		envVars := env.Env()
-		require.Nil(t, envVars)
+		require.NotNil(t, envVars)
+		require.Len(t, envVars, 0)
 	})
 }