aboutsummaryrefslogtreecommitdiffstats
path: root/commands/bug/testenv/testenv.go
diff options
context:
space:
mode:
authorSteve Moyer <smoyer1@selesy.com>2023-01-07 11:01:35 -0500
committerSteve Moyer <smoyer1@selesy.com>2023-01-07 11:01:35 -0500
commite4707cd8d5d9de4d4f8b7d7213596c764c6dc0ba (patch)
treec6fa71b633437db5663a0516540744bf0a01a39a /commands/bug/testenv/testenv.go
parent51161a8fdb97814daa0543692c63b0d8a25a83ff (diff)
downloadgit-bug-e4707cd8d5d9de4d4f8b7d7213596c764c6dc0ba.tar.gz
fix(commands): run tests in ./commands/... without ANSI color
Resolves #926
Diffstat (limited to 'commands/bug/testenv/testenv.go')
-rw-r--r--commands/bug/testenv/testenv.go17
1 files changed, 17 insertions, 0 deletions
diff --git a/commands/bug/testenv/testenv.go b/commands/bug/testenv/testenv.go
index acd1f389..ffa428d4 100644
--- a/commands/bug/testenv/testenv.go
+++ b/commands/bug/testenv/testenv.go
@@ -3,6 +3,7 @@ package testenv
import (
"testing"
+ "github.com/fatih/color"
"github.com/stretchr/testify/require"
"github.com/MichaelMure/git-bug/commands/execenv"
@@ -17,6 +18,22 @@ const (
func NewTestEnvAndUser(t *testing.T) (*execenv.Env, entity.Id) {
t.Helper()
+ // The Go testing framework either uses os.Stdout directly or a buffer
+ // depending on how the command is initially launched. This results
+ // in os.Stdout.Fd() sometimes being a Terminal, and other times not
+ // being a Terminal which determines whether the ANSI library sends
+ // escape sequences to colorize the text.
+ //
+ // The line below disables all colorization during testing so that the
+ // git-bug command output is consistent in all test scenarios.
+ //
+ // See:
+ // - https://github.com/MichaelMure/git-bug/issues/926
+ // - https://github.com/golang/go/issues/57671
+ // - https://github.com/golang/go/blob/f721fa3be9bb52524f97b409606f9423437535e8/src/cmd/go/internal/test/test.go#L1180-L1208
+ // - https://github.com/golang/go/issues/34877
+ color.NoColor = true
+
testEnv := execenv.NewTestEnv(t)
i, err := testEnv.Backend.Identities().New(testUserName, testUserEmail)