MCPcopy Index your code
hub / github.com/git-bug/git-bug / TestSelect

Function TestSelect

commands/select/select_test.go:13–86  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

11)
12
13func TestSelect(t *testing.T) {
14 repo := repository.CreateGoGitTestRepo(t, false)
15
16 backend, err := cache.NewRepoCacheNoEvents(repo)
17 require.NoError(t, err)
18
19 const typename = "foo"
20 const namespace = "foos"
21
22 resolve := func(args []string) (*cache.BugCache, []string, error) {
23 return Resolve[*cache.BugCache](backend, typename, namespace, backend.Bugs(), args)
24 }
25
26 _, _, err = resolve([]string{})
27 require.True(t, IsErrNoValidId(err))
28
29 err = Select(backend, namespace, "invalid")
30 require.NoError(t, err)
31
32 // Resolve without a pattern should fail when no bug is selected
33 _, _, err = resolve([]string{})
34 require.Error(t, err)
35
36 // generate a bunch of bugs
37
38 rene, err := backend.Identities().New("René Descartes", "rene@descartes.fr")
39 require.NoError(t, err)
40
41 for i := 0; i < 10; i++ {
42 _, _, err := backend.Bugs().NewRaw(rene, time.Now().Unix(), "title", "message", nil, nil)
43 require.NoError(t, err)
44 }
45
46 // and two more for testing
47 b1, _, err := backend.Bugs().NewRaw(rene, time.Now().Unix(), "title", "message", nil, nil)
48 require.NoError(t, err)
49 b2, _, err := backend.Bugs().NewRaw(rene, time.Now().Unix(), "title", "message", nil, nil)
50 require.NoError(t, err)
51
52 err = Select(backend, namespace, b1.Id())
53 require.NoError(t, err)
54
55 // normal select without args
56 b3, _, err := resolve([]string{})
57 require.NoError(t, err)
58 require.Equal(t, b1.Id(), b3.Id())
59
60 // override selection with same id
61 b4, _, err := resolve([]string{b1.Id().String()})
62 require.NoError(t, err)
63 require.Equal(t, b1.Id(), b4.Id())
64
65 // override selection with a prefix
66 b5, _, err := resolve([]string{b1.Id().Human()})
67 require.NoError(t, err)
68 require.Equal(t, b1.Id(), b5.Id())
69
70 // args that shouldn't override

Callers

nothing calls this directly

Calls 14

CreateGoGitTestRepoFunction · 0.92
NewRepoCacheNoEventsFunction · 0.92
IsErrNoValidIdFunction · 0.85
SelectFunction · 0.85
ClearFunction · 0.85
BugsMethod · 0.80
IdentitiesMethod · 0.80
ResolveFunction · 0.70
IdMethod · 0.65
StringMethod · 0.65
ErrorMethod · 0.45
NewMethod · 0.45

Tested by

no test coverage detected