a love letter to tangled (android, iOS, and a search API)
at main 73 lines 1.8 kB view raw
1package backfill 2 3import ( 4 "os" 5 "path/filepath" 6 "testing" 7) 8 9func TestParseSeedFile(t *testing.T) { 10 dir := t.TempDir() 11 path := filepath.Join(dir, "seeds.txt") 12 content := "\n# comment\ndid:plc:one\nalice.tangled.sh\ndid:plc:one\n\n" 13 if err := os.WriteFile(path, []byte(content), 0o644); err != nil { 14 t.Fatalf("write seed file: %v", err) 15 } 16 17 entries, err := parseSeedFile(path) 18 if err != nil { 19 t.Fatalf("parse seed file: %v", err) 20 } 21 if len(entries) != 2 { 22 t.Fatalf("entries length: got %d want 2", len(entries)) 23 } 24 if !entries[0].isDID { 25 t.Fatalf("first entry should be did") 26 } 27 if entries[1].isDID { 28 t.Fatalf("second entry should be handle") 29 } 30} 31 32func TestParseSeedInput_FilePath(t *testing.T) { 33 dir := t.TempDir() 34 path := filepath.Join(dir, "seeds.txt") 35 content := "did:plc:one\nhandle.example\n" 36 if err := os.WriteFile(path, []byte(content), 0o644); err != nil { 37 t.Fatalf("write seed file: %v", err) 38 } 39 40 entries, err := parseSeedInput(path) 41 if err != nil { 42 t.Fatalf("parse seed input from file: %v", err) 43 } 44 if len(entries) != 2 { 45 t.Fatalf("entries length: got %d want 2", len(entries)) 46 } 47} 48 49func TestParseSeedInput_CommaSeparated(t *testing.T) { 50 entries, err := parseSeedInput("anirudh.fi, atprotocol.dev, did:plc:abc") 51 if err != nil { 52 t.Fatalf("parse comma-separated seeds: %v", err) 53 } 54 if len(entries) != 3 { 55 t.Fatalf("entries length: got %d want 3", len(entries)) 56 } 57 if !entries[2].isDID { 58 t.Fatalf("expected third entry to be did") 59 } 60} 61 62func TestParseSeedInput_SingleInline(t *testing.T) { 63 entries, err := parseSeedInput("tangled.org") 64 if err != nil { 65 t.Fatalf("parse single inline seed: %v", err) 66 } 67 if len(entries) != 1 { 68 t.Fatalf("entries length: got %d want 1", len(entries)) 69 } 70 if entries[0].raw != "tangled.org" { 71 t.Fatalf("entry: got %q", entries[0].raw) 72 } 73}