mirror of
https://github.com/discourse/discourse.git
synced 2024-12-02 02:13:39 +08:00
c76e22942c
Plugins like https://github.com/discourse/discourse-calendar add extra HTML (e.g. icons) to user/group mentions. Clicking on those extra elements used to only flash a blank card. Now, the card opens properly.
57 lines
1.5 KiB
JavaScript
57 lines
1.5 KiB
JavaScript
import { acceptance } from "helpers/qunit-helpers";
|
|
import DiscourseURL from "discourse/lib/url";
|
|
|
|
acceptance("User Card", { loggedIn: true });
|
|
|
|
QUnit.test("user card", async assert => {
|
|
await visit("/t/internationalization-localization/280");
|
|
assert.ok(invisible("#user-card"), "user card is invisible by default");
|
|
|
|
await click("a[data-user-card=eviltrout]:first");
|
|
assert.ok(visible("#user-card"), "card should appear");
|
|
assert.equal(
|
|
find("#user-card .username")
|
|
.text()
|
|
.trim(),
|
|
"eviltrout",
|
|
"user card contains the data"
|
|
);
|
|
|
|
sandbox.stub(DiscourseURL, "routeTo");
|
|
await click(".card-content a.user-profile-link");
|
|
assert.ok(
|
|
DiscourseURL.routeTo.calledWith("/u/eviltrout"),
|
|
"it should navigate to the user profile"
|
|
);
|
|
|
|
await click("a[data-user-card=charlie]:first");
|
|
assert.ok(visible("#user-card"), "card should appear");
|
|
assert.equal(
|
|
find("#user-card .username")
|
|
.text()
|
|
.trim(),
|
|
"charlie",
|
|
"user card contains the data"
|
|
);
|
|
|
|
await click(".card-content .compose-pm button");
|
|
assert.ok(
|
|
invisible("#user-card"),
|
|
"user card dismissed after hitting Message button"
|
|
);
|
|
|
|
const mention = find("a.mention");
|
|
const icon = document.createElement("span");
|
|
icon.classList.add("icon");
|
|
mention.append(icon);
|
|
await click("a.mention .icon");
|
|
assert.ok(visible("#user-card"), "card should appear");
|
|
assert.equal(
|
|
find("#user-card .username")
|
|
.text()
|
|
.trim(),
|
|
"eviltrout",
|
|
"user card contains the data"
|
|
);
|
|
});
|