summaryrefslogtreecommitdiff
path: root/internal/test
diff options
context:
space:
mode:
Diffstat (limited to 'internal/test')
-rw-r--r--internal/test/findlinks_test.go34
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)
+ }
+ })
+ }
}
}