@@ -1,15 +1,13 @@
|
||||
import { click, visit } from "@ember/test-helpers";
|
||||
import { test } from "qunit";
|
||||
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
|
||||
import I18n from "I18n";
|
||||
import { i18n } from "discourse-i18n";
|
||||
import { postStreamWithAcceptedAnswerExcerpt } from "../helpers/discourse-solved-helpers";
|
||||
|
||||
acceptance(
|
||||
"Discourse Solved | Post Menu | Accept and Unaccept",
|
||||
function (needs) {
|
||||
needs.user({
|
||||
admin: true,
|
||||
});
|
||||
needs.user({ admin: true });
|
||||
|
||||
needs.settings({
|
||||
glimmer_post_menu_mode: "enabled",
|
||||
@@ -23,9 +21,9 @@ acceptance(
|
||||
helper.response({ success: "OK" })
|
||||
);
|
||||
|
||||
server.get("/t/12.json", () => {
|
||||
return helper.response(postStreamWithAcceptedAnswerExcerpt(null));
|
||||
});
|
||||
server.get("/t/12.json", () =>
|
||||
helper.response(postStreamWithAcceptedAnswerExcerpt(null))
|
||||
);
|
||||
});
|
||||
|
||||
test("accepting and unaccepting a post works", async function (assert) {
|
||||
@@ -34,7 +32,7 @@ acceptance(
|
||||
assert
|
||||
.dom("#post_2 .post-action-menu__solved-accepted")
|
||||
.exists("Unaccept button is visible")
|
||||
.hasText(I18n.t("solved.solution"), "Unaccept button has correct text");
|
||||
.hasText(i18n("solved.solution"), "Unaccept button has correct text");
|
||||
|
||||
await click("#post_2 .post-action-menu__solved-accepted");
|
||||
|
||||
@@ -46,7 +44,7 @@ acceptance(
|
||||
|
||||
assert
|
||||
.dom("#post_2 .post-action-menu__solved-accepted")
|
||||
.exists("Unccept button is visible again");
|
||||
.exists("Unaccept button is visible again");
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
@@ -1,53 +1,45 @@
|
||||
import { click, fillIn, visit } from "@ember/test-helpers";
|
||||
import { test } from "qunit";
|
||||
import { fixturesByUrl } from "discourse/tests/helpers/create-pretender";
|
||||
import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
|
||||
import pretender, {
|
||||
fixturesByUrl,
|
||||
response,
|
||||
} from "discourse/tests/helpers/create-pretender";
|
||||
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { cloneJSON } from "discourse-common/lib/object";
|
||||
import { postStreamWithAcceptedAnswerExcerpt } from "../helpers/discourse-solved-helpers";
|
||||
|
||||
acceptance("Discourse Solved Plugin", function (needs) {
|
||||
needs.user();
|
||||
|
||||
needs.pretender((server, helper) => {
|
||||
server.get("/t/11.json", () => {
|
||||
return helper.response(
|
||||
postStreamWithAcceptedAnswerExcerpt("this is an excerpt")
|
||||
);
|
||||
});
|
||||
|
||||
server.get("/t/12.json", () => {
|
||||
return helper.response(postStreamWithAcceptedAnswerExcerpt(null));
|
||||
});
|
||||
|
||||
server.get("/search", () => {
|
||||
const fixtures = cloneJSON(fixturesByUrl["/search.json"]);
|
||||
fixtures.topics[0].has_accepted_answer = true;
|
||||
return helper.response(fixtures);
|
||||
});
|
||||
});
|
||||
|
||||
test("A topic with an accepted answer shows an excerpt of the answer, if provided", async function (assert) {
|
||||
await visit("/t/with-excerpt/11");
|
||||
|
||||
assert.strictEqual(
|
||||
queryAll('.quote blockquote:contains("this is an excerpt")').length,
|
||||
1
|
||||
pretender.get("/t/11.json", () =>
|
||||
response(postStreamWithAcceptedAnswerExcerpt("this is an excerpt"))
|
||||
);
|
||||
|
||||
await visit("/t/without-excerpt/12");
|
||||
pretender.get("/t/12.json", () =>
|
||||
response(postStreamWithAcceptedAnswerExcerpt(null))
|
||||
);
|
||||
|
||||
assert.notStrictEqual(queryAll(".quote blockquote").length, 1);
|
||||
assert.strictEqual(queryAll(".quote .title.title-only").length, 1);
|
||||
await visit("/t/with-excerpt/11");
|
||||
assert.dom(".quote blockquote").hasText("this is an excerpt");
|
||||
|
||||
await visit("/t/without-excerpt/12");
|
||||
assert.dom(".quote blockquote").doesNotExist();
|
||||
assert.dom(".quote .title.title-only").exists();
|
||||
});
|
||||
|
||||
test("Full page search displays solved status", async function (assert) {
|
||||
await visit("/search");
|
||||
pretender.get("/search", () => {
|
||||
const fixtures = cloneJSON(fixturesByUrl["/search.json"]);
|
||||
fixtures.topics[0].has_accepted_answer = true;
|
||||
return response(fixtures);
|
||||
});
|
||||
|
||||
await visit("/search");
|
||||
await fillIn(".search-query", "discourse");
|
||||
await click(".search-cta");
|
||||
|
||||
assert.strictEqual(queryAll(".fps-topic").length, 1, "has one post");
|
||||
|
||||
assert.ok(queryAll(".topic-status .solved").length, "shows the right icon");
|
||||
assert.dom(".fps-topic").exists({ count: 1 }, "has one post");
|
||||
assert.dom(".topic-status .solved").exists("shows the right icon");
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,15 +1,13 @@
|
||||
import { click, visit } from "@ember/test-helpers";
|
||||
import { test } from "qunit";
|
||||
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
|
||||
import I18n from "I18n";
|
||||
import { i18n } from "discourse-i18n";
|
||||
import { postStreamWithAcceptedAnswerExcerpt } from "../helpers/discourse-solved-helpers";
|
||||
|
||||
acceptance(
|
||||
"Discourse Solved | Widget Post Menu |Accept and Unaccept",
|
||||
function (needs) {
|
||||
needs.user({
|
||||
admin: true,
|
||||
});
|
||||
needs.user({ admin: true });
|
||||
|
||||
needs.settings({
|
||||
glimmer_post_menu_mode: "disabled",
|
||||
@@ -23,9 +21,9 @@ acceptance(
|
||||
helper.response({ success: "OK" })
|
||||
);
|
||||
|
||||
server.get("/t/12.json", () => {
|
||||
return helper.response(postStreamWithAcceptedAnswerExcerpt(null));
|
||||
});
|
||||
server.get("/t/12.json", () =>
|
||||
helper.response(postStreamWithAcceptedAnswerExcerpt(null))
|
||||
);
|
||||
});
|
||||
|
||||
test("accepting and unaccepting a post works", async function (assert) {
|
||||
@@ -34,7 +32,7 @@ acceptance(
|
||||
assert
|
||||
.dom("#post_2 .accepted")
|
||||
.exists("Unaccept button is visible")
|
||||
.hasText(I18n.t("solved.solution"), "Unaccept button has correct text");
|
||||
.hasText(i18n("solved.solution"), "Unaccept button has correct text");
|
||||
|
||||
await click("#post_2 .accepted");
|
||||
|
||||
@@ -42,7 +40,9 @@ acceptance(
|
||||
|
||||
await click("#post_2 .unaccepted");
|
||||
|
||||
assert.dom("#post_2 .accepted").exists("Unccept button is visible again");
|
||||
assert
|
||||
.dom("#post_2 .accepted")
|
||||
.exists("Unaccept button is visible again");
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
@@ -1,46 +1,39 @@
|
||||
import { visit } from "@ember/test-helpers";
|
||||
import { test } from "qunit";
|
||||
import { acceptance, query } from "discourse/tests/helpers/qunit-helpers";
|
||||
import I18n from "I18n";
|
||||
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { i18n } from "discourse-i18n";
|
||||
|
||||
acceptance(
|
||||
"Discourse Solved Plugin | activity/solved | empty state",
|
||||
function (needs) {
|
||||
const currentUser = "eviltrout";
|
||||
const anotherUser = "charlie";
|
||||
needs.user();
|
||||
|
||||
needs.pretender((server, helper) => {
|
||||
const emptyResponse = { user_actions: [] };
|
||||
|
||||
server.get("/user_actions.json", () => {
|
||||
return helper.response(emptyResponse);
|
||||
});
|
||||
server.get("/user_actions.json", () =>
|
||||
helper.response({ user_actions: [] })
|
||||
);
|
||||
});
|
||||
|
||||
test("When looking at own activity", async function (assert) {
|
||||
await visit(`/u/${currentUser}/activity/solved`);
|
||||
await visit(`/u/eviltrout/activity/solved`);
|
||||
|
||||
assert.equal(
|
||||
query("div.empty-state span.empty-state-title").innerText,
|
||||
I18n.t("solved.no_solved_topics_title")
|
||||
);
|
||||
assert.equal(
|
||||
query("div.empty-state div.empty-state-body").innerText,
|
||||
I18n.t("solved.no_solved_topics_body")
|
||||
);
|
||||
assert
|
||||
.dom("div.empty-state span.empty-state-title")
|
||||
.hasText(i18n("solved.no_solved_topics_title"));
|
||||
assert
|
||||
.dom("div.empty-state div.empty-state-body")
|
||||
.hasText(i18n("solved.no_solved_topics_body"));
|
||||
});
|
||||
|
||||
test("When looking at another user's activity", async function (assert) {
|
||||
await visit(`/u/${anotherUser}/activity/solved`);
|
||||
await visit(`/u/charlie/activity/solved`);
|
||||
|
||||
assert.equal(
|
||||
query("div.empty-state span.empty-state-title").innerText,
|
||||
I18n.t("solved.no_solved_topics_title_others", {
|
||||
username: anotherUser,
|
||||
assert.dom("div.empty-state span.empty-state-title").hasText(
|
||||
i18n("solved.no_solved_topics_title_others", {
|
||||
username: "charlie",
|
||||
})
|
||||
);
|
||||
assert.equal(query("div.empty-state div.empty-state-body").innerText, "");
|
||||
assert.dom("div.empty-state div.empty-state-body").hasNoText();
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user