Skip to content
This repository was archived by the owner on Jan 30, 2025. It is now read-only.

Commit e645185

Browse files
committed
Add tests for jshandle.evaluateHandle
1 parent 245011f commit e645185

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

tests/js_handle_test.go

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,56 @@ func TestJSHandleEvaluate(t *testing.T) {
5454
})
5555
}
5656
}
57+
58+
func TestJSHandleEvaluateHandle(t *testing.T) {
59+
t.Parallel()
60+
61+
tests := []struct {
62+
name string
63+
pageFunc string
64+
args []any
65+
expected string
66+
}{
67+
{
68+
name: "no_args",
69+
pageFunc: `handle => {
70+
return {"innerText": handle.innerText};
71+
}`,
72+
args: nil,
73+
expected: `{"innerText":"Some title"}`,
74+
},
75+
{
76+
name: "with_args",
77+
pageFunc: `(handle, a, b) => {
78+
return {"innerText": handle.innerText, "sum": a + b};
79+
}`,
80+
args: []any{1, 2},
81+
expected: `{"innerText":"Some title","sum":3}`,
82+
},
83+
}
84+
for _, tt := range tests {
85+
tt := tt
86+
87+
t.Run(tt.name, func(t *testing.T) {
88+
t.Parallel()
89+
90+
tb := newTestBrowser(t)
91+
p := tb.NewPage(nil)
92+
93+
err := p.SetContent(`<html><head><title>Some title</title></head></html>`, nil)
94+
require.NoError(t, err)
95+
96+
result, err := p.EvaluateHandle(`() => document.head`)
97+
require.NoError(t, err)
98+
require.NotNil(t, result)
99+
100+
got, err := result.EvaluateHandle(tt.pageFunc, tt.args...)
101+
assert.NoError(t, err)
102+
assert.NotNil(t, got)
103+
104+
j, err := got.JSONValue()
105+
assert.NoError(t, err)
106+
assert.Equal(t, tt.expected, j)
107+
})
108+
}
109+
}

0 commit comments

Comments
 (0)