diff --git a/frontend_tests/node_tests/list_render.js b/frontend_tests/node_tests/list_render.js index b0c50e9242..6e6289c290 100644 --- a/frontend_tests/node_tests/list_render.js +++ b/frontend_tests/node_tests/list_render.js @@ -630,3 +630,40 @@ run_test('sort helpers', () => { assert.equal(num_cmp(alice2, bob10), -1); assert.equal(num_cmp(alice10, bob2), 1); }); + +run_test('replace_list_data w/filter update', () => { + const container = make_container(); + make_scroll_container(container); + container.html = () => {}; + + const list = [1, 2, 3, 4]; + let num_updates = 0; + + list_render.create(container, list, { + name: 'replace-list', + modifier: (n) => '(' + n.toString() + ')', + filter: { + predicate: (n) => n % 2 === 0, + onupdate: () => { + num_updates += 1; + }, + }, + }); + + assert.equal(num_updates, 0); + + assert.deepEqual( + container.appended_data.html(), + '(2)(4)' + ); + + const widget = list_render.get('replace-list'); + widget.replace_list_data([5, 6, 7, 8]); + + assert.equal(num_updates, 1); + + assert.deepEqual( + container.appended_data.html(), + '(6)(8)' + ); +}); diff --git a/tools/test-js-with-node b/tools/test-js-with-node index 4bff991917..2457943e79 100755 --- a/tools/test-js-with-node +++ b/tools/test-js-with-node @@ -67,7 +67,6 @@ EXEMPT_FILES = { 'static/js/invite.js', 'static/js/lightbox_canvas.js', 'static/js/lightbox.js', - 'static/js/list_render.js', 'static/js/list_util.js', 'static/js/loading.js', 'static/js/local_message.js',