testenv.go

 1package testenv
 2
 3import (
 4	"testing"
 5
 6	"github.com/stretchr/testify/require"
 7
 8	"github.com/MichaelMure/git-bug/commands/execenv"
 9	"github.com/MichaelMure/git-bug/entity"
10)
11
12const (
13	testUserName  = "John Doe"
14	testUserEmail = "jdoe@example.com"
15)
16
17func NewTestEnvAndUser(t *testing.T) (*execenv.Env, entity.Id) {
18	t.Helper()
19
20	testEnv := execenv.NewTestEnv(t)
21
22	i, err := testEnv.Backend.NewIdentity(testUserName, testUserEmail)
23	require.NoError(t, err)
24
25	err = testEnv.Backend.SetUserIdentity(i)
26	require.NoError(t, err)
27
28	return testEnv, i.Id()
29}
30
31const (
32	testBugTitle   = "this is a bug title"
33	testBugMessage = "this is a bug message"
34)
35
36func NewTestEnvAndBug(t *testing.T) (*execenv.Env, entity.Id) {
37	t.Helper()
38
39	testEnv, _ := NewTestEnvAndUser(t)
40
41	b, _, err := testEnv.Backend.NewBug(testBugTitle, testBugMessage)
42	require.NoError(t, err)
43
44	return testEnv, b.Id()
45}
46
47const (
48	testCommentMessage = "this is a bug comment"
49)
50
51func NewTestEnvAndBugWithComment(t *testing.T) (*execenv.Env, entity.Id, entity.CombinedId) {
52	t.Helper()
53
54	env, bugID := NewTestEnvAndBug(t)
55
56	b, err := env.Backend.ResolveBug(bugID)
57	require.NoError(t, err)
58
59	commentId, _, err := b.AddComment(testCommentMessage)
60	require.NoError(t, err)
61
62	return env, bugID, commentId
63}