internal/store/dashboard_test.go

v1.37.0
gitbay/internal/store/dashboard_test.go history · blame · raw

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}