-
-
Notifications
You must be signed in to change notification settings - Fork 16
Manual Test Plan
raman325 edited this page Mar 29, 2026
·
1 revision
This test plan covers manual verification steps for Lock Code Manager releases. Run through these flows on a test Home Assistant instance before tagging a release.
- Install Lock Code Manager on a test Home Assistant instance with 2 locks:
- Z-Wave JS lock for real hardware testing (verifies provider-specific behavior)
- Virtual integration lock for quick functional testing without hardware
- A mix of both is ideal because it verifies provider-agnostic behavior
- Configure 2+ code slots:
- At least one slot with a condition entity (for example, a calendar entity)
- At least one slot without any condition entity
- Open the dashboard with strategy-generated cards and confirm they load
| Step | Action | Expected | Pass |
|---|---|---|---|
| 1.1 | Set a PIN via the slot card inline edit | Lock syncs, status shows "Synced" | [ ] |
| 1.2 | Verify PIN on the lock (Z-Wave JS UI or physical device) | Code matches the value entered in 1.1 | [ ] |
| 1.3 | Clear the PIN (empty the field and press Enter) | Lock clears the code, status reflects cleared state | [ ] |
| 1.4 | Set a duplicate PIN (same value as another active slot) | Error notification appears, slot is disabled | [ ] |
| Step | Action | Expected | Pass |
|---|---|---|---|
| 2.1 | View a slot configured with masked_with_reveal display mode |
PIN shows as dots with an eye icon | [ ] |
| 2.2 | Click the eye icon to reveal, then click again to hide | Toggles between digits and dots | [ ] |
| 2.3 | Disable a slot via the toggle switch | Status changes to "Disabled", card appearance dims | [ ] |
| 2.4 | Add a calendar condition entity with no current event | Status changes to "Inactive" | [ ] |
| 2.5 | Trigger a calendar event (start an event that covers the current time) | Status changes to "Active" | [ ] |
| 2.6 | View the lock-codes card | All slots visible; managed slots shown in blue, unmanaged slots shown in gray | [ ] |
| Step | Action | Expected | Pass |
|---|---|---|---|
| 3.1 | Edit slot name inline | Name updates immediately, other cards referencing this slot reflect the new name | [ ] |
| 3.2 | Edit PIN inline | Field reveals current value first, accepts input, saves on Enter | [ ] |
| 3.3 | Press Escape during an inline edit | Edit is cancelled, original value is restored | [ ] |
| 3.4 | Edit an unmanaged slot in the lock-codes card | Sends a set_lock_usercode service command to the lock |
[ ] |
| 3.5 | Add a condition entity to a slot, then remove it | Condition section updates correctly in both directions | [ ] |
| Step | Action | Expected | Pass |
|---|---|---|---|
| 4.1 | Disconnect the lock (unplug Z-Wave stick or disable integration) | Status shows unavailable, operations fail gracefully with clear feedback | [ ] |
| 4.2 | Reconnect the lock | Recovers automatically, re-syncs codes to the lock | [ ] |
| 4.3 | Reload the Lock Code Manager integration (Settings > Integrations > Reload) | Cards reconnect subscriptions, no stale data | [ ] |
| 4.4 | Open the dashboard in multiple browser tabs, edit a PIN in one | All tabs update in sync | [ ] |
Mark each checkbox as you go. If a step fails, note the observed behavior and capture:
- Troubleshooting: Debug Logs (enable before reproducing)
- Troubleshooting: Browser Console Logs (for any frontend issues)
- Troubleshooting: Device Diagnostics (for lock-specific failures)
File a bug report for any failures that are not already tracked.
Getting Started
UI
- Add a UI for lock code management — overview & decision guide
- UI Strategies
- Custom Cards
Features
- Services and Actions
- Blueprints
- Tracking lock state change events
- Using Condition Entities
- Unsupported Condition Entities
- Notifications
Advanced
Development
Troubleshooting
FAQ
Supported Integrations