From 1d459b6d19118b9944d5313e4439cb361d607366 Mon Sep 17 00:00:00 2001 From: William Boman Date: Thu, 21 Jul 2022 14:15:11 +0200 Subject: init --- tests/helpers/lua/test_helpers.lua | 49 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 tests/helpers/lua/test_helpers.lua (limited to 'tests/helpers/lua/test_helpers.lua') diff --git a/tests/helpers/lua/test_helpers.lua b/tests/helpers/lua/test_helpers.lua new file mode 100644 index 0000000..57c0b4f --- /dev/null +++ b/tests/helpers/lua/test_helpers.lua @@ -0,0 +1,49 @@ +---@diagnostic disable: lowercase-global +local util = require "luassert.util" +local spy = require "luassert.spy" + +local a = require "mason-core.async" +local InstallHandle = require "mason-core.installer.handle" +local InstallContext = require "mason-core.installer.context" +local registry = require "mason-registry" + +function async_test(suspend_fn) + return function() + local ok, err = pcall(a.run_blocking, suspend_fn) + if not ok then + error(err, util.errorlevel()) + end + end +end + +mockx = { + just_runs = function() end, + returns = function(val) + return function() + return val + end + end, + throws = function(exception) + return function() + error(exception, 2) + end + end, +} + +---@param package_name string +function InstallHandleGenerator(package_name) + return InstallHandle.new(registry.get_package(package_name)) +end + +---@param handle InstallHandle +---@param opts InstallContextOpts | nil +function InstallContextGenerator(handle, opts) + local context = InstallContext.new(handle, opts or {}) + context.spawn = setmetatable({}, { + __index = function(s, cmd) + s[cmd] = spy.new(mockx.just_runs()) + return s[cmd] + end, + }) + return context +end -- cgit v1.2.3-70-g09d2