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
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);