diff options
author | Louis Pilfold <louis@lpil.uk> | 2021-08-29 17:24:59 +0100 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2021-08-29 17:24:59 +0100 |
commit | 1afefdbdfa62de83bfa7334bc78d30c273cd5a93 (patch) | |
tree | d77592110b42f6a75b4140639539eb1a55665a00 /test | |
parent | c2d25106df806fd9de96f1ab3186102ba27dceab (diff) | |
download | javascript-1afefdbdfa62de83bfa7334bc78d30c273cd5a93.tar.gz javascript-1afefdbdfa62de83bfa7334bc78d30c273cd5a93.zip |
Promise tap
Diffstat (limited to 'test')
-rw-r--r-- | test/gleam/javascript/promise_test.gleam | 23 |
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 }) } |