github.com/anishathalye/periscope@v0.3.5/internal/periscope/tree_test.go (about) 1 package periscope 2 3 import ( 4 "github.com/anishathalye/periscope/internal/testfs" 5 6 "strings" 7 "testing" 8 ) 9 10 func TestTreeBasic(t *testing.T) { 11 fs := testfs.Read(` 12 /d1/a [10000 1] 13 /d1/b [1392 2] 14 /d1/c [1191 3] 15 /d2/a [10000 1] 16 /d2/b [1392 2] 17 /d2/c [1002 5] 18 `).Mkfs() 19 ps, out, _ := newTest(fs) 20 ps.Scan([]string{"/"}, &ScanOptions{}) 21 err := ps.Tree("/", &TreeOptions{}) 22 check(t, err) 23 got := strings.TrimSpace(out.String()) 24 expected := strings.TrimSpace(` 25 1 d1/a 26 1 d1/b 27 1 d2/a 28 1 d2/b 29 `) 30 if got != expected { 31 t.Fatalf("expected '%s', got '%s'", expected, got) 32 } 33 } 34 35 func TestTreeHidden(t *testing.T) { 36 fs := testfs.Read(` 37 /d1/a [10000 1] 38 /d1/.b [1392 2] 39 /d2/.a [10000 1] 40 /d2/b [1392 2] 41 `).Mkfs() 42 ps, out, _ := newTest(fs) 43 ps.Scan([]string{"/"}, &ScanOptions{}) 44 err := ps.Tree("/", &TreeOptions{}) 45 check(t, err) 46 got := strings.TrimSpace(out.String()) 47 expected := strings.TrimSpace(` 48 1 d1/a 49 1 d2/b 50 `) 51 if got != expected { 52 t.Fatalf("expected '%s', got '%s'", expected, got) 53 } 54 out.Reset() 55 err = ps.Tree("/", &TreeOptions{All: true}) 56 check(t, err) 57 got = strings.TrimSpace(out.String()) 58 expected = strings.TrimSpace(` 59 1 d1/.b 60 1 d1/a 61 1 d2/.a 62 1 d2/b 63 `) 64 if got != expected { 65 t.Fatalf("expected '%s', got '%s'", expected, got) 66 } 67 } 68 69 func TestTreeRelative(t *testing.T) { 70 fs := testfs.Read(` 71 /d1/a [10000 1] 72 /d1/x/b [1392 2] 73 /d1/x/c [1191 3] 74 /d2/a [10000 1] 75 /d2/b [1392 2] 76 /d2/x/c [1002 5] 77 `).Mkfs() 78 ps, out, _ := newTest(fs) 79 ps.Scan([]string{"/"}, &ScanOptions{}) 80 err := ps.Tree("/d1", &TreeOptions{}) 81 check(t, err) 82 got := strings.TrimSpace(out.String()) 83 expected := strings.TrimSpace(` 84 1 a 85 1 x/b 86 `) 87 if got != expected { 88 t.Fatalf("expected '%s', got '%s'", expected, got) 89 } 90 } 91 92 func TestTreeNoDeleted(t *testing.T) { 93 fs := testfs.Read(` 94 /d1/a [10000 1] 95 /d1/b [1392 2] 96 /d1/c [1191 3] 97 /d2/a [10000 1] 98 /d2/b [1392 2] 99 /d2/c [1002 5] 100 `).Mkfs() 101 ps, out, _ := newTest(fs) 102 ps.Scan([]string{"/"}, &ScanOptions{}) 103 fs.Remove("/d1/a") 104 err := ps.Tree("/", &TreeOptions{}) 105 check(t, err) 106 got := strings.TrimSpace(out.String()) 107 expected := strings.TrimSpace(` 108 1 d1/b 109 1 d2/a 110 1 d2/b 111 `) 112 if got != expected { 113 t.Fatalf("expected '%s', got '%s'", expected, got) 114 } 115 }