I am trying to call a function that I have defined in a js file in karate dls
This is the file "utils.js"
function Encriptar(text,key) {
var CryptoJS = require('crypto-js');
var encoded = CryptoJS.AES.encrypt(arguments[0],arguments[1]).toString();
return encoded;
}
module.exports = Encriptar;
I think that's how it would be used from a feuture in karate "test.feature"
Feature: test javascript
Scenario: test javascript
* def jsFunction = call read('utils.js')
* def encriptar = jsFunction.Encriptar("text","key");
* print encriptar
When running the test it gives me the following error:
>>> failed features:
>>>> js failed:
01: read('utils.js')
<<<<
org.graalvm.polyglot.PolyglotException: >>>> js failed:
01: (function Encriptar(text,key) {
02: var CryptoJS = require('crypto-js');
03: var encoded = CryptoJS.AES.encrypt(arguments[0],arguments[1]).toString();
04: return encoded;
05: }
06:
07: module.exports = Encriptar;)
<<<<
org.graalvm.polyglot.PolyglotException: SyntaxError: Unnamed:7:0 Expected ) but found module
module.exports = Encriptar;)
^
Unnamed:7:27 Expected ; but found )
module.exports = Encriptar;)
^
- org.graalvm.polyglot.Context.eval(Context.java:373)
- com.intuit.karate.graal.JsEngine.evalForValue(JsEngine.java:124)
- com.intuit.karate.graal.JsEngine.eval(JsEngine.java:120)
- com.intuit.karate.core.ScenarioEngine.evalJs(ScenarioEngine.java:1246)
- com.intuit.karate.core.ScenarioFileReader.readFile(ScenarioFileReader.java:58)
- com.intuit.karate.core.ScenarioEngine.lambda$new$0(ScenarioEngine.java:118)
- <js>.:program(Unnamed:1)
- com.intuit.karate.core.ScenarioEngine.fromJsEvalException(ScenarioEngine.java:1274)
- com.intuit.karate.core.ScenarioEngine.evalJs(ScenarioEngine.java:1248)
- com.intuit.karate.core.ScenarioFileReader.readFile(ScenarioFileReader.java:58)
- com.intuit.karate.core.ScenarioEngine.lambda$new$0(ScenarioEngine.java:118)
- <js>.:program(Unnamed:1)
What am I wrong? Thanks!