(t *testing.T)
| 11 | ) |
| 12 | |
| 13 | func 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 |
nothing calls this directly
no test coverage detected