summaryrefslogtreecommitdiff
path: root/internal/test
diff options
context:
space:
mode:
authordemo <demo@antix1>2026-05-09 11:43:48 -0400
committerdemo <demo@antix1>2026-05-09 11:43:48 -0400
commit52bb422959147384291dcfbfe5a6142d363862ab (patch)
tree90a17881bf865d43a0431beefded70e3f227e2e6 /internal/test
parent7fe62a3f676d810c8df46fa24a7314a2209a9dd2 (diff)
feat: implement "v2"
This is based on the Gophercises solution.
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)
+ }
+ })
+ }
}
}