2026-06-05 18:39:37 +05:30
|
|
|
package flows
|
|
|
|
|
|
|
|
|
|
import (
|
2026-06-13 09:56:43 +05:30
|
|
|
"os"
|
2026-06-05 18:39:37 +05:30
|
|
|
"testing"
|
|
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
2026-06-13 09:56:43 +05:30
|
|
|
"github.com/stretchr/testify/require"
|
2026-06-05 18:39:37 +05:30
|
|
|
)
|
|
|
|
|
|
2026-06-13 09:56:43 +05:30
|
|
|
// TestCIEnvOverride proves the fix for #335: pmg forces CI=true for
|
|
|
|
|
// non-interactive runs but must not clobber a CI value the user set
|
|
|
|
|
// explicitly (e.g. CI=false on a build server).
|
|
|
|
|
func TestCIEnvOverride(t *testing.T) {
|
|
|
|
|
t.Run("sets CI=true when unset", func(t *testing.T) {
|
|
|
|
|
original, hadCI := os.LookupEnv("CI")
|
|
|
|
|
require.NoError(t, os.Unsetenv("CI"))
|
|
|
|
|
t.Cleanup(func() {
|
|
|
|
|
if hadCI {
|
|
|
|
|
require.NoError(t, os.Setenv("CI", original))
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
assert.Equal(t, []string{"CI=true"}, ciEnvOverride())
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
t.Run("does not override explicitly set CI", func(t *testing.T) {
|
|
|
|
|
t.Setenv("CI", "false")
|
|
|
|
|
assert.Nil(t, ciEnvOverride())
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
t.Run("does not override CI set to empty", func(t *testing.T) {
|
|
|
|
|
t.Setenv("CI", "")
|
|
|
|
|
assert.Nil(t, ciEnvOverride())
|
|
|
|
|
})
|
|
|
|
|
}
|