mirror of
https://github.com/zulip/zulip.git
synced 2025-11-06 06:53:25 +00:00
drafts: Stop mocking compose_state in node tests.
Testing actual code is better here (and usually) instead of mocking out function calls with what we think they should respond.
This commit is contained in:
@@ -7,8 +7,10 @@ const {run_test} = require("../zjsunit/test");
|
|||||||
const $ = require("../zjsunit/zjquery");
|
const $ = require("../zjsunit/zjquery");
|
||||||
const {user_settings} = require("../zjsunit/zpage_params");
|
const {user_settings} = require("../zjsunit/zpage_params");
|
||||||
|
|
||||||
|
const compose_pm_pill = zrequire("compose_pm_pill");
|
||||||
|
const user_pill = zrequire("user_pill");
|
||||||
const people = zrequire("people");
|
const people = zrequire("people");
|
||||||
|
const compose_state = zrequire("compose_state");
|
||||||
const aaron = {
|
const aaron = {
|
||||||
email: "aaron@zulip.com",
|
email: "aaron@zulip.com",
|
||||||
user_id: 6,
|
user_id: 6,
|
||||||
@@ -23,7 +25,6 @@ set_global("setTimeout", (f, delay) => {
|
|||||||
assert.equal(delay, setTimeout_delay);
|
assert.equal(delay, setTimeout_delay);
|
||||||
f();
|
f();
|
||||||
});
|
});
|
||||||
const compose_state = mock_esm("../../static/js/compose_state");
|
|
||||||
mock_esm("../../static/js/markdown", {
|
mock_esm("../../static/js/markdown", {
|
||||||
apply_markdown: noop,
|
apply_markdown: noop,
|
||||||
});
|
});
|
||||||
@@ -171,30 +172,34 @@ test("draft_model delete", ({override}) => {
|
|||||||
assert.deepEqual(draft_model.getDraft(id), false);
|
assert.deepEqual(draft_model.getDraft(id), false);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("snapshot_message", ({override}) => {
|
test("snapshot_message", ({override_rewire}) => {
|
||||||
|
override_rewire(user_pill, "get_user_ids", () => [aaron.user_id]);
|
||||||
|
override_rewire(compose_pm_pill, "set_from_emails", noop);
|
||||||
|
|
||||||
let curr_draft;
|
let curr_draft;
|
||||||
|
|
||||||
function map(field, f) {
|
function set_compose_state() {
|
||||||
override(compose_state, field, f);
|
compose_state.set_message_type(curr_draft.type);
|
||||||
|
compose_state.message_content(curr_draft.content);
|
||||||
|
compose_state.stream_name(curr_draft.stream);
|
||||||
|
compose_state.topic(curr_draft.topic);
|
||||||
|
compose_state.private_message_recipient(curr_draft.private_message_recipient);
|
||||||
}
|
}
|
||||||
|
|
||||||
map("get_message_type", () => curr_draft.type);
|
|
||||||
map("composing", () => Boolean(curr_draft.type));
|
|
||||||
map("message_content", () => curr_draft.content);
|
|
||||||
map("stream_name", () => curr_draft.stream);
|
|
||||||
map("topic", () => curr_draft.topic);
|
|
||||||
map("private_message_recipient", () => curr_draft.private_message_recipient);
|
|
||||||
|
|
||||||
curr_draft = draft_1;
|
curr_draft = draft_1;
|
||||||
|
set_compose_state();
|
||||||
assert.deepEqual(drafts.snapshot_message(), draft_1);
|
assert.deepEqual(drafts.snapshot_message(), draft_1);
|
||||||
|
|
||||||
curr_draft = draft_2;
|
curr_draft = draft_2;
|
||||||
|
set_compose_state();
|
||||||
assert.deepEqual(drafts.snapshot_message(), draft_2);
|
assert.deepEqual(drafts.snapshot_message(), draft_2);
|
||||||
|
|
||||||
curr_draft = short_msg;
|
curr_draft = short_msg;
|
||||||
|
set_compose_state();
|
||||||
assert.deepEqual(drafts.snapshot_message(), undefined);
|
assert.deepEqual(drafts.snapshot_message(), undefined);
|
||||||
|
|
||||||
curr_draft = {};
|
curr_draft = {};
|
||||||
|
set_compose_state();
|
||||||
assert.equal(drafts.snapshot_message(), undefined);
|
assert.equal(drafts.snapshot_message(), undefined);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -243,15 +248,16 @@ test("remove_old_drafts", () => {
|
|||||||
assert.deepEqual(draft_model.get(), {id3: draft_3});
|
assert.deepEqual(draft_model.get(), {id3: draft_3});
|
||||||
});
|
});
|
||||||
|
|
||||||
test("update_draft", ({override}) => {
|
test("update_draft", ({override, override_rewire}) => {
|
||||||
override(compose_state, "composing", () => false);
|
compose_state.set_message_type(null);
|
||||||
let draft_id = drafts.update_draft();
|
let draft_id = drafts.update_draft();
|
||||||
assert.equal(draft_id, undefined);
|
assert.equal(draft_id, undefined);
|
||||||
|
|
||||||
override(compose_state, "composing", () => true);
|
override_rewire(compose_pm_pill, "set_from_emails", noop);
|
||||||
override(compose_state, "message_content", () => "dummy content");
|
override_rewire(user_pill, "get_user_ids", () => [aaron.user_id]);
|
||||||
override(compose_state, "get_message_type", () => "private");
|
compose_state.set_message_type("private");
|
||||||
override(compose_state, "private_message_recipient", () => "aaron@zulip.com");
|
compose_state.message_content("dummy content");
|
||||||
|
compose_state.private_message_recipient(aaron.email);
|
||||||
|
|
||||||
const $container = $(".top_left_drafts");
|
const $container = $(".top_left_drafts");
|
||||||
const $child = $(".unread_count");
|
const $child = $(".unread_count");
|
||||||
@@ -274,7 +280,7 @@ test("update_draft", ({override}) => {
|
|||||||
|
|
||||||
override(Date, "now", () => 6);
|
override(Date, "now", () => 6);
|
||||||
|
|
||||||
override(compose_state, "message_content", () => "dummy content edited once");
|
compose_state.message_content("dummy content edited once");
|
||||||
tippy_show_called = false;
|
tippy_show_called = false;
|
||||||
tippy_destroy_called = false;
|
tippy_destroy_called = false;
|
||||||
draft_id = drafts.update_draft();
|
draft_id = drafts.update_draft();
|
||||||
@@ -294,7 +300,7 @@ test("update_draft", ({override}) => {
|
|||||||
|
|
||||||
override(Date, "now", () => 8);
|
override(Date, "now", () => 8);
|
||||||
|
|
||||||
override(compose_state, "message_content", () => "dummy content edited a second time");
|
compose_state.message_content("dummy content edited a second time");
|
||||||
tippy_show_called = false;
|
tippy_show_called = false;
|
||||||
tippy_destroy_called = false;
|
tippy_destroy_called = false;
|
||||||
draft_id = drafts.update_draft({no_notify: true});
|
draft_id = drafts.update_draft({no_notify: true});
|
||||||
@@ -317,7 +323,7 @@ test("delete_all_drafts", () => {
|
|||||||
assert.deepEqual(draft_model.get(), {});
|
assert.deepEqual(draft_model.get(), {});
|
||||||
});
|
});
|
||||||
|
|
||||||
test("format_drafts", ({override, override_rewire, mock_template}) => {
|
test("format_drafts", ({override_rewire, mock_template}) => {
|
||||||
function feb12() {
|
function feb12() {
|
||||||
return new Date(1549958107000); // 2/12/2019 07:55:07 AM (UTC+0)
|
return new Date(1549958107000); // 2/12/2019 07:55:07 AM (UTC+0)
|
||||||
}
|
}
|
||||||
@@ -425,9 +431,9 @@ test("format_drafts", ({override, override_rewire, mock_template}) => {
|
|||||||
return {name: "stream"};
|
return {name: "stream"};
|
||||||
};
|
};
|
||||||
|
|
||||||
override(compose_state, "composing", () => true);
|
override_rewire(user_pill, "get_user_ids", () => []);
|
||||||
override(compose_state, "get_message_type", () => "private");
|
compose_state.set_message_type("private");
|
||||||
override(compose_state, "private_message_recipient", () => "");
|
compose_state.private_message_recipient(null);
|
||||||
|
|
||||||
mock_template("draft_table_body.hbs", false, (data) => {
|
mock_template("draft_table_body.hbs", false, (data) => {
|
||||||
// Tests formatting and time-sorting of drafts
|
// Tests formatting and time-sorting of drafts
|
||||||
@@ -458,7 +464,7 @@ test("format_drafts", ({override, override_rewire, mock_template}) => {
|
|||||||
drafts.launch();
|
drafts.launch();
|
||||||
});
|
});
|
||||||
|
|
||||||
test("filter_drafts", ({override, override_rewire, mock_template}) => {
|
test("filter_drafts", ({override_rewire, mock_template}) => {
|
||||||
function feb12() {
|
function feb12() {
|
||||||
return new Date(1549958107000); // 2/12/2019 07:55:07 AM (UTC+0)
|
return new Date(1549958107000); // 2/12/2019 07:55:07 AM (UTC+0)
|
||||||
}
|
}
|
||||||
@@ -584,13 +590,10 @@ test("filter_drafts", ({override, override_rewire, mock_template}) => {
|
|||||||
|
|
||||||
override_rewire(drafts, "set_initial_element", noop);
|
override_rewire(drafts, "set_initial_element", noop);
|
||||||
|
|
||||||
override(compose_state, "composing", () => true);
|
override_rewire(user_pill, "get_user_ids", () => [aaron.user_id]);
|
||||||
override(compose_state, "get_message_type", () => "private");
|
override_rewire(compose_pm_pill, "set_from_emails", noop);
|
||||||
override(
|
compose_state.set_message_type("private");
|
||||||
compose_state,
|
compose_state.private_message_recipient(aaron.email);
|
||||||
"private_message_recipient",
|
|
||||||
() => pm_draft_1.private_message_recipient,
|
|
||||||
);
|
|
||||||
|
|
||||||
$.create("#drafts_table .draft-row", {children: []});
|
$.create("#drafts_table .draft-row", {children: []});
|
||||||
drafts.launch();
|
drafts.launch();
|
||||||
|
|||||||
Reference in New Issue
Block a user