env_testing.go

 1package commands
 2
 3import (
 4	"bytes"
 5	"testing"
 6
 7	"github.com/MichaelMure/git-bug/cache"
 8	"github.com/MichaelMure/git-bug/repository"
 9	"github.com/stretchr/testify/require"
10)
11
12type testEnv struct {
13	env *Env
14	out *bytes.Buffer
15}
16
17func newTestEnv(t *testing.T) *testEnv {
18	t.Helper()
19
20	repo := repository.CreateGoGitTestRepo(t, false)
21
22	buf := new(bytes.Buffer)
23
24	backend, stderr := cache.NewTestRepoCache(t, repo)
25	t.Cleanup(func() {
26		backend.Close()
27
28		require.Empty(t, stderr.String())
29	})
30
31	return &testEnv{
32		env: &Env{
33			repo:    repo,
34			backend: backend,
35			out:     out{Writer: buf},
36			err:     out{Writer: buf},
37		},
38		out: buf,
39	}
40}