diff --git a/frontend_tests/node_tests/lightbox.js b/frontend_tests/node_tests/lightbox.js
index 98ae2f2054..1a0b727483 100644
--- a/frontend_tests/node_tests/lightbox.js
+++ b/frontend_tests/node_tests/lightbox.js
@@ -2,10 +2,7 @@ zrequire('lightbox');
 
 set_global('blueslip', global.make_zblueslip());
 
-const _message_store = new Map();
-_message_store.set(1234, { sender_full_name: "Test User" });
-
-set_global('message_store', _message_store);
+set_global('message_store', {});
 set_global('Image', class Image {});
 set_global('overlays', {
     close_overlay: () => {},
@@ -21,48 +18,59 @@ set_global('$', global.make_zjquery());
 run_test('pan_and_zoom', () => {
     $.clear_all_elements();
 
-    const img = '
';
-    const link = '';
+    const img = $.create('img-stub');
+    const link = $.create('link-stub');
+    const msg = $.create('msg-stub');
 
-    /* Due to how zquery works, we have to use a literal [zid] in the element,
-       since that's what the code looks for and we have to manually set the attr
-       that should be returned from the store. */
-    const msg = $('
');
+    $(img).closest = () => [];
+
+    img.set_parent(link);
+    link.closest = () => msg;
     msg.attr("zid", "1234");
-    $(img).set_parent($(link));
-    $(link).set_parent(msg);
+
+    let fetched_zid;
+
+    message_store.get = (zid) => {
+        fetched_zid = zid;
+        return 'message-stub';
+    };
 
     // Used by render_lightbox_list_images
     $.stub_selector('.focused_table .message_inline_image img', []);
 
     lightbox.open(img);
     assert.equal(blueslip.get_test_logs('error').length, 0);
-    lightbox.open('
');
-    assert.equal(blueslip.get_test_logs('error').length, 0);
+
+    assert.equal(fetched_zid, 1234);
 });
 
-run_test('open_url', () => {
+run_test('youtube', () => {
     $.clear_all_elements();
 
-    const url = 'https://youtube.com/1234';
-    const img = '
';
-    $(img).attr('src', "https://youtube.com/image.png");
-    const link = '';
-    $(link).attr('href', url);
-    const div = '';
-    /* Due to how zquery works, we have to use a literal [zid] in the element,
-       since that's what the code looks for and we have to manually set the attr
-       that should be returned from the store. */
-    const msg = $('');
-    msg.attr("zid", "1234");
-    $(img).set_parent($(link));
-    $(link).set_parent($(div));
-    $(div).set_parent(msg);
+    const href = 'https://youtube.com/some-random-clip';
+    const img = $.create('img-stub');
+    const link = $.create('link-stub');
+    const msg = $.create('msg-stub');
+
+    $(img).attr('src', href);
+
+    $(img).closest = (sel) => {
+        if (sel === '.youtube-video') {
+            // We just need a nonempty array to
+            // set is_youtube_video to true.
+            return ['whatever'];
+        }
+        return [];
+    };
+
+    img.set_parent(link);
+    link.closest = () => msg;
+    link.attr('href', href);
 
     // Used by render_lightbox_list_images
     $.stub_selector('.focused_table .message_inline_image img', []);
 
     lightbox.open(img);
-    assert.equal($('.image-actions .open').attr('href'), url);
+    assert.equal($('.image-actions .open').attr('href'), href);
     assert.equal(blueslip.get_test_logs('error').length, 0);
 });