carlos / platform Public

Clone
git clone https://amadan.net/carlos/platform

Plain git — no account needed to clone.

Download

Download this file

1package registry
2
3import (
4 "os"
5 "path/filepath"
6 "testing"
7)
8
9func TestSnapshotToProducesOpenableCopy(t *testing.T) {
10 dir := t.TempDir()
11 reg, err := Open(filepath.Join(dir, "registry.db"))
12 if err != nil {
13 t.Fatal(err)
14 }
15 defer reg.Close()
16 if err := reg.Upsert(Route{Host: "a.example.com", Kind: "service", Addr: "10.0.0.1:3000", Status: "ready"}); err != nil {
17 t.Fatal(err)
18 }
19
20 out := filepath.Join(dir, "snap.db")
21 if err := reg.SnapshotTo(out); err != nil {
22 t.Fatal(err)
23 }
24
25 copyReg, err := Open(out)
26 if err != nil {
27 t.Fatalf("open snapshot: %v", err)
28 }
29 defer copyReg.Close()
30 rt, err := copyReg.Get("a.example.com")
31 if err != nil {
32 t.Fatal(err)
33 }
34 if rt.Addr != "10.0.0.1:3000" {
35 t.Fatalf("snapshot route addr = %q, want 10.0.0.1:3000", rt.Addr)
36 }
37}
38
39func TestSnapshotToRefusesExistingTarget(t *testing.T) {
40 dir := t.TempDir()
41 reg, err := Open(filepath.Join(dir, "registry.db"))
42 if err != nil {
43 t.Fatal(err)
44 }
45 defer reg.Close()
46 out := filepath.Join(dir, "snap.db")
47 if err := os.WriteFile(out, []byte("x"), 0o644); err != nil {
48 t.Fatal(err)
49 }
50 if err := reg.SnapshotTo(out); err == nil {
51 t.Fatal("SnapshotTo over an existing file: want error, got nil")
52 }
53}
54