From d7e233566543d4c83199f5644f90bb116d7070f2 Mon Sep 17 00:00:00 2001 From: William Boman Date: Sat, 25 Dec 2021 15:11:42 +0100 Subject: add some tests (#360) --- tests/luassertx/lua/luassertx.lua | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 tests/luassertx/lua/luassertx.lua (limited to 'tests/luassertx/lua/luassertx.lua') diff --git a/tests/luassertx/lua/luassertx.lua b/tests/luassertx/lua/luassertx.lua new file mode 100644 index 00000000..33fa9957 --- /dev/null +++ b/tests/luassertx/lua/luassertx.lua @@ -0,0 +1,27 @@ +local a = require "plenary.async" +local assert = require "luassert" + +local function wait_for(_, arguments) + ---@type fun() @Function to execute until it does not error. + local assertions_fn = arguments[1] + ---@type number @Timeout in milliseconds. Defaults to 5000. + local timeout = arguments[2] + timeout = timeout or 15000 + + local start = vim.loop.hrtime() + local is_ok, err + repeat + is_ok, err = pcall(assertions_fn) + if not is_ok then + a.util.sleep(math.min(timeout, 100)) + end + until is_ok or ((vim.loop.hrtime() - start) / 1e6) > timeout + + if not is_ok then + error(err) + end + + return is_ok +end + +assert:register("assertion", "wait_for", wait_for) -- cgit v1.2.3-70-g09d2