1
0
mirror of synced 2026-08-05 09:46:57 +00:00

DEV: Add compatibility with the Glimmer Post Stream (#363)

This commit is contained in:
Sérgio Saquetim
2025-05-05 15:12:39 -03:00
committed by GitHub
parent ae01ad30c3
commit 8e72136f54
6 changed files with 361 additions and 227 deletions
@@ -8,38 +8,46 @@ import pretender, {
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
import { postStreamWithAcceptedAnswerExcerpt } from "../helpers/discourse-solved-helpers";
acceptance("Discourse Solved Plugin", function (needs) {
needs.user();
["enabled", "disabled"].forEach((postStreamMode) => {
acceptance(
`Discourse Solved Plugin (glimmer_post_stream_mode = ${postStreamMode})`,
function (needs) {
needs.settings({
glimmer_post_stream_mode: postStreamMode,
});
needs.user();
test("A topic with an accepted answer shows an excerpt of the answer, if provided", async function (assert) {
pretender.get("/t/11.json", () =>
response(postStreamWithAcceptedAnswerExcerpt("this is an excerpt"))
);
test("A topic with an accepted answer shows an excerpt of the answer, if provided", async function (assert) {
pretender.get("/t/11.json", () =>
response(postStreamWithAcceptedAnswerExcerpt("this is an excerpt"))
);
pretender.get("/t/12.json", () =>
response(postStreamWithAcceptedAnswerExcerpt(null))
);
pretender.get("/t/12.json", () =>
response(postStreamWithAcceptedAnswerExcerpt(null))
);
await visit("/t/with-excerpt/11");
assert.dom(".quote blockquote").hasText("this is an excerpt");
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();
});
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) {
pretender.get("/search", () => {
const fixtures = cloneJSON(fixturesByUrl["/search.json"]);
fixtures.topics[0].has_accepted_answer = true;
return response(fixtures);
});
test("Full page search displays solved status", async function (assert) {
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");
await visit("/search");
await fillIn(".search-query", "discourse");
await click(".search-cta");
assert.dom(".fps-topic").exists({ count: 1 }, "has one post");
assert.dom(".topic-statuses .solved").exists("shows the right icon");
});
assert.dom(".fps-topic").exists({ count: 1 }, "has one post");
assert.dom(".topic-statuses .solved").exists("shows the right icon");
});
}
);
});