github.com/gohugoio/hugo@v0.88.1/commands/list_test.go (about) 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, clean, err := createSimpleTestSite(t, testSiteConfig{}) 33 defer clean() 34 35 c.Assert(err, qt.IsNil) 36 37 hugoCmd := newCommandsBuilder().addAll().build() 38 cmd := hugoCmd.getCommand() 39 40 defer func() { 41 os.RemoveAll(dir) 42 }() 43 44 cmd.SetArgs([]string{"-s=" + dir, "list", "all"}) 45 46 out, err := captureStdout(func() error { 47 _, err := cmd.ExecuteC() 48 return err 49 }) 50 c.Assert(err, qt.IsNil) 51 52 r := csv.NewReader(strings.NewReader(out)) 53 54 header, err := r.Read() 55 56 c.Assert(err, qt.IsNil) 57 c.Assert(header, qt.DeepEquals, []string{ 58 "path", "slug", "title", 59 "date", "expiryDate", "publishDate", 60 "draft", "permalink", 61 }) 62 63 record, err := r.Read() 64 65 c.Assert(err, qt.IsNil) 66 c.Assert(record, qt.DeepEquals, []string{ 67 filepath.Join("content", "p1.md"), "", "P1", 68 "0001-01-01T00:00:00Z", "0001-01-01T00:00:00Z", "0001-01-01T00:00:00Z", 69 "false", "https://example.org/p1/", 70 }) 71 }