aboutsummaryrefslogtreecommitdiffstats
path: root/commands
diff options
context:
space:
mode:
Diffstat (limited to 'commands')
-rw-r--r--commands/env_test.go60
-rw-r--r--commands/root_test.go55
2 files changed, 63 insertions, 52 deletions
diff --git a/commands/env_test.go b/commands/env_test.go
new file mode 100644
index 00000000..1a5922a9
--- /dev/null
+++ b/commands/env_test.go
@@ -0,0 +1,60 @@
+package commands_test
+
+import (
+ "bytes"
+ "context"
+ "flag"
+ "io/ioutil"
+ "os"
+ "testing"
+
+ "github.com/MichaelMure/git-bug/commands"
+ "github.com/MichaelMure/git-bug/repository"
+ "github.com/spf13/cobra"
+ "github.com/stretchr/testify/require"
+)
+
+var update = flag.Bool("update", false, "pass -update to the test runner to update golden files")
+
+type testEnv struct {
+ cwd string
+ repo *repository.GoGitRepo
+ cmd *cobra.Command
+ out *bytes.Buffer
+}
+
+func newTestEnv(t *testing.T) *testEnv {
+ t.Helper()
+
+ cwd, err := ioutil.TempDir("", "")
+ require.NoError(t, err)
+ t.Cleanup(func() {
+ require.NoError(t, os.RemoveAll(cwd))
+ })
+
+ repo, err := repository.InitGoGitRepo(cwd, commands.GitBugNamespace)
+ require.NoError(t, err)
+ t.Cleanup(func() {
+ require.NoError(t, repo.Close())
+ })
+
+ out := new(bytes.Buffer)
+ cmd := commands.NewRootCommand()
+ cmd.SetArgs([]string{})
+ cmd.SetErr(out)
+ cmd.SetOut(out)
+
+ return &testEnv{
+ cwd: cwd,
+ repo: repo,
+ cmd: cmd,
+ out: out,
+ }
+}
+
+func (e *testEnv) Execute(t *testing.T) {
+ t.Helper()
+
+ ctx := context.WithValue(context.Background(), "cwd", e.cwd)
+ require.NoError(t, e.cmd.ExecuteContext(ctx))
+}
diff --git a/commands/root_test.go b/commands/root_test.go
index c26964d7..8983037c 100644
--- a/commands/root_test.go
+++ b/commands/root_test.go
@@ -1,70 +1,21 @@
+//go:build !windows
+
package commands_test
import (
"bytes"
- "context"
- "flag"
"io/ioutil"
- "os"
"path/filepath"
"testing"
- "github.com/MichaelMure/git-bug/commands"
- "github.com/MichaelMure/git-bug/repository"
- "github.com/spf13/cobra"
"github.com/stretchr/testify/require"
)
-var update = flag.Bool("update", false, "pass -update to the test runner to update golden files")
-
-type testEnv struct {
- cwd string
- repo *repository.GoGitRepo
- cmd *cobra.Command
- out *bytes.Buffer
-}
-
-func newTestEnv(t *testing.T) *testEnv {
- t.Helper()
-
- cwd, err := ioutil.TempDir("", "")
- require.NoError(t, err)
- t.Cleanup(func() {
- require.NoError(t, os.RemoveAll(cwd))
- })
-
- repo, err := repository.InitGoGitRepo(cwd, commands.GitBugNamespace)
- require.NoError(t, err)
- t.Cleanup(func() {
- require.NoError(t, repo.Close())
- })
-
- out := new(bytes.Buffer)
- cmd := commands.NewRootCommand()
- cmd.SetArgs([]string{})
- cmd.SetErr(out)
- cmd.SetOut(out)
-
- return &testEnv{
- cwd: cwd,
- repo: repo,
- cmd: cmd,
- out: out,
- }
-}
-
-func (e *testEnv) Execute(t *testing.T) {
- t.Helper()
-
- ctx := context.WithValue(context.Background(), "cwd", e.cwd)
- require.NoError(t, e.cmd.ExecuteContext(ctx))
-}
-
func requireGoldenFileEqual(t *testing.T, path string, act []byte) {
t.Helper()
// Replace Windows line terminators
- // act = []byte(strings.ReplaceAll(string(act), "\r\n", "\n"))
+ act = bytes.ReplaceAll(act, []byte{'\r'}, []byte{})
path = filepath.Join("testdata", path)