TestValueAwait tests promise await functionality
(t *testing.T)
| 1547 | |
| 1548 | // TestValueAwait tests promise await functionality |
| 1549 | func TestValueAwait(t *testing.T) { |
| 1550 | useStableOwnerHooksForLegacySubtests(t) |
| 1551 | |
| 1552 | rt := NewRuntime() |
| 1553 | defer rt.Close() |
| 1554 | ctx := rt.NewContext() |
| 1555 | defer ctx.Close() |
| 1556 | |
| 1557 | // Test awaiting resolved promise - FIXED: removed error handling |
| 1558 | resolvedPromise := ctx.Eval(`Promise.resolve("resolved value")`) |
| 1559 | require.False(t, resolvedPromise.IsException()) // Check for exceptions instead of error |
| 1560 | |
| 1561 | result := resolvedPromise.Await() |
| 1562 | defer result.Free() |
| 1563 | // Check if result is an exception or valid value |
| 1564 | if result.IsException() { |
| 1565 | err := ctx.Exception() |
| 1566 | t.Logf("Promise await resulted in exception: %v", err) |
| 1567 | } else { |
| 1568 | require.Equal(t, "resolved value", result.String()) |
| 1569 | } |
| 1570 | |
| 1571 | // Test awaiting non-promise value (should return as-is) - FIXED: removed error handling |
| 1572 | normalValue := ctx.NewString("not a promise") |
| 1573 | |
| 1574 | result2 := normalValue.Await() |
| 1575 | defer result2.Free() |
| 1576 | if result2.IsException() { |
| 1577 | err := ctx.Exception() |
| 1578 | t.Logf("Non-promise await resulted in exception: %v", err) |
| 1579 | } else { |
| 1580 | require.Equal(t, "not a promise", result2.String()) |
| 1581 | } |
| 1582 | |
| 1583 | // Test awaiting rejected promise - FIXED: removed error handling |
| 1584 | rejectedPromise := ctx.Eval(`Promise.reject(new Error("test error"))`) |
| 1585 | require.False(t, rejectedPromise.IsException()) // Check for exceptions instead of error |
| 1586 | |
| 1587 | result3 := rejectedPromise.Await() |
| 1588 | defer result3.Free() |
| 1589 | // Rejected promise should result in an exception when awaited |
| 1590 | require.True(t, result3.IsException()) |
| 1591 | } |
| 1592 | |
| 1593 | // TestValueClassInstanceEdgeCases tests uncovered branches in class instance methods |
| 1594 | func TestValueClassInstanceEdgeCases(t *testing.T) { |
nothing calls this directly
no test coverage detected