MCPcopy Create free account
hub / github.com/buke/quickjs-go / TestRuntimeSetModuleImportToggle

Function TestRuntimeSetModuleImportToggle

runtime_test.go:931–979  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

929}
930
931func TestRuntimeSetModuleImportToggle(t *testing.T) {
932 evalFibImport := func(ctx *Context) *Value {
933 return ctx.Eval(`
934 (async function() {
935 const mod = await import("./test/fib_module.js");
936 return mod.fib(6);
937 })()
938 `, EvalAwait(true))
939 }
940
941 requireImportFailure := func(ctx *Context) {
942 result := evalFibImport(ctx)
943 require.NotNil(t, result)
944 defer result.Free()
945 require.True(t, result.IsException())
946
947 err := ctx.Exception()
948 require.Error(t, err)
949 require.Contains(t, strings.ToLower(err.Error()), "could not load module")
950 }
951
952 requireImportSuccess := func(ctx *Context) {
953 result := evalFibImport(ctx)
954 require.NotNil(t, result)
955 defer result.Free()
956 require.False(t, result.IsException())
957 require.EqualValues(t, 8, result.ToInt32())
958 }
959
960 rt := NewRuntime()
961 defer rt.Close()
962
963 ctx := rt.NewContext()
964 require.NotNil(t, ctx)
965 requireImportFailure(ctx)
966 ctx.Close()
967
968 rt.SetModuleImport(true)
969 ctx = rt.NewContext()
970 require.NotNil(t, ctx)
971 requireImportSuccess(ctx)
972 ctx.Close()
973
974 rt.SetModuleImport(false)
975 ctx = rt.NewContext()
976 require.NotNil(t, ctx)
977 defer ctx.Close()
978 requireImportFailure(ctx)
979}
980
981func TestRuntimeTimeoutOpaqueLifecycle(t *testing.T) {
982 base := timeoutOpaqueCount()

Callers

nothing calls this directly

Calls 12

EvalMethod · 0.95
ExceptionMethod · 0.95
CloseMethod · 0.95
NewContextMethod · 0.95
CloseMethod · 0.95
SetModuleImportMethod · 0.95
EvalAwaitFunction · 0.85
NewRuntimeFunction · 0.85
IsExceptionMethod · 0.80
ToInt32Method · 0.80
FreeMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected