internal/store/dashboard_test.go
55 lines · 1501 bytes
1package store
2
3import "testing"
4
5// An issue assigned to the user is not repeated under DashboardIssues:
6// AssignedIssues already covers it, and a repository the user can
7// otherwise reach (here, one they own) is the common case where the two
8// queries used to overlap (#265).
9func TestDashboardIssuesExcludesAssignedIssues(t *testing.T) {
10 s := open(t)
11 if err := s.MigrateUp(); err != nil {
12 t.Fatal(err)
13 }
14 uid, err := s.CreateUser("cmc", false)
15 if err != nil {
16 t.Fatal(err)
17 }
18 repoID, err := s.CreateRepo("user", uid, "gitbay", "public")
19 if err != nil {
20 t.Fatal(err)
21 }
22 repo, err := s.RepoByID(repoID)
23 if err != nil {
24 t.Fatal(err)
25 }
26 assignedNum, err := s.CreateIssue(repo.ID, uid, "assigned to me", "", "markdown")
27 if err != nil {
28 t.Fatal(err)
29 }
30 if _, err := s.CreateIssue(repo.ID, uid, "not assigned", "", "markdown"); err != nil {
31 t.Fatal(err)
32 }
33 assigned, err := s.IssueByNumber(repo.ID, assignedNum)
34 if err != nil {
35 t.Fatal(err)
36 }
37 if err := s.SetIssueAssignee(assigned.ID, uid, true); err != nil {
38 t.Fatal(err)
39 }
40
41 issues, err := s.DashboardIssues(uid)
42 if err != nil {
43 t.Fatal(err)
44 }
45 if len(issues) != 1 || issues[0].Title != "not assigned" {
46 t.Fatalf("DashboardIssues = %+v, want only the unassigned issue", issues)
47 }
48 assignedList, err := s.AssignedIssues(uid)
49 if err != nil {
50 t.Fatal(err)
51 }
52 if len(assignedList) != 1 || assignedList[0].Title != "assigned to me" {
53 t.Fatalf("AssignedIssues = %+v, want the assigned issue", assignedList)
54 }
55}