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

node-opcua / node-opcua / 23259784310
93%

Build:
DEFAULT BRANCH: master
Ran 18 Mar 2026 06:54PM UTC
Jobs 1
Files 1193
Run time 2min
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

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%)

43 of 46 new or added lines in 1 file covered. (93.48%)

3 existing lines in 1 file now uncovered.

161501 of 174167 relevant lines covered (92.73%)

463039.95 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
3
91.83
-0.05% packages/node-opcua-address-space/src/ua_variable_impl_ext_obj.ts

Uncovered Existing Lines

Lines Coverage ∆ File
3
91.83
-0.05% packages/node-opcua-address-space/src/ua_variable_impl_ext_obj.ts
Jobs
ID Job ID Ran Files Coverage
1 23259784310.1 18 Mar 2026 06:54PM UTC 1193
92.73
GitHub Action Run
Source Files on build 23259784310
  • 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 Repo
  • Github Actions Build #23259784310
  • b19a68d9 on github
  • Prev Build on master (#23242951477)
  • Next Build on master (#23259908054)
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