116 lines
3.3 KiB
JavaScript
116 lines
3.3 KiB
JavaScript
import {
|
|
acceptance,
|
|
query,
|
|
queryAll,
|
|
} from "discourse/tests/helpers/qunit-helpers";
|
|
import { click, visit } from "@ember/test-helpers";
|
|
import { test } from "qunit";
|
|
import I18n from "I18n";
|
|
|
|
acceptance("Post controls", function () {
|
|
test("accessibility of the likes list below the post", async function (assert) {
|
|
await visit("/t/internationalization-localization/280");
|
|
|
|
const showLikesButton = query("#post_2 button.like-count");
|
|
assert.equal(
|
|
showLikesButton.getAttribute("aria-pressed"),
|
|
"false",
|
|
"show likes button isn't pressed"
|
|
);
|
|
assert.equal(
|
|
showLikesButton.getAttribute("aria-label"),
|
|
I18n.t("post.sr_post_like_count_button", { count: 4 }),
|
|
"show likes button has aria-label"
|
|
);
|
|
|
|
await click(showLikesButton);
|
|
assert.equal(
|
|
showLikesButton.getAttribute("aria-pressed"),
|
|
"true",
|
|
"show likes button is now pressed"
|
|
);
|
|
|
|
const likesContainer = query("#post_2 .small-user-list.who-liked");
|
|
assert.equal(
|
|
likesContainer.getAttribute("role"),
|
|
"list",
|
|
"likes container has list role"
|
|
);
|
|
assert.equal(
|
|
likesContainer.getAttribute("aria-label"),
|
|
I18n.t("post.actions.people.sr_post_likers_list_description"),
|
|
"likes container has aria-label"
|
|
);
|
|
assert.equal(
|
|
likesContainer
|
|
.querySelector(".list-description")
|
|
.getAttribute("aria-hidden"),
|
|
"true",
|
|
"list description is aria-hidden"
|
|
);
|
|
|
|
const likesAvatars = likesContainer.querySelectorAll("a.trigger-user-card");
|
|
assert.ok(likesAvatars.length > 0, "avatars are rendered");
|
|
likesAvatars.forEach((avatar) => {
|
|
assert.equal(
|
|
avatar.getAttribute("aria-hidden"),
|
|
"false",
|
|
"avatars are not aria-hidden"
|
|
);
|
|
assert.equal(
|
|
avatar.getAttribute("role"),
|
|
"listitem",
|
|
"avatars have listitem role"
|
|
);
|
|
});
|
|
});
|
|
|
|
test("accessibility of the embedded replies below the post", async function (assert) {
|
|
await visit("/t/internationalization-localization/280");
|
|
|
|
const showRepliesButton = query("#post_1 button.show-replies");
|
|
assert.equal(
|
|
showRepliesButton.getAttribute("aria-pressed"),
|
|
"false",
|
|
"show replies button isn't pressed"
|
|
);
|
|
assert.equal(
|
|
showRepliesButton.getAttribute("aria-label"),
|
|
I18n.t("post.sr_expand_replies", { count: 1 }),
|
|
"show replies button has aria-label"
|
|
);
|
|
|
|
await click(showRepliesButton);
|
|
assert.equal(
|
|
showRepliesButton.getAttribute("aria-pressed"),
|
|
"true",
|
|
"show replies button is now pressed"
|
|
);
|
|
|
|
const replies = Array.from(queryAll("#post_1 .embedded-posts .reply"));
|
|
assert.equal(replies.length, 1, "replies are rendered");
|
|
replies.forEach((reply) => {
|
|
assert.equal(
|
|
reply.getAttribute("role"),
|
|
"region",
|
|
"replies have region role"
|
|
);
|
|
assert.equal(
|
|
reply.getAttribute("aria-label"),
|
|
I18n.t("post.sr_embedded_reply_description", {
|
|
post_number: 1,
|
|
username: "somebody",
|
|
}),
|
|
"replies have aria-label"
|
|
);
|
|
});
|
|
assert.equal(
|
|
query("#post_1 .embedded-posts .btn.collapse-up").getAttribute(
|
|
"aria-label"
|
|
),
|
|
I18n.t("post.sr_collapse_replies"),
|
|
"collapse button has aria-label"
|
|
);
|
|
});
|
|
});
|