Mercurial > prosody-hg
comparison spec/util_async_spec.lua @ 8628:e88744fa0985
util.async: Add some more tests for wait/done
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Sun, 18 Mar 2018 22:43:06 +0000 |
| parents | 5325f0e1791b |
| children | deade38ffbbd |
comparison
equal
deleted
inserted
replaced
| 8627:24b59a62acce | 8628:e88744fa0985 |
|---|---|
| 532 | 532 |
| 533 assert.equal(r1.state, "ready"); | 533 assert.equal(r1.state, "ready"); |
| 534 --for k, v in ipairs(l1) do print(k,v) end | 534 --for k, v in ipairs(l1) do print(k,v) end |
| 535 end); | 535 end); |
| 536 | 536 |
| 537 it("should support multiple done() calls", function () | |
| 538 local processed_item; | |
| 539 local wait, done; | |
| 540 local rf = spy.new(function (item) | |
| 541 wait, done = async.waiter(4); | |
| 542 wait(); | |
| 543 processed_item = item; | |
| 544 end); | |
| 545 local r = async.runner(rf, mock_watchers()); | |
| 546 r:run("test"); | |
| 547 for i = 1, 3 do | |
| 548 done(); | |
| 549 assert.equal(r.state, "waiting"); | |
| 550 assert.is_nil(processed_item); | |
| 551 end | |
| 552 done(); | |
| 553 assert.equal(r.state, "ready"); | |
| 554 assert.equal(processed_item, "test"); | |
| 555 assert.spy(r.watchers.error).was_not.called(); | |
| 556 end); | |
| 557 | |
| 558 it("should not allow done() to be called more than specified", function () | |
| 559 local processed_item; | |
| 560 local wait, done; | |
| 561 local rf = spy.new(function (item) | |
| 562 wait, done = async.waiter(4); | |
| 563 wait(); | |
| 564 processed_item = item; | |
| 565 end); | |
| 566 local r = async.runner(rf, mock_watchers()); | |
| 567 r:run("test"); | |
| 568 for i = 1, 4 do | |
| 569 done(); | |
| 570 end | |
| 571 assert.has_error(done);; | |
| 572 assert.equal(r.state, "ready"); | |
| 573 assert.equal(processed_item, "test"); | |
| 574 assert.spy(r.watchers.error).was_not.called(); | |
| 575 end); | |
| 576 | |
| 537 it("should allow done() to be called before wait()", function () | 577 it("should allow done() to be called before wait()", function () |
| 538 local processed_item; | 578 local processed_item; |
| 539 local rf = spy.new(function (item) | 579 local rf = spy.new(function (item) |
| 540 local wait, done = async.waiter(); | 580 local wait, done = async.waiter(); |
| 541 done(); | 581 done(); |
