Skip to content

Commit d1ca46e

Browse files
committed
test: cover clear-items reimport
1 parent d7ea06a commit d1ca46e

1 file changed

Lines changed: 41 additions & 5 deletions

File tree

spec/System/TestImportReimport_spec.lua

Lines changed: 41 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,15 +53,23 @@ describe("TestImportReimport", function()
5353
})
5454
end
5555

56-
local function reimportSingleSocketedGem(itemTypeLine, inventoryId, gemName)
56+
local function reimportSocketedItemsWithOptions(itemTypeLine, inventoryId, socketedItems, clearItems)
5757
build.importTab.controls.charImportItemsClearSkills.state = true
58-
build.importTab.controls.charImportItemsClearItems.state = false
59-
build.importTab:ImportItemsAndSkills(buildImportPayload(itemTypeLine, inventoryId, {
60-
makeSocketedGemEntry(0, false, gemName, 20),
61-
}))
58+
build.importTab.controls.charImportItemsClearItems.state = clearItems
59+
build.importTab:ImportItemsAndSkills(buildImportPayload(itemTypeLine, inventoryId, socketedItems))
6260
runCallback("OnFrame")
6361
end
6462

63+
local function reimportSingleSocketedGemWithOptions(itemTypeLine, inventoryId, gemName, clearItems)
64+
reimportSocketedItemsWithOptions(itemTypeLine, inventoryId, {
65+
makeSocketedGemEntry(0, false, gemName, 20),
66+
}, clearItems)
67+
end
68+
69+
local function reimportSingleSocketedGem(itemTypeLine, inventoryId, gemName)
70+
reimportSingleSocketedGemWithOptions(itemTypeLine, inventoryId, gemName, false)
71+
end
72+
6573
local function assertReimportPreservesSkillSubstate(slotName, itemTypeLine, inventoryId, gemName, fieldName, fieldValue)
6674
build.skillsTab:PasteSocketGroup(string.format([[
6775
Slot: %s
@@ -116,6 +124,34 @@ Added Fire Damage 1/0 Default DISABLED 1
116124
assert.is_false(socketGroup.gemList[3].enabled)
117125
end)
118126

127+
it("preserves full DPS state and disabled gems when reimporting with deleted equipment", function()
128+
build.skillsTab:PasteSocketGroup([[
129+
Slot: Helmet
130+
Cleave 1/0 Default 1
131+
Heavy Strike 1/0 Default 1
132+
Added Fire Damage 1/0 Default DISABLED 1
133+
]])
134+
runCallback("OnFrame")
135+
136+
local socketGroup = build.skillsTab.socketGroupList[1]
137+
socketGroup.includeInFullDPS = true
138+
socketGroup.mainActiveSkill = 2
139+
runCallback("OnFrame")
140+
141+
reimportSocketedItemsWithOptions("Iron Hat", "Helm", {
142+
makeSocketedGemEntry(0, false, "Cleave", 1),
143+
makeSocketedGemEntry(1, false, "Heavy Strike", 1),
144+
makeSocketedGemEntry(2, true, "Added Fire Damage Support", 2),
145+
}, true)
146+
147+
socketGroup = build.skillsTab.socketGroupList[1]
148+
assert.are.equal("Helmet", socketGroup.slot)
149+
assert.is_true(socketGroup.includeInFullDPS)
150+
assert.are.equal(2, socketGroup.mainActiveSkill)
151+
assert.are.equal(2, socketGroup.gemList[3].level)
152+
assert.is_false(socketGroup.gemList[3].enabled)
153+
end)
154+
119155
it("preserves skill part selection when reimporting items and skills", function()
120156
assertReimportPreservesSkillSubstate("Helmet", "Iron Hat", "Helm", "Blight", "skillPart", 2)
121157
end)

0 commit comments

Comments
 (0)