Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

vole
Clone

Read only, no credentials:

https://rodent.software/git/vole.git

Write over SSH with a registered key:

git clone ssh://git@0.0.0.0:2222/vole.git

A free and open-source forge that lives in your Git repo.

refactor

c5902451905acdaa478f8476844ccd4a510d9ca9 · Keenan Nemetz · 16d ago · parent ec2aba4b

forge/instance_test.go +62

@@ -0,0 +1,62 @@
1 package forge
2
3 import (
4 "os"
5 "path/filepath"
6 "testing"
7
8 "github.com/rodent-software/vole/forge/config"
9 )
10
11 func TestInitOpenAndRepoLifecycle(t *testing.T) {
12 t.Parallel()
13 dir := t.TempDir()
14 root, err := Init(dir)
15 if err != nil {
16 t.Fatalf("init: %v", err)
17 }
18 cfg, err := config.Load(filepath.Join(root, "vole.toml"))
19 if err != nil {
20 t.Fatal(err)
21 }
22 inst, err := Open(cfg, "vole")
23 if err != nil {
24 t.Fatalf("open: %v", err)
25 }
26 defer inst.Close()
27
28 alice, err := inst.Identity.Create("alice", "test")
29 if err != nil {
30 t.Fatal(err)
31 }
32 m, err := inst.Repos.Create("demo", alice.ID, "a demo")
33 if err != nil {
34 t.Fatal(err)
35 }
36 if err := inst.Index.Upsert(m); err != nil {
37 t.Fatal(err)
38 }
39 if _, err := inst.Index.Get("demo"); err != nil {
40 t.Fatalf("index does not know the repo: %v", err)
41 }
42
43 if err := inst.RenameRepo("demo", "renamed"); err != nil {
44 t.Fatalf("rename: %v", err)
45 }
46 if _, err := inst.Repos.Open("renamed"); err != nil {
47 t.Fatalf("renamed repo is missing: %v", err)
48 }
49 if _, err := inst.Index.Get("renamed"); err != nil {
50 t.Fatalf("index did not follow the rename: %v", err)
51 }
52
53 if err := inst.DeleteRepo("renamed"); err != nil {
54 t.Fatalf("delete: %v", err)
55 }
56 if _, err := inst.Repos.Open("renamed"); !os.IsNotExist(err) {
57 t.Fatalf("repo survived delete: %v", err)
58 }
59 if _, err := inst.Index.Get("renamed"); err == nil {
60 t.Fatal("index row survived delete")
61 }
62 }