mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-10 13:23:40 -05:00
A comment on the pull request for this branch pointed out that it's not clear why the 'items' list is deleted and then reassigned in extend_params: https://github.com/alphagov/notifications-admin/pull/3770#pullrequestreview-573067465 The simple reason is that we want to use merge_jsonlike to merge params and param_extensions (passed in as extensions) but merge_jsonlike doesn't merge lists correctly. I realised that if we just make merge_jsonlike merge lists correctly, we can use it for everything extend_params does. This commit does that, and replaces all calls to extend_params with merge_jsonlike. Because extend_params is used across many form field classes, and so many pages, I took the following precautions after making those changes: 1. found every use of param_extensions 2. looked at the merges onto params that each would cause and deduped them to a final list of 6(!) 3. tested pages containing fields from that list 4. added new testcases to the merge_jsonlike tests for any merges that exist in our codebase but not in our tests