From 1ce6e8b1076df321dd532c58ac0d18644e9b388a Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Mon, 10 Aug 2026 00:19:16 -0400 Subject: [PATCH] test(#551): pin browse-commit parity for MTConnect + MQTT, and record the Sql row-selector gap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Verified against the live mapper: every browsable driver's browse-committed TagConfig passes the gate the commit now runs, EXCEPT Sql — its branch emits a WideRow blob with no rowSelector, which SqlTagConfigModel and SqlEquipmentTagParser both refuse. That tag was never readable; the gate only moves the failure from the deploy gate to the commit. Reported for its own fix rather than special-cased here. --- .../Uns/RawTagConfigGateTests.cs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/tests/Server/ZB.MOM.WW.OtOpcUa.AdminUI.Tests/Uns/RawTagConfigGateTests.cs b/tests/Server/ZB.MOM.WW.OtOpcUa.AdminUI.Tests/Uns/RawTagConfigGateTests.cs index cf8ea634..5305df94 100644 --- a/tests/Server/ZB.MOM.WW.OtOpcUa.AdminUI.Tests/Uns/RawTagConfigGateTests.cs +++ b/tests/Server/ZB.MOM.WW.OtOpcUa.AdminUI.Tests/Uns/RawTagConfigGateTests.cs @@ -318,9 +318,18 @@ public sealed class RawTagConfigGateTests } /// - /// Every blob emits for a browsable driver must - /// survive the gate the commit now passes through — otherwise browse-commit would author rows the - /// import refuses. + /// Browse-commit goes through , so every blob + /// emits must survive the gate — otherwise the + /// commit would author rows the import refuses. + /// + /// Sql is deliberately absent, and that is a FINDING, not an oversight. Its branch + /// emits {"model":"WideRow","table":…,"columnName":…} with no rowSelector, which + /// SqlTagConfigModel.Validate refuses and SqlEquipmentTagParser refuses too — so a + /// browse-committed Sql tag has never been readable, it merely failed later (at the deploy gate, + /// or silently at the driver) instead of at commit. Pinning today's behaviour either way would + /// encode a defect; it is reported for its own fix (the browse session should state a row + /// selector, or Sql should commit through the typed editor). + /// /// /// The browsable driver type. [Theory] @@ -329,6 +338,8 @@ public sealed class RawTagConfigGateTests [InlineData(DriverTypeNames.AbLegacy)] [InlineData(DriverTypeNames.TwinCAT)] [InlineData(DriverTypeNames.OpcUaClient)] + [InlineData(DriverTypeNames.MTConnect)] + [InlineData(DriverTypeNames.Mqtt)] [InlineData(DriverTypeNames.Galaxy)] public void A_browse_committed_config_passes_the_gate(string driverType) {