mirror of https://github.com/zulip/zulip.git
52 lines
1.4 KiB
JavaScript
52 lines
1.4 KiB
JavaScript
"use strict";
|
|
|
|
const {strict: assert} = require("assert");
|
|
|
|
const {set_global, zrequire} = require("../zjsunit/namespace");
|
|
const {run_test} = require("../zjsunit/test");
|
|
const blueslip = require("../zjsunit/zblueslip");
|
|
|
|
const browser_history = zrequire("browser_history");
|
|
|
|
const location = set_global("location", {
|
|
hash: "bogus",
|
|
});
|
|
|
|
function test(label, f) {
|
|
run_test(label, (override) => {
|
|
location.hash = "bogus";
|
|
browser_history.clear_for_testing();
|
|
f(override);
|
|
});
|
|
}
|
|
|
|
test("basics", () => {
|
|
const hash1 = "#settings/your-account";
|
|
const hash2 = "#narrow/is/private";
|
|
browser_history.go_to_location(hash1);
|
|
assert.equal(location.hash, hash1);
|
|
|
|
browser_history.update(hash2);
|
|
assert.equal(location.hash, hash2);
|
|
assert.equal(browser_history.old_hash(), hash1);
|
|
|
|
const was_internal_change = browser_history.save_old_hash();
|
|
assert(was_internal_change);
|
|
assert.equal(browser_history.old_hash(), hash2);
|
|
});
|
|
|
|
test("update with same hash", () => {
|
|
const hash = "#keyboard-shortcuts";
|
|
|
|
browser_history.update(hash);
|
|
assert.equal(location.hash, hash);
|
|
browser_history.update(hash);
|
|
assert.equal(location.hash, hash);
|
|
});
|
|
|
|
test("error for bad hashes", () => {
|
|
const hash = "bogus";
|
|
blueslip.expect("error", "programming error: prefix hashes with #: bogus");
|
|
browser_history.update(hash);
|
|
});
|