Skip to content
raman325 edited this page Mar 29, 2026 · 1 revision

Manual Release Test Plan

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.

Pre-test Setup

  1. 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
  2. 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
  3. Open the dashboard with strategy-generated cards and confirm they load

Flow 1: Set / Clear PIN and Lock Sync

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 [ ]

Flow 2: Card Display Accuracy

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 [ ]

Flow 3: Edit Flows

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 [ ]

Flow 4: Edge Cases

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 [ ]

Recording Results

Mark each checkbox as you go. If a step fails, note the observed behavior and capture:

File a bug report for any failures that are not already tracked.

Clone this wiki locally