Mercurial > prosody-hg
comparison spec/util_async_spec.lua @ 8624:5325f0e1791b
util.async: tests: Ensure done() can be called before wait()
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Sat, 17 Mar 2018 18:23:39 +0000 |
| parents | ab242c513bf4 |
| children | e88744fa0985 |
comparison
equal
deleted
inserted
replaced
| 8623:ab242c513bf4 | 8624:5325f0e1791b |
|---|---|
| 531 assert.equal(r1.state, "ready"); | 531 assert.equal(r1.state, "ready"); |
| 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 | |
| 537 it("should allow done() to be called before wait()", function () | |
| 538 local processed_item; | |
| 539 local rf = spy.new(function (item) | |
| 540 local wait, done = async.waiter(); | |
| 541 done(); | |
| 542 wait(); | |
| 543 processed_item = item; | |
| 544 end); | |
| 545 local r = async.runner(rf, mock_watchers()); | |
| 546 r:run("test"); | |
| 547 assert.equal(processed_item, "test"); | |
| 548 assert.equal(r.state, "ready"); | |
| 549 -- Since the observable state did not change, | |
| 550 -- the watchers should not have been called | |
| 551 assert.spy(r.watchers.waiting).was_not.called(); | |
| 552 assert.spy(r.watchers.ready).was_not.called(); | |
| 553 end); | |
| 536 end); | 554 end); |
| 537 end); | 555 end); |
