From a1dc812e6c31bf613d00658d1247fe6af9cf6a26 Mon Sep 17 00:00:00 2001 From: vaisest <4550061+vaisest@users.noreply.github.com> Date: Wed, 19 Aug 2026 16:44:39 +0300 Subject: [PATCH] Fix compare tab not checking socket colours --- spec/System/TestCompareTab_spec.lua | 16 ++++++++++++++++ src/Classes/CompareEntry.lua | 3 +++ 2 files changed, 19 insertions(+) diff --git a/spec/System/TestCompareTab_spec.lua b/spec/System/TestCompareTab_spec.lua index 764a10cf1c9..1eeb3313ed9 100644 --- a/spec/System/TestCompareTab_spec.lua +++ b/spec/System/TestCompareTab_spec.lua @@ -22,4 +22,20 @@ describe("CompareTab", function() assert.is_false(control:IsShown()) end end) + it("reproduces matching-socket gem quality when comparing a build with itself", function() + newBuild() + build.itemsTab:CreateDisplayItemFromRaw( + "Rarity: RARE\nTest Subject\nSage's Robe\nQuality: 0\nSockets: B-B-B\nImplicits: 0\n") + build.itemsTab:AddDisplayItem() + build.skillsTab:PasteSocketGroup("Slot: Body Armour\nFireball 20/0 1\n") + runCallback("OnFrame") + assert.are.equals(10, build.calcsTab.mainOutput.GemQuality) + + -- doesn't actually save to a file, just encodes as xml + local entry = new("CompareEntry"):CompareEntry(build:SaveDB("code"), "Self") + + assert.is_true(entry.skillsTab.socketGroupList[1].gemList[1].matchesSocket) + assert.are.equals(build.calcsTab.mainOutput.GemQuality, entry.calcsTab.mainOutput.GemQuality) + assert.are.equals(build.calcsTab.mainOutput.CombinedDPS, entry.calcsTab.mainOutput.CombinedDPS) + end) end) diff --git a/src/Classes/CompareEntry.lua b/src/Classes/CompareEntry.lua index 2d97f4eb9cb..52925c75153 100644 --- a/src/Classes/CompareEntry.lua +++ b/src/Classes/CompareEntry.lua @@ -178,6 +178,8 @@ function CompareEntryClass:LoadFromXML(xmlText) end self:SyncCalcsSkillSelection() + -- reprocess socket groups as they might depend on items which don't necessarily load first. + self.skillsTab:UpdateSocketGroups() wipeGlobalCache() self.calcsTab:BuildOutput() self.buildFlag = false @@ -248,6 +250,7 @@ end function CompareEntryClass:Rebuild() wipeGlobalCache() self.outputRevision = self.outputRevision + 1 + self.skillsTab:UpdateSocketGroups() self.calcsTab:BuildOutput() self.buildFlag = false end