internal/store/fork_test.go

ba0a7d33f3a65ce53aafb074fda1682cf1cecfdf
gitbay/internal/store/fork_test.go history · blame · raw

29 lines · 817 bytes

 1package store
 2
 3import "testing"
 4
 5// A fork is created with its parent in the same insert; it is never a
 6// plain repository for a moment between two statements (#108).
 7func TestCreateForkSetsParent(t *testing.T) {
 8	s := open(t)
 9	if err := s.MigrateUp(); err != nil {
10		t.Fatal(err)
11	}
12	uid, _ := s.CreateUser("alice", false)
13	bob, _ := s.CreateUser("bob", false)
14	parent, err := s.CreateRepo("user", uid, "app", "public")
15	if err != nil {
16		t.Fatal(err)
17	}
18	id, err := s.CreateFork("user", bob, "app", "public", parent)
19	if err != nil {
20		t.Fatal(err)
21	}
22	r, err := s.RepoByID(id)
23	if err != nil || r.ForkOf != parent {
24		t.Fatalf("fork_of = %d, want %d (err %v)", r.ForkOf, parent, err)
25	}
26	if _, err := s.CreateFork("user", bob, "app", "public", parent); err == nil {
27		t.Fatal("duplicate fork name accepted")
28	}
29}