aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2021-08-29 17:24:59 +0100
committerLouis Pilfold <louis@lpil.uk>2021-08-29 17:24:59 +0100
commit1afefdbdfa62de83bfa7334bc78d30c273cd5a93 (patch)
treed77592110b42f6a75b4140639539eb1a55665a00 /test
parentc2d25106df806fd9de96f1ab3186102ba27dceab (diff)
downloadjavascript-1afefdbdfa62de83bfa7334bc78d30c273cd5a93.tar.gz
javascript-1afefdbdfa62de83bfa7334bc78d30c273cd5a93.zip
Promise tap
Diffstat (limited to 'test')
-rw-r--r--test/gleam/javascript/promise_test.gleam23
1 files changed, 20 insertions, 3 deletions
diff --git a/test/gleam/javascript/promise_test.gleam b/test/gleam/javascript/promise_test.gleam
index 876aefb..289714b 100644
--- a/test/gleam/javascript/promise_test.gleam
+++ b/test/gleam/javascript/promise_test.gleam
@@ -4,17 +4,34 @@ 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) {
+ |> promise.tap(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_test() -> Promise(Int) {
+ promise.resolve(1)
+ |> promise.then(fn(a) { promise.resolve(a + 1) })
+ |> promise.tap(fn(a) { assert 2 = a })
+}
+
pub fn then_does_collapse_nested_promise_test() -> Promise(Int) {
promise.resolve(1)
|> promise.then(promise.resolve)
- |> promise.map(fn(value) { assert 1 = value })
+ |> promise.tap(fn(value) { assert 1 = value })
+}
+
+pub fn map_test() -> Promise(Int) {
+ promise.resolve(1)
+ |> promise.map(fn(a) { a + 1 })
+ |> promise.tap(fn(a) { assert 2 = a })
+}
+
+pub fn tap_test() -> Promise(Int) {
+ promise.resolve(1)
+ |> promise.tap(fn(a) { a + 1 })
+ |> promise.tap(fn(a) { assert 1 = a })
}