• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

node-opcua / node-opcua / 23259784310 / 1
92%
master: 92%

Build:
DEFAULT BRANCH: master
Ran 18 Mar 2026 06:54PM UTC
Files 1193
Run time 38s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

18 Mar 2026 06:07PM UTC coverage: 92.728% (+0.01%) from 92.718%
23259784310.1

push

github

erossignon
fix: setValueFromSource corrupts terminal-type fields in bound extension objects

The _update_extension_object function used
`instanceof Object` to decide whether to recurse
into a field. Since all non-primitive types satisfy
this check (Date, Buffer, NodeId, QualifiedName,
LocalizedText, DiagnosticInfo, arrays), the function
recursed into them instead of assigning directly
through the proxy.

This caused two bugs:
- Date values silently revert to 1601-01-01 because
  Object.keys(date) returns [], so nothing is set.
- All terminal object types bypass the proxy set
  trap, so child variable value_changed events are
  never emitted and OPC UA subscriptions silently
  miss changes.

The fix replaces `instanceof Object` with two
whitelist functions:
- _shouldRecurseIntoExisting: uses isProxy() to
  identify sub-structures installed by
  bindExtensionObject
- _shouldRecurseIntoNew: uses plain-object check
  plus constructor name exclusions for QualifiedName,
  LocalizedText, DiagnosticInfo (which have schema
  but are terminal types)

Added 13 unit tests (TV-1..9 value tests +
NB-1..4 notification tests) with XML fixture
covering all terminal types.

Also applied biome lint fixes (noExplicitAny) across
test_bindExtensionObject.ts,
test_extension_object_with_dates.ts, and
test_bug_setValueFromSource_terminal_values.ts.

18315 of 21703 branches covered (84.39%)

161501 of 174167 relevant lines covered (92.73%)

463039.95 hits per line

Source Files on job 23259784310.1
  • Tree
  • List 1193
  • Changed 5
  • Source Changed 2
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Build 23259784310
  • b19a68d9 on github
  • Prev Job for on master (#23242951477.1)
  • Next Job for on master (#23259908054.1)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc