env_testing.go

 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}