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	repo, err := repository.InitGoGitRepo(cwd, gitBugNamespace)
25	require.NoError(t, err)
26	t.Cleanup(func() {
27		require.NoError(t, repo.Close())
28	})
29
30	buf := new(bytes.Buffer)
31
32	backend, err := cache.NewRepoCache(repo)
33	require.NoError(t, err)
34	t.Cleanup(func() {
35		backend.Close()
36	})
37
38	return &testEnv{
39		env: &Env{
40			repo:    repo,
41			backend: backend,
42			out:     out{Writer: buf},
43			err:     out{Writer: buf},
44		},
45		cwd: cwd,
46		out: buf,
47	}
48}