Skip to content

Validate zigbee/zwave lock migraton indices - #3307

Closed
hcarter-775 wants to merge 3 commits into
add/explicit-lock-minsfrom
fix/validate-lock-migration-indices
Closed

hcarter-775 wants to merge 3 commits into
add/explicit-lock-minsfrom
fix/validate-lock-migration-indices

Conversation

@hcarter-775

Copy link
Copy Markdown
Contributor

Description of Change

Validate lock migration indices for Zigbee and Zwave, to ensure that only valid entries are actually written. This is especially useful for ensuring that the Zwave credential 0 is never applied after the migration, since it a special value with "delete all" capabilities, and for ensuring that all user indices are >=1, since that is the capability defined minimum.

Summary of Completed Tests

Unit tests added that ensures validation is handled correctly, and that credential deletions for invalid cred indices work as expected (we want to ensure these orphan values can be removed as expected).

@github-actions

github-actions Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Channel deleted.

@github-actions

github-actions Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

zwave-lock_coverage.xml

File Coverage
All files 87% ❌
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zwave-lock/src/lock_handlers/capabilities.lua 94% ✅
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zwave-lock/src/lock_handlers/zwave_responses.lua 85% ❌
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zwave-lock/src/lazy_load_subdriver.lua 57% ❌
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zwave-lock/src/init.lua 93% ✅
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zwave-lock/src/samsung-lock/can_handle.lua 75% ❌
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zwave-lock/src/lock_utils/utils.lua 88% ❌
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zwave-lock/src/lock_utils/tables.lua 98% ✅
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zwave-lock/src/zwave-alarm-v1-lock/init.lua 24% ❌
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zwave-lock/src/keywe-lock/can_handle.lua 87% ❌
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zwave-lock/src/legacy-handlers/zwave-alarm-v1-lock/init.lua 89% ❌
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zwave-lock/src/schlage-lock/can_handle.lua 75% ❌
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zwave-lock/src/legacy-handlers/keywe-lock/init.lua 77% ❌
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zwave-lock/src/legacy-handlers/schlage-lock/init.lua 95% ✅
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zwave-lock/src/legacy-handlers/samsung-lock/init.lua 94% ✅

Minimum allowed coverage is 90%

Generated by 🐒 cobertura-action against a39b20a

@github-actions

github-actions Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

zigbee-lock_coverage.xml

File Coverage
All files 94% ✅
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zigbee-lock/src/init.lua 99% ✅
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zigbee-lock/src/lazy_load_subdriver.lua 57% ❌
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zigbee-lock/src/configurations.lua 95% ✅
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zigbee-lock/src/lock_utils/tables.lua 98% ✅
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zigbee-lock/src/legacy-handlers/init.lua 95% ✅
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zigbee-lock/src/legacy-handlers/yale/init.lua 92% ✅
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zigbee-lock/src/lock_handlers/capabilities.lua 90% ✅
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zigbee-lock/src/lock_handlers/zigbee_responses.lua 89% ❌
/home/runner/work/SmartThingsEdgeDrivers/SmartThingsEdgeDrivers/drivers/SmartThings/zigbee-lock/src/samsungsds/init.lua 89% ❌

Minimum allowed coverage is 90%

Generated by 🐒 cobertura-action against a39b20a

@github-actions

github-actions Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Test Results

   73 files  ±0    545 suites  ±0   0s ⏱️ ±0s
3 317 tests +4  3 316 ✅ +4  0 💤 ±0  1 ❌ ±0 
5 319 runs  +6  5 318 ✅ +6  0 💤 ±0  1 ❌ ±0 

For more details on these failures, see this check.

Results for commit a39b20a. ± Comparison against base commit 62294d5.

♻️ This comment has been updated with latest results.

@hcarter-775 hcarter-775 added the CGAI Contains code that was generated by AI label Oct 27, 2026
hcarter-775 and others added 2 commits October 28, 2026 12:46
Drop legacy lockCodes slots that are not valid credential indices when
migrating to lockUsers/lockCredentials. A valid credential slot that is
not a valid userIndex (slot 0) is given the lowest unused userIndex
without displacing any slot that is already valid.

Add tables.get_minimum to read a table's minimum index, and tests for
deleting credentials whose user or credential index maps to no entry.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Drop legacy lockCodes slots that are not valid credential indices (such
as 0, which means "all users" in Z-Wave) when migrating to
lockUsers/lockCredentials. Remaining users are numbered sequentially
from 1.

Add tables.get_minimum to read a table's minimum index, and tests for
deleting credentials whose user or credential index maps to no entry.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@hcarter-775
hcarter-775 force-pushed the fix/validate-lock-migration-indices branch from 6118f97 to a39b20a Compare October 28, 2026 17:47
@hcarter-775
hcarter-775 force-pushed the add/explicit-lock-mins branch from 62294d5 to 581819e Compare October 28, 2026 17:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CGAI Contains code that was generated by AI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant