From 7907b1fca5fce69e966ab1071df8e6d11afda41d Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Fri, 21 Jul 2023 13:34:38 +0200 Subject: [PATCH] test(vim.ui.open): mock failure on Windows Problem: On Windows, `rundll32` exits zero (success) even when given a non-existent file. Solution: Mock vim.system() on Windows to force a "failure" case. --- test/functional/lua/ui_spec.lua | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/test/functional/lua/ui_spec.lua b/test/functional/lua/ui_spec.lua index 808b25d9ea..d4c150c5f2 100644 --- a/test/functional/lua/ui_spec.lua +++ b/test/functional/lua/ui_spec.lua @@ -6,6 +6,7 @@ local clear = helpers.clear local feed = helpers.feed local eval = helpers.eval local is_ci = helpers.is_ci +local is_os = helpers.is_os local poke_eventloop = helpers.poke_eventloop describe('vim.ui', function() @@ -134,8 +135,11 @@ describe('vim.ui', function() describe('open()', function() it('validation', function() - if is_ci('github') then - matches('vim.ui.open: command failed %(%d%): { "[^"]+", "non%-existent%-file" }', + if is_os('win') or not is_ci('github') then + exec_lua[[vim.system = function() return { wait=function() return { code=3} end } end]] + end + if not is_os('bsd') then + matches('vim.ui.open: command failed %(%d%): { "[^"]+", .*"non%-existent%-file" }', exec_lua[[local _, err = vim.ui.open('non-existent-file') ; return err]]) end