diff options
Diffstat (limited to 'internal/test')
| -rw-r--r-- | internal/test/findlinks_test.go | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/internal/test/findlinks_test.go b/internal/test/findlinks_test.go index 1bc2f20..37c6152 100644 --- a/internal/test/findlinks_test.go +++ b/internal/test/findlinks_test.go @@ -1,6 +1,8 @@ package test import ( + "fmt" + "io" "os" "testing" @@ -8,14 +10,16 @@ import ( "github.com/google/go-cmp/cmp" ) -func findLinksFile(filename string) ([]findlinks.Link, error) { +type parserFn func(io.Reader) ([]findlinks.Link, error) + +func findLinksFile(filename string, parser parserFn) ([]findlinks.Link, error) { f, err := os.Open(filename) if err != nil { panic("can't open test file") } defer f.Close() - return findlinks.FindLinks(f) + return parser(f) } func TestFindlinks(t *testing.T) { @@ -37,16 +41,22 @@ func TestFindlinks(t *testing.T) { } for _, test := range tests { - t.Run(test.filename, func(t *testing.T) { - links, err := findLinksFile(test.filename) - if err != nil { - t.Error(err) - } - - if !cmp.Equal(links, test.links) { - t.Errorf("got %v, want %v", links, test.links) - } - }) + parsers := []parserFn{findlinks.FindLinks, findlinks.Parse} + + for i, p := range parsers { + testName := fmt.Sprintf("Parser %d %s", i+1, test.filename) + + t.Run(testName, func(t *testing.T) { + links, err := findLinksFile(test.filename, p) + if err != nil { + t.Error(err) + } + + if !cmp.Equal(links, test.links) { + t.Errorf("got %v, want %v", links, test.links) + } + }) + } } } |
