106 lines
3.6 KiB
JavaScript
106 lines
3.6 KiB
JavaScript
import {
|
|
acceptance,
|
|
exists,
|
|
query,
|
|
} from "discourse/tests/helpers/qunit-helpers";
|
|
import { click, visit } from "@ember/test-helpers";
|
|
import User from "discourse/models/user";
|
|
import { test } from "qunit";
|
|
import userFixtures from "discourse/tests/fixtures/user-fixtures";
|
|
import { cloneJSON } from "discourse-common/lib/object";
|
|
|
|
acceptance("User Card - Show Local Time", function (needs) {
|
|
needs.user();
|
|
needs.settings({ display_local_time_in_user_card: true });
|
|
needs.pretender((server, helper) => {
|
|
const cardResponse = cloneJSON(userFixtures["/u/charlie/card.json"]);
|
|
delete cardResponse.user.timezone;
|
|
server.get("/u/charlie/card.json", () => helper.response(cardResponse));
|
|
});
|
|
|
|
test("user card local time - does not update timezone for another user", async function (assert) {
|
|
User.current().timezone = "Australia/Brisbane";
|
|
|
|
await visit("/t/internationalization-localization/280");
|
|
await click('a[data-user-card="charlie"]');
|
|
|
|
assert.notOk(
|
|
exists(".user-card .local-time"),
|
|
"it does not show the local time if the user card returns a null/undefined timezone for another user"
|
|
);
|
|
});
|
|
});
|
|
|
|
acceptance(
|
|
"User Card - when 'prioritize username in ux' is enabled",
|
|
function (needs) {
|
|
needs.user();
|
|
needs.settings({ prioritize_username_in_ux: true });
|
|
needs.pretender((server, helper) => {
|
|
const cardResponse = cloneJSON(userFixtures["/u/eviltrout/card.json"]);
|
|
server.get("/u/eviltrout/card.json", () => helper.response(cardResponse));
|
|
});
|
|
|
|
test("it displays the person's username followed by ther fullname", async function (assert) {
|
|
await visit("/t/this-is-a-test-topic/9");
|
|
await click('a[data-user-card="eviltrout"]');
|
|
|
|
assert.equal(
|
|
query(".user-card h1.username .name-username-wrapper").innerText,
|
|
"eviltrout"
|
|
);
|
|
assert.equal(query(".user-card h2.full-name").innerText, "Robin Ward");
|
|
});
|
|
}
|
|
);
|
|
|
|
acceptance(
|
|
"User Card - when 'prioritize username in ux' is disabled",
|
|
function (needs) {
|
|
needs.user();
|
|
needs.settings({ prioritize_username_in_ux: false });
|
|
needs.pretender((server, helper) => {
|
|
const cardResponse = cloneJSON(userFixtures["/u/eviltrout/card.json"]);
|
|
server.get("/u/eviltrout/card.json", () => helper.response(cardResponse));
|
|
});
|
|
|
|
test("it displays the person's fullname followed by their username", async function (assert) {
|
|
await visit("/t/this-is-a-test-topic/9");
|
|
await click('a[data-user-card="eviltrout"]');
|
|
|
|
assert.equal(
|
|
query(".user-card h1.full-name .name-username-wrapper").innerText,
|
|
"Robin Ward"
|
|
);
|
|
assert.equal(query(".user-card h2.username").innerText, "eviltrout");
|
|
});
|
|
}
|
|
);
|
|
|
|
acceptance("User Card - User Status", function (needs) {
|
|
needs.user();
|
|
needs.pretender((server, helper) => {
|
|
const response = cloneJSON(userFixtures["/u/charlie/card.json"]);
|
|
response.user.status = { description: "off to dentist" };
|
|
server.get("/u/charlie/card.json", () => helper.response(response));
|
|
});
|
|
|
|
test("shows user status if enabled", async function (assert) {
|
|
this.siteSettings.enable_user_status = true;
|
|
|
|
await visit("/t/internationalization-localization/280");
|
|
await click('a[data-user-card="charlie"]');
|
|
|
|
assert.ok(exists(".user-card h3.user-status"));
|
|
});
|
|
|
|
test("doesn't show user status if disabled", async function (assert) {
|
|
this.siteSettings.enable_user_status = false;
|
|
|
|
await visit("/t/internationalization-localization/280");
|
|
await click('a[data-user-card="charlie"]');
|
|
|
|
assert.notOk(exists(".user-card h3.user-status"));
|
|
});
|
|
});
|