github.com/paweljw/pop/v5@v5.4.6/fix/anko_test.go (about) 1 package fix 2 3 import ( 4 "io" 5 "io/ioutil" 6 "strings" 7 "testing" 8 9 "github.com/gobuffalo/packr/v2" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func Test_Anko(t *testing.T) { 14 r := require.New(t) 15 box := packr.New("./fixtures/anko", "./fixtures/anko") 16 err := box.Walk(func(path string, info packr.File) error { 17 if strings.HasPrefix(path, "pass") { 18 t.Run(path, testPass(path, info)) 19 return nil 20 } 21 t.Run(path, testFail(path, info)) 22 return nil 23 }) 24 r.NoError(err) 25 } 26 27 func testPass(path string, info io.Reader) func(*testing.T) { 28 return func(t *testing.T) { 29 r := require.New(t) 30 b, err := ioutil.ReadAll(info) 31 r.NoError(err) 32 33 body := string(b) 34 fixed, err := Anko(body) 35 r.NoError(err) 36 if strings.Contains(path, "anko") { 37 r.NotEqual(body, fixed) 38 } else { 39 r.Equal(body, fixed) 40 } 41 } 42 } 43 44 func testFail(path string, info io.Reader) func(*testing.T) { 45 return func(t *testing.T) { 46 r := require.New(t) 47 b, err := ioutil.ReadAll(info) 48 r.NoError(err) 49 50 body := string(b) 51 _, err = Anko(body) 52 r.Error(err) 53 } 54 }