2015-04-07 02:14:00 +08:00
|
|
|
import { acceptance } from "helpers/qunit-helpers";
|
2018-11-19 17:01:22 +08:00
|
|
|
import DiscourseURL from "discourse/lib/url";
|
2018-05-09 23:27:59 +08:00
|
|
|
|
2020-04-28 08:13:59 +08:00
|
|
|
import pretender from "helpers/create-pretender";
|
|
|
|
import userFixtures from "fixtures/user_fixtures";
|
|
|
|
import User from "discourse/models/user";
|
|
|
|
|
|
|
|
acceptance("User Card - Show Local Time", {
|
|
|
|
loggedIn: true,
|
|
|
|
settings: { display_local_time_in_user_card: true },
|
|
|
|
});
|
|
|
|
|
2020-05-18 21:37:58 +08:00
|
|
|
QUnit.skip("user card local time", async (assert) => {
|
2020-04-28 08:13:59 +08:00
|
|
|
User.current().changeTimezone("Australia/Brisbane");
|
2020-09-02 04:42:22 +08:00
|
|
|
let cardResponse = Object.assign({}, userFixtures["/u/eviltrout/card.json"]);
|
2020-04-28 08:13:59 +08:00
|
|
|
cardResponse.user.timezone = "Australia/Perth";
|
|
|
|
|
|
|
|
pretender.get("/u/eviltrout/card.json", () => [
|
|
|
|
200,
|
|
|
|
{ "Content-Type": "application/json" },
|
|
|
|
cardResponse,
|
|
|
|
]);
|
|
|
|
|
|
|
|
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");
|
|
|
|
|
2020-04-29 06:45:38 +08:00
|
|
|
let expectedTime = moment
|
|
|
|
.tz("Australia/Brisbane")
|
|
|
|
.add(-2, "hours")
|
|
|
|
.format("h:mm a");
|
2020-04-28 08:13:59 +08:00
|
|
|
|
|
|
|
assert.ok(visible(".user-card"), "card should appear");
|
|
|
|
assert.equal(
|
|
|
|
find(".user-card .local-time").text().trim(),
|
|
|
|
expectedTime,
|
|
|
|
"user card contains the user's local time"
|
|
|
|
);
|
2020-04-28 11:23:43 +08:00
|
|
|
|
2020-09-02 04:42:22 +08:00
|
|
|
cardResponse = Object.assign({}, userFixtures["/u/charlie/card.json"]);
|
2020-04-28 11:23:43 +08:00
|
|
|
cardResponse.user.timezone = "America/New_York";
|
|
|
|
|
|
|
|
pretender.get("/u/charlie/card.json", () => [
|
|
|
|
200,
|
|
|
|
{ "Content-Type": "application/json" },
|
|
|
|
cardResponse,
|
|
|
|
]);
|
|
|
|
|
|
|
|
await click("a[data-user-card=charlie]:first");
|
|
|
|
|
2020-04-29 06:45:38 +08:00
|
|
|
expectedTime = moment
|
|
|
|
.tz("Australia/Brisbane")
|
|
|
|
.add(-14, "hours")
|
|
|
|
.format("h:mm a");
|
2020-04-28 11:23:43 +08:00
|
|
|
|
|
|
|
assert.equal(
|
|
|
|
find(".user-card .local-time").text().trim(),
|
|
|
|
expectedTime,
|
|
|
|
"opening another user card updates the local time in the card (no caching)"
|
|
|
|
);
|
2020-04-28 08:13:59 +08:00
|
|
|
});
|
|
|
|
|
2020-05-11 09:01:47 +08:00
|
|
|
QUnit.test(
|
|
|
|
"user card local time - does not update timezone for another user",
|
|
|
|
async (assert) => {
|
|
|
|
User.current().changeTimezone("Australia/Brisbane");
|
2020-09-02 04:42:22 +08:00
|
|
|
let cardResponse = Object.assign({}, userFixtures["/u/charlie/card.json"]);
|
2020-05-11 09:01:47 +08:00
|
|
|
delete cardResponse.user.timezone;
|
|
|
|
|
|
|
|
pretender.get("/u/charlie/card.json", () => [
|
|
|
|
200,
|
|
|
|
{ "Content-Type": "application/json" },
|
|
|
|
cardResponse,
|
|
|
|
]);
|
|
|
|
|
|
|
|
await visit("/t/internationalization-localization/280");
|
|
|
|
await click("a[data-user-card=charlie]:first");
|
|
|
|
|
|
|
|
assert.not(
|
|
|
|
exists(".user-card .local-time"),
|
|
|
|
"it does not show the local time if the user card returns a null/undefined timezone for another user"
|
|
|
|
);
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
2019-08-31 01:40:12 +08:00
|
|
|
acceptance("User Card", { loggedIn: true });
|
2014-10-21 00:11:36 +08:00
|
|
|
|
2020-05-27 23:36:50 +08:00
|
|
|
QUnit.skip("user card", async (assert) => {
|
2019-03-25 20:37:17 +08:00
|
|
|
await visit("/t/internationalization-localization/280");
|
2020-02-13 17:58:17 +08:00
|
|
|
assert.ok(invisible(".user-card"), "user card is invisible by default");
|
2014-10-21 00:11:36 +08:00
|
|
|
|
2018-07-19 22:40:12 +08:00
|
|
|
await click("a[data-user-card=eviltrout]:first");
|
2020-02-13 17:58:17 +08:00
|
|
|
assert.ok(visible(".user-card"), "card should appear");
|
2019-12-31 02:26:23 +08:00
|
|
|
assert.equal(
|
2020-02-13 17:58:17 +08:00
|
|
|
find(".user-card .username").text().trim(),
|
2019-12-31 02:26:23 +08:00
|
|
|
"eviltrout",
|
|
|
|
"user card contains the data"
|
|
|
|
);
|
2018-11-19 17:01:22 +08:00
|
|
|
|
|
|
|
sandbox.stub(DiscourseURL, "routeTo");
|
2019-03-25 20:37:17 +08:00
|
|
|
await click(".card-content a.user-profile-link");
|
|
|
|
assert.ok(
|
|
|
|
DiscourseURL.routeTo.calledWith("/u/eviltrout"),
|
|
|
|
"it should navigate to the user profile"
|
|
|
|
);
|
2019-08-31 01:40:12 +08:00
|
|
|
|
|
|
|
await click("a[data-user-card=charlie]:first");
|
2020-02-13 17:58:17 +08:00
|
|
|
assert.ok(visible(".user-card"), "card should appear");
|
2019-12-31 02:26:23 +08:00
|
|
|
assert.equal(
|
2020-02-13 17:58:17 +08:00
|
|
|
find(".user-card .username").text().trim(),
|
2019-12-31 02:26:23 +08:00
|
|
|
"charlie",
|
|
|
|
"user card contains the data"
|
|
|
|
);
|
2019-08-31 01:40:12 +08:00
|
|
|
|
2020-04-28 08:13:59 +08:00
|
|
|
assert.ok(
|
|
|
|
!visible(".user-card .local-time"),
|
|
|
|
"local time with zone does not show by default"
|
|
|
|
);
|
|
|
|
|
2019-08-31 01:40:12 +08:00
|
|
|
await click(".card-content .compose-pm button");
|
|
|
|
assert.ok(
|
2020-02-13 17:58:17 +08:00
|
|
|
invisible(".user-card"),
|
2019-08-31 01:40:12 +08:00
|
|
|
"user card dismissed after hitting Message button"
|
|
|
|
);
|
2019-12-31 02:26:23 +08:00
|
|
|
|
|
|
|
const mention = find("a.mention");
|
|
|
|
const icon = document.createElement("span");
|
|
|
|
icon.classList.add("icon");
|
|
|
|
mention.append(icon);
|
|
|
|
await click("a.mention .icon");
|
2020-02-13 17:58:17 +08:00
|
|
|
assert.ok(visible(".user-card"), "card should appear");
|
2019-12-31 02:26:23 +08:00
|
|
|
assert.equal(
|
2020-02-13 17:58:17 +08:00
|
|
|
find(".user-card .username").text().trim(),
|
2019-12-31 02:26:23 +08:00
|
|
|
"eviltrout",
|
|
|
|
"user card contains the data"
|
|
|
|
);
|
2018-04-18 06:52:23 +08:00
|
|
|
});
|