Skip to content

Commit

Permalink
馃И test: Add assertion for module referrer
Browse files Browse the repository at this point in the history
  • Loading branch information
caoccao committed May 25, 2024
1 parent 9be03b3 commit d677486
Showing 1 changed file with 5 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -344,6 +344,7 @@ public void testSyntheticModule() throws JavetException {
}
v8Runtime.setV8ModuleResolver((v8Runtime, resourceName, v8ModuleReferrer) -> {
if (moduleName.equals(resourceName)) {
assertEquals("main.js", v8ModuleReferrer.getResourceName());
try (V8ValueObject v8ValueObject = v8Runtime.createV8ValueObject();
V8ValueArray v8ValueArray = v8Runtime.createV8ValueArray()) {
v8ValueObject.set("a", 1);
Expand All @@ -365,14 +366,14 @@ public void testSyntheticModule() throws JavetException {
}
return null;
});
v8Runtime.getExecutor("import * as x from 'test.js'; Object.assign(globalThis, x);")
.setModule(true).executeVoid();
IV8Executor executor = v8Runtime.getExecutor("import * as x from 'test.js'; Object.assign(globalThis, x);");
executor.getV8ScriptOrigin().setModule(true).setResourceName("main.js");

This comment has been minimized.

Copy link
@caoccao

caoccao May 25, 2024

Author Owner

executor.getV8ScriptOrigin().setResourceName("main.js") is different from executor.setResourceName("main.js") in the Node.js mode, because it doesn't try to set some Node.js env vars.

executor.executeVoid();
assertEquals(1, v8Runtime.getGlobalObject().getInteger("a"));
assertEquals(2, v8Runtime.getGlobalObject().invokeInteger("b", 1));
assertEquals("[1]", v8Runtime.getExecutor("JSON.stringify(c);").executeString());
v8Runtime.getExecutor("c.push(2);").executeVoid();
v8Runtime.getExecutor("import * as x from 'test.js'; Object.assign(globalThis, x);")
.setModule(true).executeVoid();
executor.executeVoid();
assertEquals(
"[1,2]",
v8Runtime.getExecutor("JSON.stringify(c);").executeString(),
Expand Down

0 comments on commit d677486

Please sign in to comment.