Add test for chunked list attribute reassembly#3534
Merged
Conversation
Validates that large list attributes (50-item channelList) are correctly reassembled on the client side when split across multiple ReportData messages. Tests both the subscription initial report path and explicit remote read path. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a node-level regression test to ensure chunked list attributes (specifically Channel.channelList) are correctly reassembled on the client side across multiple ReportData messages.
Changes:
- Introduces
ClientChunkedListTest.tsto create a device with a largechannelListintended to force chunking. - Validates correct client-side list reassembly via both subscription initial report and explicit remote read paths.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ClientChunkedListTest.tsthat creates a device with 50 channels in the Channel cluster'schannelListattribute, forcing the data to be chunked across multiple ReportData messagesCloses #3533
Context
Investigation of #3533 revealed the client-side decode error (
"When no current value is supplied the first chunked element needs to have a list index of undefined, but received null") was caused by a bug in thehandleAttributeReportEntriesfunction in 0.15.x that failed to buffer chunked list items when all entries in a report belonged to the same attribute. This was fixed on main with theleftoverAttributeReportsmechanism innormalizeAndDecodeReadAttributeReport.The server-side "pack-and-add" chunking behavior (packing items into the initial REPLACE ALL array, overflow as individual items) is correct per Matter 1.5.1 spec section 10.6.4.3.1 (Pattern 3).
🤖 Generated with Claude Code