local h = require("harness") local t = h.module("time") t.check("now is a number that moves forward", function() local a = reskate.time.now() assert(type(a) == "number" and a > 0) assert(reskate.time.now() >= a) end) t.later("after runs once", 2000, function(done) local count = 0 reskate.time.after(50, function() count += 1 end) reskate.time.after(400, function() done(count == 1, "it ran " .. count .. " times") end) end) t.later("every repeats, and cancel stops it", 2000, function(done) local count = 0 local id = reskate.time.every(50, function() count += 1 end) reskate.time.after(300, function() reskate.time.cancel(id) local at = count reskate.time.after(200, function() done(count >= 3 and count == at, "it counted " .. count .. ", and " .. at .. " when cancelled") end) end) end) t.check("negative, NaN and zero repeats are refused", function() h.refused(reskate.time.after, -1, print) h.refused(reskate.time.after, 0 / 0, print) h.refused(reskate.time.every, 0, print) h.refused(reskate.time.after, 10, "not a function") end)