aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2021-08-29 17:18:37 +0100
committerLouis Pilfold <louis@lpil.uk>2021-08-29 17:18:37 +0100
commitc2d25106df806fd9de96f1ab3186102ba27dceab (patch)
tree833f17fd6e3821f6ee2d536ecdef96cc3418d944 /test
parent08bf033063a8d3ce789939bac36ed39fc6bc2eca (diff)
downloadjavascript-c2d25106df806fd9de96f1ab3186102ba27dceab.tar.gz
javascript-c2d25106df806fd9de96f1ab3186102ba27dceab.zip
Promises
Diffstat (limited to 'test')
-rw-r--r--test/gleam/javascript/promise_test.gleam20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/gleam/javascript/promise_test.gleam b/test/gleam/javascript/promise_test.gleam
new file mode 100644
index 0000000..876aefb
--- /dev/null
+++ b/test/gleam/javascript/promise_test.gleam
@@ -0,0 +1,20 @@
+import gleam/javascript/promise.{Promise}
+import gleam/javascript.{ObjectType}
+
+pub fn map_does_not_collapse_nested_promise_test() -> Promise(Promise(Int)) {
+ promise.resolve(1)
+ |> promise.map(promise.resolve)
+ |> promise.map(fn(value) {
+ // If the `Promise(Promise(Int))` collapsed into `Promise(Int)` (as they
+ // do for normal JS promises) then this would fail as the value would be the
+ // int value `1`.
+ assert ObjectType = javascript.type_of(value)
+ value
+ })
+}
+
+pub fn then_does_collapse_nested_promise_test() -> Promise(Int) {
+ promise.resolve(1)
+ |> promise.then(promise.resolve)
+ |> promise.map(fn(value) { assert 1 = value })
+}