Skip to content
39 changes: 39 additions & 0 deletions spec/System/TestTreeTab_spec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@ describe("TreeTab", function()
local originalClusterNodeMap
local originalMasteryEffects

local function findMasteryNode()
for _, node in pairs(build.spec.nodes) do
if node.type == "Mastery" and node.masteryEffects and #node.masteryEffects > 0 then
return node
end
end
end

before_each(function()
newBuild()
originalClusterNodeMap = build.spec.tree.clusterNodeMap
Expand All @@ -13,6 +21,37 @@ describe("TreeTab", function()
build.spec.tree.masteryEffects = originalMasteryEffects
end)

it("restores a Runegraft after rebuilding mastery options", function()
local node = assert(findMasteryNode())
local override
for _, tattooNode in pairs(build.spec.tree.tattoo.nodes) do
if tattooNode.overrideType == "AlternateMastery" then
override = copyTable(tattooNode, true)
break
end
end
assert(override)
override.id = node.id
build.spec.hashOverrides[node.id] = override
build.spec:ReplaceNode(node, override)

build.spec:DeallocSingleNode(node)
build.spec:BuildAllDependsAndPaths()

assert.is_false(node.allMasteryOptions)
assert.are.equal("AlternateMastery", node.overrideType)
end)

it("clears the selected mastery reminder after deallocation", function()
local node = assert(findMasteryNode())
node.reminderText = { "Tip: Right click to select a different effect" }

build.spec:DeallocSingleNode(node)
build.spec:BuildAllDependsAndPaths()

assert.is_nil(node.reminderText)
end)

it("adds separate power report entries for mastery effects", function()
local treeTab = build.treeTab
local parentNode = { id = 2 }
Expand Down
1 change: 0 additions & 1 deletion src/Classes/ItemsTab.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4164,7 +4164,6 @@ local function buildSpecForJewelComparison(itemsTab, compareSlot, replacementIte
else
spec.jewels[compareSlot.nodeId] = nil
end

local ok, err = xpcall(function()
spec:BuildAllDependsAndPaths()
end, debug.traceback)
Expand Down
Loading
Loading