Test scenarios with the Glimmer Post Stream enabled and disabled
This commit is contained in:
parent
cc5da6c7a6
commit
7750918f6d
|
@ -15,22 +15,28 @@ describe "About page", type: :system do
|
||||||
SiteSetting.show_who_marked_solved = true
|
SiteSetting.show_who_marked_solved = true
|
||||||
end
|
end
|
||||||
|
|
||||||
it "accepts post as solution and shows in OP" do
|
%w[enabled disabled].each do |value|
|
||||||
sign_in(accepter)
|
before { SiteSetting.glimmer_post_stream_mode = value }
|
||||||
|
|
||||||
topic_page.visit_topic(topic, post_number: 2)
|
context "when glimmer_post_stream_mode=#{value}" do
|
||||||
|
it "accepts post as solution and shows in OP" do
|
||||||
|
sign_in(accepter)
|
||||||
|
|
||||||
expect(topic_page).to have_css(".post-action-menu__solved-unaccepted")
|
topic_page.visit_topic(topic, post_number: 2)
|
||||||
|
|
||||||
find(".post-action-menu__solved-unaccepted").click
|
expect(topic_page).to have_css(".post-action-menu__solved-unaccepted")
|
||||||
|
|
||||||
expect(topic_page).to have_css(".post-action-menu__solved-accepted")
|
find(".post-action-menu__solved-unaccepted").click
|
||||||
expect(topic_page.find(".title .accepted-answer--solver")).to have_content(
|
|
||||||
"Solved by #{solver.username}",
|
expect(topic_page).to have_css(".post-action-menu__solved-accepted")
|
||||||
)
|
expect(topic_page.find(".title .accepted-answer--solver")).to have_content(
|
||||||
expect(topic_page.find(".title .accepted-answer--accepter")).to have_content(
|
"Solved by #{solver.username}",
|
||||||
"Marked as solved by #{accepter.username}",
|
)
|
||||||
)
|
expect(topic_page.find(".title .accepted-answer--accepter")).to have_content(
|
||||||
expect(topic_page.find("blockquote")).to have_content("The answer is 42")
|
"Marked as solved by #{accepter.username}",
|
||||||
|
)
|
||||||
|
expect(topic_page.find("blockquote")).to have_content("The answer is 42")
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -8,38 +8,46 @@ import pretender, {
|
||||||
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
|
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
|
||||||
import { postStreamWithAcceptedAnswerExcerpt } from "../helpers/discourse-solved-helpers";
|
import { postStreamWithAcceptedAnswerExcerpt } from "../helpers/discourse-solved-helpers";
|
||||||
|
|
||||||
acceptance("Discourse Solved Plugin", function (needs) {
|
["enabled", "disabled"].forEach((postStreamMode) => {
|
||||||
needs.user();
|
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) {
|
test("A topic with an accepted answer shows an excerpt of the answer, if provided", async function (assert) {
|
||||||
pretender.get("/t/11.json", () =>
|
pretender.get("/t/11.json", () =>
|
||||||
response(postStreamWithAcceptedAnswerExcerpt("this is an excerpt"))
|
response(postStreamWithAcceptedAnswerExcerpt("this is an excerpt"))
|
||||||
);
|
);
|
||||||
|
|
||||||
pretender.get("/t/12.json", () =>
|
pretender.get("/t/12.json", () =>
|
||||||
response(postStreamWithAcceptedAnswerExcerpt(null))
|
response(postStreamWithAcceptedAnswerExcerpt(null))
|
||||||
);
|
);
|
||||||
|
|
||||||
await visit("/t/with-excerpt/11");
|
await visit("/t/with-excerpt/11");
|
||||||
assert.dom(".quote blockquote").hasText("this is an excerpt");
|
assert.dom(".quote blockquote").hasText("this is an excerpt");
|
||||||
|
|
||||||
await visit("/t/without-excerpt/12");
|
await visit("/t/without-excerpt/12");
|
||||||
assert.dom(".quote blockquote").doesNotExist();
|
assert.dom(".quote blockquote").doesNotExist();
|
||||||
assert.dom(".quote .title.title-only").exists();
|
assert.dom(".quote .title.title-only").exists();
|
||||||
});
|
});
|
||||||
|
|
||||||
test("Full page search displays solved status", async function (assert) {
|
test("Full page search displays solved status", async function (assert) {
|
||||||
pretender.get("/search", () => {
|
pretender.get("/search", () => {
|
||||||
const fixtures = cloneJSON(fixturesByUrl["/search.json"]);
|
const fixtures = cloneJSON(fixturesByUrl["/search.json"]);
|
||||||
fixtures.topics[0].has_accepted_answer = true;
|
fixtures.topics[0].has_accepted_answer = true;
|
||||||
return response(fixtures);
|
return response(fixtures);
|
||||||
});
|
});
|
||||||
|
|
||||||
await visit("/search");
|
await visit("/search");
|
||||||
await fillIn(".search-query", "discourse");
|
await fillIn(".search-query", "discourse");
|
||||||
await click(".search-cta");
|
await click(".search-cta");
|
||||||
|
|
||||||
assert.dom(".fps-topic").exists({ count: 1 }, "has one post");
|
assert.dom(".fps-topic").exists({ count: 1 }, "has one post");
|
||||||
assert.dom(".topic-statuses .solved").exists("shows the right icon");
|
assert.dom(".topic-statuses .solved").exists("shows the right icon");
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue