From bd92d8f27ab1dc25b61a42beeb499bac6f7cdbd7 Mon Sep 17 00:00:00 2001 From: lethosor Date: Tue, 15 Dec 2020 21:27:04 -0500 Subject: [PATCH] Make require() reload modules when run in tests --- test/main.lua | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test/main.lua b/test/main.lua index 2e8b52df1..be3993fb4 100644 --- a/test/main.lua +++ b/test/main.lua @@ -104,6 +104,16 @@ function delay(frames) script.sleep(frames, 'frames') end +function clean_require(module) + -- wrapper around require() - forces a clean load of every module to ensure + -- that modules checking for dfhack.internal.IN_TEST at load time behave + -- properly + if package.loaded[module] then + reload(module) + end + return require(module) +end + function ensure_title_screen() if df.viewscreen_titlest:is_instance(dfhack.gui.getCurViewscreen()) then return @@ -153,6 +163,7 @@ function build_test_env() }, expect = {}, delay = delay, + require = clean_require, } local private = { checks = 0,