fix: reset player cache on prestige
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
describe("QuestiePlayer prestige reset", function()
|
||||
local resetCalls
|
||||
|
||||
before_each(function()
|
||||
dofile("Tests/wow_api_mock.lua")
|
||||
|
||||
resetCalls = 0
|
||||
QuestieQuest.SmoothReset = function()
|
||||
resetCalls = resetCalls + 1
|
||||
end
|
||||
|
||||
dofile("Modules/QuestiePlayer.lua")
|
||||
QuestiePlayer.private.playerLevel = 70
|
||||
end)
|
||||
|
||||
it("drops the cached level to 1 and refreshes quest state when prestige restarts", function()
|
||||
_G.UnitLevel = function()
|
||||
return 1
|
||||
end
|
||||
|
||||
local resetTriggered = QuestiePlayer:SetPlayerLevel(1)
|
||||
|
||||
assert.is_true(resetTriggered)
|
||||
assert.equals(1, QuestiePlayer.private.playerLevel)
|
||||
assert.equals(1, resetCalls)
|
||||
end)
|
||||
|
||||
it("does not treat an ordinary level 1 login as a prestige reset", function()
|
||||
QuestiePlayer.private.playerLevel = 1
|
||||
_G.UnitLevel = function()
|
||||
return 1
|
||||
end
|
||||
|
||||
local resetTriggered = QuestiePlayer:SetPlayerLevel(1)
|
||||
|
||||
assert.is_false(resetTriggered)
|
||||
assert.equals(1, QuestiePlayer.private.playerLevel)
|
||||
assert.equals(0, resetCalls)
|
||||
end)
|
||||
end)
|
||||
Reference in New Issue
Block a user