@@ -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 ([[
6775Slot: %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