summaryrefslogtreecommitdiff
path: root/fetch_test.go
diff options
context:
space:
mode:
authorPhilipp Tanlak <philipp.tanlak@gmail.com>2023-08-27 19:10:49 +0200
committerPhilipp Tanlak <philipp.tanlak@gmail.com>2023-08-27 19:10:49 +0200
commit5c16435e2218344a6e232ebb48cf022a32ba85d5 (patch)
tree3cfa1dbc1f489ba4509fc408a8c0afccca7f9c7c /fetch_test.go
parent52107c13b4c2c4efa9269b187916f3195be5a10d (diff)
add tests and allow urls
Diffstat (limited to 'fetch_test.go')
-rw-r--r--fetch_test.go56
1 files changed, 56 insertions, 0 deletions
diff --git a/fetch_test.go b/fetch_test.go
new file mode 100644
index 0000000..5ee0222
--- /dev/null
+++ b/fetch_test.go
@@ -0,0 +1,56 @@
+package flyscrape_test
+
+import (
+ "net/http"
+ "net/http/httptest"
+ "testing"
+
+ "flyscrape"
+
+ "github.com/stretchr/testify/require"
+)
+
+func TestFetchFetch(t *testing.T) {
+ srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ w.Write([]byte("foobar"))
+ }))
+
+ fetch := flyscrape.Fetch()
+
+ html, err := fetch(srv.URL)
+ require.NoError(t, err)
+ require.Equal(t, html, "foobar")
+}
+
+func TestFetchCachedFetch(t *testing.T) {
+ numcalled := 0
+ srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ numcalled++
+ w.Write([]byte("foobar"))
+ }))
+
+ fetch := flyscrape.CachedFetch(flyscrape.Fetch())
+
+ html, err := fetch(srv.URL)
+ require.NoError(t, err)
+ require.Equal(t, html, "foobar")
+
+ html, err = fetch(srv.URL)
+ require.NoError(t, err)
+ require.Equal(t, html, "foobar")
+
+ require.Equal(t, 1, numcalled)
+}
+
+func TestFetchProxiedFetch(t *testing.T) {
+ srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ require.Equal(t, r.URL.String(), "http://example.com/foo")
+ w.Write([]byte("foobar"))
+ }))
+
+ fetch := flyscrape.ProxiedFetch(srv.URL)
+
+ html, err := fetch("http://example.com/foo")
+ require.NoError(t, err)
+ require.Equal(t, html, "foobar")
+}