list_test.go (1245B)
1 package commands 2 3 import ( 4 "bytes" 5 "encoding/csv" 6 "io" 7 "os" 8 "path/filepath" 9 "strings" 10 "testing" 11 12 qt "github.com/frankban/quicktest" 13 ) 14 15 func captureStdout(f func() error) (string, error) { 16 old := os.Stdout 17 r, w, _ := os.Pipe() 18 os.Stdout = w 19 20 err := f() 21 22 w.Close() 23 os.Stdout = old 24 25 var buf bytes.Buffer 26 io.Copy(&buf, r) 27 return buf.String(), err 28 } 29 30 func TestListAll(t *testing.T) { 31 c := qt.New(t) 32 dir := createSimpleTestSite(t, testSiteConfig{}) 33 34 hugoCmd := newCommandsBuilder().addAll().build() 35 cmd := hugoCmd.getCommand() 36 37 t.Cleanup(func() { 38 os.RemoveAll(dir) 39 }) 40 41 cmd.SetArgs([]string{"-s=" + dir, "list", "all"}) 42 43 out, err := captureStdout(func() error { 44 _, err := cmd.ExecuteC() 45 return err 46 }) 47 c.Assert(err, qt.IsNil) 48 49 r := csv.NewReader(strings.NewReader(out)) 50 51 header, err := r.Read() 52 53 c.Assert(err, qt.IsNil) 54 c.Assert(header, qt.DeepEquals, []string{ 55 "path", "slug", "title", 56 "date", "expiryDate", "publishDate", 57 "draft", "permalink", 58 }) 59 60 record, err := r.Read() 61 62 c.Assert(err, qt.IsNil) 63 c.Assert(record, qt.DeepEquals, []string{ 64 filepath.Join("content", "p1.md"), "", "P1", 65 "0001-01-01T00:00:00Z", "0001-01-01T00:00:00Z", "0001-01-01T00:00:00Z", 66 "false", "https://example.org/p1/", 67 }) 68 }