snapshot of https://github.com/zulip/zulip.git @ 48c69911c7dd4e03b20552eb3bd77ad8151c1357 (2026-09-15)
Some checks failed
Code scanning / CodeQL (push) Failing after 15s
Zulip production suite / Ubuntu 22.04 production build (push) Failing after 26s
Zulip production suite / Debian 12 production install with custom db name and user (push) Has been skipped
Zulip production suite / Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga (push) Has been skipped
Zulip production suite / Ubuntu 24.04 production install (push) Has been skipped
Zulip production suite / Ubuntu 26.04 production install (push) Has been skipped
Zulip production suite / Debian 13 production install (push) Has been skipped
Zulip production suite / 7.0 Version Upgrade (push) Has been skipped
Zulip production suite / 8.0 Version Upgrade (push) Has been skipped
Zulip production suite / 6.0 Version Upgrade (push) Has been skipped
Zulip production suite / 10.0 Version Upgrade (push) Has been skipped
Zulip production suite / 9.0 Version Upgrade (push) Has been skipped
Zulip production suite / 12.0 Version Upgrade (push) Has been skipped
Zulip production suite / 11.0 Version Upgrade (push) Has been skipped
GitHub Actions Security Analysis with zizmor / zizmor (push) Failing after 3s
Zulip CI / Debian 12 (Python 3.11, backend + documentation) (push) Failing after 26s
Zulip CI / Ubuntu 22.04 (Python 3.10, backend + frontend) (push) Failing after 3s
Zulip CI / Ubuntu 24.04 (Python 3.12, backend) (push) Failing after 25s
Zulip CI / Ubuntu 26.04 (Python 3.14, backend) (push) Failing after 25s
Zulip CI / Debian 13 (Python 3.13, backend) (push) Failing after 28s
Zulip production suite / Required jobs (push) Has been cancelled
Zulip CI / Required jobs (push) Has been cancelled
API Documentation Update Check / check-feature-level-updated (push) Has been cancelled
API Documentation Update Check / notify-if-api-docs-changed (push) Has been cancelled
Some checks failed
Code scanning / CodeQL (push) Failing after 15s
Zulip production suite / Ubuntu 22.04 production build (push) Failing after 26s
Zulip production suite / Debian 12 production install with custom db name and user (push) Has been skipped
Zulip production suite / Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga (push) Has been skipped
Zulip production suite / Ubuntu 24.04 production install (push) Has been skipped
Zulip production suite / Ubuntu 26.04 production install (push) Has been skipped
Zulip production suite / Debian 13 production install (push) Has been skipped
Zulip production suite / 7.0 Version Upgrade (push) Has been skipped
Zulip production suite / 8.0 Version Upgrade (push) Has been skipped
Zulip production suite / 6.0 Version Upgrade (push) Has been skipped
Zulip production suite / 10.0 Version Upgrade (push) Has been skipped
Zulip production suite / 9.0 Version Upgrade (push) Has been skipped
Zulip production suite / 12.0 Version Upgrade (push) Has been skipped
Zulip production suite / 11.0 Version Upgrade (push) Has been skipped
GitHub Actions Security Analysis with zizmor / zizmor (push) Failing after 3s
Zulip CI / Debian 12 (Python 3.11, backend + documentation) (push) Failing after 26s
Zulip CI / Ubuntu 22.04 (Python 3.10, backend + frontend) (push) Failing after 3s
Zulip CI / Ubuntu 24.04 (Python 3.12, backend) (push) Failing after 25s
Zulip CI / Ubuntu 26.04 (Python 3.14, backend) (push) Failing after 25s
Zulip CI / Debian 13 (Python 3.13, backend) (push) Failing after 28s
Zulip production suite / Required jobs (push) Has been cancelled
Zulip CI / Required jobs (push) Has been cancelled
API Documentation Update Check / check-feature-level-updated (push) Has been cancelled
API Documentation Update Check / notify-if-api-docs-changed (push) Has been cancelled
This commit is contained in:
56
web/tests/resolved_topic.test.cjs
Normal file
56
web/tests/resolved_topic.test.cjs
Normal file
@@ -0,0 +1,56 @@
|
||||
"use strict";
|
||||
|
||||
const assert = require("node:assert/strict");
|
||||
|
||||
const {zrequire} = require("./lib/namespace.cjs");
|
||||
const {run_test} = require("./lib/test.cjs");
|
||||
|
||||
const resolved_topic = zrequire("resolved_topic");
|
||||
|
||||
const topic_name = "asdf";
|
||||
const resolved_name = "✔ " + topic_name;
|
||||
const overresolved_name = "✔ ✔✔ " + topic_name;
|
||||
const pseudoresolved_name = "✔" + topic_name; // check mark, but no space
|
||||
const names = [topic_name, resolved_name, overresolved_name, pseudoresolved_name];
|
||||
|
||||
run_test("is_resolved", () => {
|
||||
assert.ok(!resolved_topic.is_resolved(topic_name));
|
||||
assert.ok(resolved_topic.is_resolved(resolved_name));
|
||||
assert.ok(resolved_topic.is_resolved(overresolved_name));
|
||||
assert.ok(!resolved_topic.is_resolved(pseudoresolved_name));
|
||||
});
|
||||
|
||||
run_test("resolve_name", () => {
|
||||
assert.equal(resolved_topic.resolve_name(topic_name), resolved_name);
|
||||
|
||||
for (const name of names) {
|
||||
assert.notEqual(resolved_topic.resolve_name(name), name);
|
||||
}
|
||||
});
|
||||
|
||||
run_test("unresolve_name", () => {
|
||||
assert.equal(resolved_topic.unresolve_name(topic_name), topic_name);
|
||||
assert.equal(resolved_topic.unresolve_name(resolved_name), topic_name);
|
||||
assert.equal(resolved_topic.unresolve_name(overresolved_name), topic_name);
|
||||
assert.equal(resolved_topic.unresolve_name(pseudoresolved_name), pseudoresolved_name);
|
||||
});
|
||||
|
||||
run_test("display_parts", () => {
|
||||
const results = [];
|
||||
for (const name of names) {
|
||||
const [prefix, display_name] = resolved_topic.display_parts(name);
|
||||
|
||||
// The parts always partition the input name.
|
||||
assert.equal(prefix + display_name, name);
|
||||
|
||||
// The prefix is always the canonical prefix, or empty…
|
||||
assert.ok(prefix === "" || prefix === resolved_topic.RESOLVED_TOPIC_PREFIX);
|
||||
// … and which one is determined by is_resolved.
|
||||
assert.equal(Boolean(prefix), resolved_topic.is_resolved(name));
|
||||
|
||||
// The parts, together, differ from those of any other input.
|
||||
// (Yes, this is quadratic. Keep the list of test data nice and short.)
|
||||
assert.ok(results.every(([p, d]) => p !== prefix || d !== display_name));
|
||||
results.push([prefix, display_name]);
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user