1package commands
2
3import (
4 "bytes"
5 "testing"
6
7 "github.com/stretchr/testify/require"
8
9 "github.com/MichaelMure/git-bug/cache"
10 "github.com/MichaelMure/git-bug/repository"
11)
12
13type testEnv struct {
14 env *Env
15 cwd string
16 out *bytes.Buffer
17}
18
19func newTestEnv(t *testing.T) *testEnv {
20 t.Helper()
21
22 cwd := t.TempDir()
23
24 // r := repository.CreateGoGitTestRepo(t, false) // TODO
25
26 repo, err := repository.InitGoGitRepo(cwd, gitBugNamespace)
27 require.NoError(t, err)
28 t.Cleanup(func() {
29 require.NoError(t, repo.Close())
30 })
31
32 buf := new(bytes.Buffer)
33
34 backend, err := cache.NewRepoCache(repo)
35 require.NoError(t, err)
36 t.Cleanup(func() {
37 backend.Close()
38 })
39
40 return &testEnv{
41 env: &Env{
42 repo: repo,
43 backend: backend,
44 out: out{Writer: buf},
45 err: out{Writer: buf},
46 },
47 cwd: cwd,
48 out: buf,
49 }
50}