mirror of
https://github.com/vrld/hump.git
synced 2024-11-23 12:24:19 +00:00
Write unit test for timer
This commit is contained in:
parent
d77e0a2324
commit
08354c472d
73
spec/timer_spec.lua
Normal file
73
spec/timer_spec.lua
Normal file
@ -0,0 +1,73 @@
|
||||
local timer = require 'timer'()
|
||||
|
||||
describe('hump.timer', function()
|
||||
it('runs a function during a specified time', function()
|
||||
local delta, remaining
|
||||
|
||||
timer:during(10, function(...) delta, remaining = ... end)
|
||||
|
||||
timer:update(2)
|
||||
assert.are.equal(delta, 2)
|
||||
assert.are.equal(8, remaining)
|
||||
|
||||
timer:update(5)
|
||||
assert.are.equal(delta, 5)
|
||||
assert.are.equal(3, remaining)
|
||||
|
||||
timer:update(10)
|
||||
assert.are.equal(delta, 10)
|
||||
assert.are.equal(0, remaining)
|
||||
end)
|
||||
|
||||
it('runs a function after a specified time', function()
|
||||
local finished1 = false
|
||||
local finished2 = false
|
||||
|
||||
timer:after(3, function(...) finished1 = true end)
|
||||
timer:after(5, function(...) finished2 = true end)
|
||||
|
||||
timer:update(4)
|
||||
assert.are.equal(true, finished1)
|
||||
assert.are.equal(false, finished2)
|
||||
|
||||
timer:update(4)
|
||||
assert.are.equal(true, finished1)
|
||||
assert.are.equal(true, finished2)
|
||||
end)
|
||||
|
||||
it('runs a function every so often', function()
|
||||
local count = 0
|
||||
|
||||
timer:every(1, function(...) count = count + 1 end)
|
||||
|
||||
timer:update(3)
|
||||
assert.are.equal(3, count)
|
||||
|
||||
timer:update(7)
|
||||
assert.are.equal(10, count)
|
||||
end)
|
||||
|
||||
it('can script timed events', function()
|
||||
local state
|
||||
|
||||
timer:script(function(wait)
|
||||
state = 'foo'
|
||||
wait(1)
|
||||
state = 'bar'
|
||||
end)
|
||||
|
||||
assert.are.equal('foo', state)
|
||||
timer:update(0.5)
|
||||
assert.are.equal('foo', state)
|
||||
timer:update(1)
|
||||
assert.are.equal('bar', state)
|
||||
end)
|
||||
|
||||
it('cancels and clears timer functions', function()
|
||||
pending('to be tested...')
|
||||
end)
|
||||
|
||||
it('tweens', function()
|
||||
pending('to be tested...')
|
||||
end)
|
||||
end)
|
Loading…
Reference in New Issue
Block a user