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  }