summaryrefslogtreecommitdiff
path: root/js_test.go
diff options
context:
space:
mode:
authorPhilipp Tanlak <philipp.tanlak@gmail.com>2023-11-20 17:07:28 +0100
committerGitHub <noreply@github.com>2023-11-20 17:07:28 +0100
commit13322edf37510b6d3bb68a853368fd1a0a67a105 (patch)
treeaf325e934f95deeee44cbdd126100dff912f0e5a /js_test.go
parent47d58e6e0ebc44e7c00dffcc3b892932dc70eb3a (diff)
Gracefully handle NaN and Inf values (#21)
Diffstat (limited to 'js_test.go')
-rw-r--r--js_test.go38
1 files changed, 35 insertions, 3 deletions
diff --git a/js_test.go b/js_test.go
index acefa38..c684319 100644
--- a/js_test.go
+++ b/js_test.go
@@ -94,6 +94,21 @@ func TestJSScrapeNull(t *testing.T) {
require.Nil(t, result)
}
+func TestJSScrapeUndefined(t *testing.T) {
+ js := `
+ export default function() { }
+ `
+ exports, err := flyscrape.Compile(js, nil)
+ require.NoError(t, err)
+
+ result, err := exports.Scrape(flyscrape.ScrapeParams{
+ HTML: html,
+ URL: "http://localhost/",
+ })
+ require.NoError(t, err)
+ require.Nil(t, result)
+}
+
func TestJSScrapeString(t *testing.T) {
js := `
export default function() {
@@ -131,9 +146,26 @@ func TestJSScrapeArray(t *testing.T) {
m, ok := result.([]any)
require.True(t, ok)
- require.Equal(t, int64(1), m[0])
- require.Equal(t, int64(2), m[1])
- require.Equal(t, int64(3), m[2])
+ require.Equal(t, float64(1), m[0])
+ require.Equal(t, float64(2), m[1])
+ require.Equal(t, float64(3), m[2])
+}
+
+func TestJSScrapeNaN(t *testing.T) {
+ js := `
+ export default function() {
+ return NaN
+ }
+ `
+ exports, err := flyscrape.Compile(js, nil)
+ require.NoError(t, err)
+
+ result, err := exports.Scrape(flyscrape.ScrapeParams{
+ HTML: html,
+ URL: "http://localhost/",
+ })
+ require.NoError(t, err)
+ require.Nil(t, result)
}
func TestJSCompileError(t *testing.T) {