Software / code / prosody
Comparison
spec/util_promise_spec.lua @ 9517:b1c6ede17592
util.promise: Add promise.try()
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Thu, 18 Oct 2018 18:03:31 +0100 |
| parent | 9514:9db707a86a25 |
| child | 9549:800c274928bf |
comparison
equal
deleted
inserted
replaced
| 9516:038446c50630 | 9517:b1c6ede17592 |
|---|---|
| 329 assert.spy(on_finally).was_not_called_with("foo"); | 329 assert.spy(on_finally).was_not_called_with("foo"); |
| 330 assert.spy(on_finally).was_not_called_with(test_error); | 330 assert.spy(on_finally).was_not_called_with(test_error); |
| 331 assert.spy(on_finally_err).was_called_with(test_error); | 331 assert.spy(on_finally_err).was_called_with(test_error); |
| 332 end); | 332 end); |
| 333 end); | 333 end); |
| 334 describe("try()", function () | |
| 335 it("works with functions that return a promise", function () | |
| 336 local resolve; | |
| 337 local p = promise.try(function () | |
| 338 return promise.new(function (_resolve) | |
| 339 resolve = _resolve; | |
| 340 end); | |
| 341 end); | |
| 342 assert.is_function(resolve); | |
| 343 local on_resolved = spy.new(function () end); | |
| 344 p:next(on_resolved); | |
| 345 assert.spy(on_resolved).was_not_called(); | |
| 346 resolve("foo"); | |
| 347 assert.spy(on_resolved).was_called_with("foo"); | |
| 348 end); | |
| 349 | |
| 350 it("works with functions that return a value", function () | |
| 351 local p = promise.try(function () | |
| 352 return "foo"; | |
| 353 end); | |
| 354 local on_resolved = spy.new(function () end); | |
| 355 p:next(on_resolved); | |
| 356 assert.spy(on_resolved).was_called_with("foo"); | |
| 357 end); | |
| 358 | |
| 359 it("works with functions that return a promise that rejects", function () | |
| 360 local reject; | |
| 361 local p = promise.try(function () | |
| 362 return promise.new(function (_, _reject) | |
| 363 reject = _reject; | |
| 364 end); | |
| 365 end); | |
| 366 assert.is_function(reject); | |
| 367 local on_rejected = spy.new(function () end); | |
| 368 p:catch(on_rejected); | |
| 369 assert.spy(on_rejected).was_not_called(); | |
| 370 reject("foo"); | |
| 371 assert.spy(on_rejected).was_called_with("foo"); | |
| 372 end); | |
| 373 | |
| 374 it("works with functions that throw errors", function () | |
| 375 local test_error = {}; | |
| 376 local p = promise.try(function () | |
| 377 error(test_error); | |
| 378 end); | |
| 379 local on_rejected = spy.new(function () end); | |
| 380 p:catch(on_rejected); | |
| 381 assert.spy(on_rejected).was_called(1); | |
| 382 assert.spy(on_rejected).was_called_with(test_error); | |
| 383 end); | |
| 384 end); | |
| 334 end); | 385 end); |