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