This commit is contained in:
2026-01-28 21:55:20 -05:00
parent 513674b0c8
commit dcd516d970
10 changed files with 90 additions and 179 deletions

View File

@@ -6,9 +6,9 @@ import (
"strings"
"testing"
"github.com/fastschema/qjs"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"modernc.org/quickjs"
"reichard.io/poiesis/internal/functions"
)
@@ -48,11 +48,17 @@ func TestAsyncFunctionResolution(t *testing.T) {
})
r, err := New(context.Background())
require.NoError(t, err)
assert.NoError(t, err)
result, err := r.vm.Eval(`resolveTest("hello")`, quickjs.EvalGlobal)
require.NoError(t, err)
assert.NotNil(t, result)
result, err := r.ctx.Eval("test.js", qjs.Code(`(async () => { return await resolveTest({field1: "hello"}); })()`))
if err == nil && result != nil {
defer result.Free()
val, err := result.Await()
assert.NoError(t, err)
assert.Equal(t, "test-result", val.String())
} else {
t.Logf("Skipping async test - error: %v", err)
}
}
func TestAsyncFunctionRejection(t *testing.T) {
@@ -61,11 +67,10 @@ func TestAsyncFunctionRejection(t *testing.T) {
})
r, err := New(context.Background())
require.NoError(t, err)
assert.NoError(t, err)
result, err := r.vm.Eval(`rejectTest({field1: "hello"})`, quickjs.EvalGlobal)
require.NoError(t, err)
assert.NotNil(t, result)
_, err = r.ctx.Eval("test.js", qjs.Code(`(async () => { return await rejectTest({field1: "hello"}); })()`))
assert.Error(t, err)
}
func TestNonPromise(t *testing.T) {
@@ -74,15 +79,11 @@ func TestNonPromise(t *testing.T) {
})
r, err := New(context.Background())
require.NoError(t, err)
assert.NoError(t, err)
result, err := r.vm.Eval(`nonPromiseTest({field1: "hello"})`, quickjs.EvalGlobal)
require.NoError(t, err)
result, err := r.ctx.Eval("test.js", qjs.Code(`nonPromiseTest("hello")`))
assert.NoError(t, err)
defer result.Free()
if obj, ok := result.(*quickjs.Object); ok {
var arr []any
if err := obj.Into(&arr); err == nil && len(arr) > 0 {
assert.Equal(t, "sync-result", arr[0])
}
}
assert.Equal(t, "sync-result", result.String())
}