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 | } | ||