1
Files
flake-nixinator/config/neovim/store/lazy-plugins/promise-async/spec/fixtures.lua

51 lines
1.1 KiB
Lua

local busted = require('busted')
local _done
local co = _G.co
busted.subscribe({'test', 'start'}, function()
_done = false
end)
local function getDone()
return _done
end
function _G.done()
_done = true
return _done
end
---------------------------------------------------------------------
---Need to implement _G.wait to pass tests
local defaultTimeout = 1000
---Should override this function to customize EventLoop to pass tests
---@param ms? number
---@return boolean
function _G.wait(ms)
if getDone() then
return true
end
local interval = 5
local timer = require('luv').new_timer()
local cnt = 0
ms = ms or defaultTimeout
timer:start(interval, interval, function()
cnt = cnt + interval
local d = getDone()
if cnt >= ms or d then
timer:stop()
timer:close()
local thread = coroutine.running()
if thread ~= co then
require('spec.helpers.init').setTimeout(function()
coroutine.resume(co, d)
end, 0)
end
end
end)
return coroutine.yield()
end