diff options
| author | Philipp Tanlak <philipp.tanlak@gmail.com> | 2023-08-27 19:10:49 +0200 |
|---|---|---|
| committer | Philipp Tanlak <philipp.tanlak@gmail.com> | 2023-08-27 19:10:49 +0200 |
| commit | 5c16435e2218344a6e232ebb48cf022a32ba85d5 (patch) | |
| tree | 3cfa1dbc1f489ba4509fc408a8c0afccca7f9c7c /fetch_test.go | |
| parent | 52107c13b4c2c4efa9269b187916f3195be5a10d (diff) | |
add tests and allow urls
Diffstat (limited to 'fetch_test.go')
| -rw-r--r-- | fetch_test.go | 56 |
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") +} |