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

Function TestContextLoadModuleAsyncPromiseExecutorTimeout

context_test.go:657–681  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

655}
656
657func TestContextLoadModuleAsyncPromiseExecutorTimeout(t *testing.T) {
658 rt := NewRuntime(WithModuleImport(true), WithExecuteTimeout(1))
659 defer rt.Close()
660
661 ctx := rt.NewContext()
662 require.NotNil(t, ctx)
663 defer ctx.Close()
664
665 start := time.Now()
666 result := ctx.LoadModule(`
667 export default 123;
668 await new Promise((res, rej) => {
669 // keep pending forever to exercise timeout fallback
670 });
671 `, "issue_471_async_executor")
672 defer result.Free()
673
674 elapsed := time.Since(start)
675 require.True(t, result.IsException())
676
677 err := ctx.Exception()
678 require.Error(t, err)
679 require.Contains(t, err.Error(), "interrupted")
680 require.Less(t, elapsed, 3*time.Second)
681}
682
683func TestContextLoadModuleAsyncPromiseExecutorUnhandledRejection(t *testing.T) {
684 rt := NewRuntime(WithModuleImport(true), WithExecuteTimeout(30))

Callers

nothing calls this directly

Calls 11

CloseMethod · 0.95
NewContextMethod · 0.95
CloseMethod · 0.95
LoadModuleMethod · 0.95
ExceptionMethod · 0.95
NewRuntimeFunction · 0.85
WithModuleImportFunction · 0.85
WithExecuteTimeoutFunction · 0.85
IsExceptionMethod · 0.80
FreeMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected