followup #16871 asyncjs.then: allow pipelining procs returning futures (#17189)

* followup #16871 asyncjs.then: allow pipelining procs returning futures
* rename test files where they belong
* fix tests
* tests for then with `onReject` callback
* rename test file containing fail to avoid messing with grep
* address comments
* cleanup
* un-disable 1 test
This commit is contained in:
Timothee Cour 2021-03-04 05:00:04 -08:00 • committed by GitHub
commit a66637bda4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 87 additions and 28 deletions

22
tests/js/tasyncjs_bad.nim Normal file
View file

@ -0,0 +1,22 @@
discard """
exitCode: 1
outputsub: "Error: unhandled exception: foobar: 13"
"""
# note: this needs `--unhandled-rejections=strict`, see D20210217T215950
import std/asyncjs
from std/sugar import `=>`
proc fn(n: int): Future[int] {.async.} =
if n >= 7: raise newException(ValueError, "foobar: " & $n)
else: result = n
proc main() {.async.} =
let x1 = await fn(6)
doAssert x1 == 6
await fn(7).catch((a: Error) => (discard))
let x3 = await fn(13)
doAssert false # shouldn't go here, should fail before
discard main()