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

Commit

Permalink
Add jshandle func input checks
Browse files Browse the repository at this point in the history
  • Loading branch information
inancgumus committed Nov 19, 2024
1 parent a56ba56 commit df27eb2
Showing 1 changed file with 15 additions and 7 deletions.
22 changes: 15 additions & 7 deletions browser/js_handle_mapping.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package browser

import (
"fmt"

"github.com/grafana/sobek"

"github.com/grafana/xk6-browser/common"
Expand All @@ -15,26 +17,32 @@ func mapJSHandle(vu moduleVU, jsh common.JSHandleAPI) mapping {
},
"dispose": func() *sobek.Promise {
return k6ext.Promise(vu.Context(), func() (any, error) {
return nil, jsh.Dispose() //nolint:wrapcheck
return nil, jsh.Dispose()
})
},
"evaluate": func(pageFunc sobek.Value, gargs ...sobek.Value) *sobek.Promise {
"evaluate": func(pageFunc sobek.Value, gargs ...sobek.Value) (*sobek.Promise, error) {
if _, ok := sobek.AssertFunction(pageFunc); !ok {
return nil, fmt.Errorf("evaluate requires a page function")
}
return k6ext.Promise(vu.Context(), func() (any, error) {
args := make([]any, 0, len(gargs))
for _, a := range gargs {
args = append(args, exportArg(a))
}
return jsh.Evaluate(pageFunc.String(), args...) //nolint:wrapcheck
})
return jsh.Evaluate(pageFunc.String(), args...)
}), nil
},
"evaluateHandle": func(pageFunc sobek.Value, gargs ...sobek.Value) *sobek.Promise {
"evaluateHandle": func(pageFunc sobek.Value, gargs ...sobek.Value) (*sobek.Promise, error) {
if _, ok := sobek.AssertFunction(pageFunc); !ok {
return nil, fmt.Errorf("evaluateHandle requires a page function")
}
return k6ext.Promise(vu.Context(), func() (any, error) {
h, err := jsh.EvaluateHandle(pageFunc.String(), exportArgs(gargs)...)
if err != nil {
return nil, err //nolint:wrapcheck
}
return mapJSHandle(vu, h), nil
})
}), nil
},
"getProperties": func() *sobek.Promise {
return k6ext.Promise(vu.Context(), func() (any, error) {
Expand All @@ -52,7 +60,7 @@ func mapJSHandle(vu moduleVU, jsh common.JSHandleAPI) mapping {
},
"jsonValue": func() *sobek.Promise {
return k6ext.Promise(vu.Context(), func() (any, error) {
return jsh.JSONValue() //nolint:wrapcheck
return jsh.JSONValue()
})
},
}
Expand Down

0 comments on commit df27eb2

Please sign in to comment.