113 lines
3.7 KiB
Lua
113 lines
3.7 KiB
Lua
describe("QuestieLearner auto mode static spawn precedence", function()
|
|
local originalImportModule
|
|
|
|
local function loadObjectiveBuilders()
|
|
originalImportModule = QuestieLoader.ImportModule
|
|
_G.QuestieCorrections = {
|
|
questNPCBlacklist = {},
|
|
}
|
|
QuestieLoader.ImportModule = function(self, name)
|
|
if name == "QuestieCorrections" then return _G.QuestieCorrections end
|
|
return originalImportModule(self, name)
|
|
end
|
|
|
|
QuestieQuest.private = {
|
|
objectiveSpawnListCallTable = {},
|
|
}
|
|
dofile("Modules/Quest/QuestieQuestPrivates.lua")
|
|
return QuestieQuest.private.objectiveSpawnListCallTable
|
|
end
|
|
|
|
before_each(function()
|
|
dofile("Tests/wow_api_mock.lua")
|
|
Questie.IsAscension = true
|
|
Questie.ICON_TYPE_MONSTER = "monster"
|
|
Questie.ICON_TYPE_OBJECT = "object"
|
|
Questie.db.profile.monsterScale = 1
|
|
Questie.db.profile.objectScale = 1
|
|
Questie.dbLearner.global.settings.enabled = true
|
|
Questie.dbLearner.global.settings.dataSourceMode = "auto"
|
|
Questie.dbLearner.global.settings.minConfidencePins = 1
|
|
end)
|
|
|
|
after_each(function()
|
|
if originalImportModule then
|
|
QuestieLoader.ImportModule = originalImportModule
|
|
originalImportModule = nil
|
|
end
|
|
end)
|
|
|
|
it("keeps static NPC spawns in auto mode even when learner has reliable spawns", function()
|
|
QuestieDB.GetNPC = function(_, npcId)
|
|
if npcId == 15274 then
|
|
return {
|
|
name = "Mana Wyrm",
|
|
spawns = {
|
|
[3430] = {
|
|
{ 37.77, 26.01 },
|
|
{ 37.21, 25.79 },
|
|
{ 36.95, 25.44 },
|
|
},
|
|
},
|
|
}
|
|
end
|
|
end
|
|
Questie.dbLearner.global.npcs[15274] = {
|
|
[1] = "Mana Wyrm",
|
|
[7] = {
|
|
[1241] = {
|
|
{ 57.19, 40.49 },
|
|
{ 58.44, 41.31 },
|
|
},
|
|
},
|
|
mc = 166,
|
|
}
|
|
|
|
local builders = loadObjectiveBuilders()
|
|
local result = builders.monster(15274, { Description = "Mana Wyrm slain" })
|
|
|
|
assert.is_table(result)
|
|
assert.is_table(result[15274])
|
|
assert.is_table(result[15274].Spawns[3430])
|
|
assert.equals(3, table.getn(result[15274].Spawns[3430]))
|
|
assert.is_nil(result[15274].Spawns[1241])
|
|
assert.is_false(result[15274].isLearned)
|
|
end)
|
|
|
|
it("keeps static object spawns in auto mode even when learner has reliable spawns", function()
|
|
QuestieDB.GetObject = function(_, objectId)
|
|
if objectId == 9001 then
|
|
return {
|
|
name = "Static Object",
|
|
spawns = {
|
|
[12] = {
|
|
{ 10, 20 },
|
|
{ 11, 21 },
|
|
},
|
|
},
|
|
}
|
|
end
|
|
end
|
|
Questie.dbLearner.global.objects[9001] = {
|
|
[1] = "Static Object",
|
|
[4] = {
|
|
[44] = {
|
|
{ 30, 40 },
|
|
{ 31, 41 },
|
|
},
|
|
},
|
|
mc = 5,
|
|
}
|
|
|
|
local builders = loadObjectiveBuilders()
|
|
local result = builders.object(9001, { Description = "Static Object" })
|
|
|
|
assert.is_table(result)
|
|
assert.is_table(result[9001])
|
|
assert.is_table(result[9001].Spawns[12])
|
|
assert.equals(2, table.getn(result[9001].Spawns[12]))
|
|
assert.is_nil(result[9001].Spawns[44])
|
|
assert.is_false(result[9001].isLearned)
|
|
end)
|
|
end)
|