From 5c16435e2218344a6e232ebb48cf022a32ba85d5 Mon Sep 17 00:00:00 2001 From: Philipp Tanlak Date: Sun, 27 Aug 2023 19:10:49 +0200 Subject: add tests and allow urls --- fetch_test.go | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 fetch_test.go (limited to 'fetch_test.go') 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") +} -- cgit v1.2.3