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  }