Software /
code /
prosody
Changeset
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 (2018-03-17) |
parents | 8623:ab242c513bf4 |
children | 8625:08bf4df6fdb7 |
files | spec/util_async_spec.lua |
diffstat | 1 files changed, 18 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/spec/util_async_spec.lua Sat Mar 17 18:12:31 2018 +0000 +++ b/spec/util_async_spec.lua Sat Mar 17 18:23:39 2018 +0000 @@ -533,5 +533,23 @@ assert.equal(r1.state, "ready"); --for k, v in ipairs(l1) do print(k,v) end end); + + it("should allow done() to be called before wait()", function () + local processed_item; + local rf = spy.new(function (item) + local wait, done = async.waiter(); + done(); + wait(); + processed_item = item; + end); + local r = async.runner(rf, mock_watchers()); + r:run("test"); + assert.equal(processed_item, "test"); + assert.equal(r.state, "ready"); + -- Since the observable state did not change, + -- the watchers should not have been called + assert.spy(r.watchers.waiting).was_not.called(); + assert.spy(r.watchers.ready).was_not.called(); + end); end); end);