Files
zulip/frontend_tests/node_tests/fetch_status.js
Tim Abbott 9ccb3a2ad1 message_fetch: Deduplicate logic for finish_older_batch.
Previously, each individual caller of load_messages that passed
num_before > 0 would do its own manual management of fetch_status;
now, we just do it inside load_messages.
2018-12-13 08:43:56 -08:00

147 lines
2.7 KiB
JavaScript

var FetchStatus = zrequire('fetch_status');
var fetch_status = FetchStatus();
function reset() {
fetch_status = FetchStatus();
}
function can_load_newer() {
assert.equal(fetch_status.can_load_newer_messages(), true);
}
function blocked_newer() {
assert.equal(fetch_status.can_load_newer_messages(), false);
}
function can_load_older() {
assert.equal(fetch_status.can_load_older_messages(), true);
}
function blocked_older() {
assert.equal(fetch_status.can_load_older_messages(), false);
}
function has_found_newest() {
assert.equal(fetch_status.has_found_newest(), true);
}
function has_not_found_newest() {
assert.equal(fetch_status.has_found_newest(), false);
}
function can_load_history() {
assert.equal(fetch_status.history_limited(), false);
}
function blocked_history() {
assert.equal(fetch_status.history_limited(), true);
}
run_test('basics', () => {
reset();
fetch_status.start_initial_narrow();
blocked_newer();
blocked_older();
can_load_history();
has_not_found_newest();
var data = {
found_oldest: true,
found_newest: true,
history_limited: true,
};
fetch_status.finish_initial_narrow(data);
fetch_status.finish_older_batch(data);
has_found_newest();
blocked_newer();
blocked_older();
blocked_history();
reset();
fetch_status.start_initial_narrow();
blocked_newer();
blocked_older();
can_load_history();
data = {
found_oldest: false,
found_newest: false,
history_limited: false,
};
fetch_status.finish_initial_narrow(data);
fetch_status.finish_older_batch(data);
can_load_older();
can_load_newer();
can_load_history();
reset();
can_load_older();
fetch_status.start_older_batch();
blocked_older();
can_load_newer();
can_load_history();
fetch_status.finish_older_batch({
found_oldest: false,
history_limited: false,
});
can_load_older();
can_load_newer();
can_load_history();
fetch_status.start_older_batch();
blocked_older();
can_load_newer();
can_load_history();
fetch_status.finish_older_batch({
found_oldest: true,
history_limited: true,
});
blocked_older();
can_load_newer();
blocked_history();
reset();
can_load_older();
can_load_newer();
fetch_status.start_newer_batch();
can_load_older();
blocked_newer();
fetch_status.finish_newer_batch({
found_newest: false,
});
can_load_older();
can_load_newer();
fetch_status.start_newer_batch();
can_load_older();
blocked_newer();
fetch_status.finish_newer_batch({
found_newest: true,
});
can_load_older();
blocked_newer();
});