Files
zulip/frontend_tests/node_tests/lightbox.js
Steve Howell ff3175f8a2 lightbox: Export method for testing purposes.
We weren't exercising this method in any
meaningful way during the tests, and when
do add coverage, we probably want to just
test it directly.

We also kill off stub_selector(), which was
never well-documented.
2021-02-22 12:38:07 -05:00

91 lines
2.0 KiB
JavaScript

"use strict";
const {strict: assert} = require("assert");
const {set_global, zrequire} = require("../zjsunit/namespace");
const {run_test} = require("../zjsunit/test");
const $ = require("../zjsunit/zjquery");
const rows = zrequire("rows");
const lightbox = zrequire("lightbox");
const message_store = set_global("message_store", {});
set_global("Image", class Image {});
set_global("overlays", {
close_overlay: () => {},
close_active: () => {},
open_overlay: () => {},
});
set_global("popovers", {
hide_all: () => {},
});
rows.is_draft_row = () => false;
run_test("pan_and_zoom", (override) => {
$.clear_all_elements();
const img = $.create("img-stub");
const link = $.create("link-stub");
const msg = $.create("msg-stub");
$(img).closest = () => [];
img.set_parent(link);
link.closest = () => msg;
override(rows, "id", (row) => {
assert.equal(row, msg);
return 1234;
});
img.attr("src", "example");
let fetched_zid;
message_store.get = (zid) => {
fetched_zid = zid;
return "message-stub";
};
override(lightbox, "render_lightbox_list_images", () => {});
lightbox.open(img);
assert.equal(fetched_zid, 1234);
});
run_test("youtube", (override) => {
$.clear_all_elements();
const href = "https://youtube.com/some-random-clip";
const img = $.create("img-stub");
const link = $.create("link-stub");
const msg = $.create("msg-stub");
override(rows, "id", (row) => {
assert.equal(row, msg);
return 4321;
});
$(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);
override(lightbox, "render_lightbox_list_images", () => {});
lightbox.open(img);
assert.equal($(".image-actions .open").attr("href"), href);
});