aboutsummaryrefslogtreecommitdiffstats
path: root/commands/env_testing.go
diff options
context:
space:
mode:
Diffstat (limited to 'commands/env_testing.go')
-rw-r--r--commands/env_testing.go48
1 files changed, 48 insertions, 0 deletions
diff --git a/commands/env_testing.go b/commands/env_testing.go
new file mode 100644
index 00000000..4de66a9d
--- /dev/null
+++ b/commands/env_testing.go
@@ -0,0 +1,48 @@
+package commands
+
+import (
+ "bytes"
+ "testing"
+
+ "github.com/stretchr/testify/require"
+
+ "github.com/MichaelMure/git-bug/cache"
+ "github.com/MichaelMure/git-bug/repository"
+)
+
+type testEnv struct {
+ env *Env
+ cwd string
+ out *bytes.Buffer
+}
+
+func newTestEnv(t *testing.T) *testEnv {
+ t.Helper()
+
+ cwd := t.TempDir()
+
+ repo, err := repository.InitGoGitRepo(cwd, gitBugNamespace)
+ require.NoError(t, err)
+ t.Cleanup(func() {
+ require.NoError(t, repo.Close())
+ })
+
+ buf := new(bytes.Buffer)
+
+ backend, err := cache.NewRepoCache(repo)
+ require.NoError(t, err)
+ t.Cleanup(func() {
+ backend.Close()
+ })
+
+ return &testEnv{
+ env: &Env{
+ repo: repo,
+ backend: backend,
+ out: out{Writer: buf},
+ err: out{Writer: buf},
+ },
+ cwd: cwd,
+ out: buf,
+ }
+}