fix: guard unavailable quest draw thread
This commit is contained in:
@@ -282,6 +282,10 @@ end
|
|||||||
_DrawAvailableQuest = function(questId)
|
_DrawAvailableQuest = function(questId)
|
||||||
NewThread(function()
|
NewThread(function()
|
||||||
local quest = QuestieDB.GetQuest(questId)
|
local quest = QuestieDB.GetQuest(questId)
|
||||||
|
if not quest then
|
||||||
|
Questie:Debug(Questie.DEBUG_LEARNER, "[AvailableQuests] Skipping unavailable quest during draw:", questId)
|
||||||
|
return
|
||||||
|
end
|
||||||
if (not quest.tagInfoWasCached) then
|
if (not quest.tagInfoWasCached) then
|
||||||
QuestieDB.GetQuestTagInfo(questId) -- cache to load in the tooltip
|
QuestieDB.GetQuestTagInfo(questId) -- cache to load in the tooltip
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
local function read(path)
|
||||||
|
local f = assert(io.open(path, "r"), "cannot open " .. path)
|
||||||
|
local c = f:read("*a")
|
||||||
|
f:close()
|
||||||
|
return c
|
||||||
|
end
|
||||||
|
|
||||||
|
describe("Questie available quests guard", function()
|
||||||
|
it("skips unavailable quests before touching tagInfoWasCached", function()
|
||||||
|
local content = read("Modules/Quest/AvailableQuests.lua")
|
||||||
|
assert.is_true(content:find("if not quest then", 1, true) ~= nil)
|
||||||
|
assert.is_true(content:find("Skipping unavailable quest during draw", 1, true) ~= nil)
|
||||||
|
assert.is_true(content:find("quest.tagInfoWasCached = true", 1, true) ~= nil)
|
||||||
|
end)
|
||||||
|
end)
|
||||||
Reference in New Issue
Block a user