test(#551): pin browse-commit parity for MTConnect + MQTT, and record the Sql row-selector gap
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.
This commit is contained in:
@@ -318,9 +318,18 @@ public sealed class RawTagConfigGateTests
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Every blob <see cref="RawBrowseCommitMapper.BuildTagConfig"/> 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 <see cref="IRawTreeService.ImportTagsAsync"/>, so every blob
|
||||
/// <see cref="RawBrowseCommitMapper.BuildTagConfig"/> emits must survive the gate — otherwise the
|
||||
/// commit would author rows the import refuses.
|
||||
/// <para>
|
||||
/// <b><c>Sql</c> is deliberately absent, and that is a FINDING, not an oversight.</b> Its branch
|
||||
/// emits <c>{"model":"WideRow","table":…,"columnName":…}</c> with no <c>rowSelector</c>, which
|
||||
/// <c>SqlTagConfigModel.Validate</c> refuses and <c>SqlEquipmentTagParser</c> 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).
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="driverType">The browsable driver type.</param>
|
||||
[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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user