mirror of
https://github.com/discourse/discourse-solved.git
synced 2025-07-05 05:12:11 +00:00
FIx failing tests
This commit is contained in:
parent
25920252f3
commit
0365e44a33
@ -21,12 +21,12 @@ export default class SolvedAcceptAnswerButton extends Component {
|
||||
}
|
||||
|
||||
@action
|
||||
acceptAnswer() {
|
||||
async acceptAnswer() {
|
||||
const post = this.args.post;
|
||||
|
||||
this.saving = true;
|
||||
try {
|
||||
acceptPost(post, this.currentUser);
|
||||
await acceptPost(post, this.currentUser);
|
||||
} finally {
|
||||
this.saving = false;
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ import Component from "@glimmer/component";
|
||||
import { service } from "@ember/service";
|
||||
import { htmlSafe } from "@ember/template";
|
||||
import PostQuotedContent from "discourse/components/post/quoted-content";
|
||||
import concatClass from "discourse/helpers/concat-class";
|
||||
import { iconHTML } from "discourse/lib/icon-library";
|
||||
import { formatUsername } from "discourse/lib/utilities";
|
||||
import { i18n } from "discourse-i18n";
|
||||
@ -84,26 +85,31 @@ export default class SolvedAcceptedAnswer extends Component {
|
||||
}
|
||||
|
||||
<template>
|
||||
<PostQuotedContent
|
||||
class="accepted-answer"
|
||||
@collapsedContent={{this.collapsedContent}}
|
||||
@decoratorState={{@decoratorState}}
|
||||
@id={{this.quoteId}}
|
||||
@post={{@post}}
|
||||
@quotedPostNumber={{this.acceptedAnswer.post_number}}
|
||||
@quotedTopicId={{this.topic.id}}
|
||||
@quotedUsername={{this.acceptedAnswer.username}}
|
||||
>
|
||||
<:title>
|
||||
<div class="accepted-answer--solver-accepter">
|
||||
<div class="accepted-answer--solver">
|
||||
{{this.htmlSolvedBy}}
|
||||
{{#if this.acceptedAnswer}}
|
||||
<PostQuotedContent
|
||||
class={{concatClass
|
||||
"accepted-answer"
|
||||
(unless this.collapsedContent "title-only")
|
||||
}}
|
||||
@collapsedContent={{this.collapsedContent}}
|
||||
@decoratorState={{@decoratorState}}
|
||||
@id={{this.quoteId}}
|
||||
@post={{@post}}
|
||||
@quotedPostNumber={{this.acceptedAnswer.post_number}}
|
||||
@quotedTopicId={{this.topic.id}}
|
||||
@quotedUsername={{this.acceptedAnswer.username}}
|
||||
>
|
||||
<:title>
|
||||
<div class="accepted-answer--solver-accepter">
|
||||
<div class="accepted-answer--solver">
|
||||
{{this.htmlSolvedBy}}
|
||||
</div>
|
||||
<div class="accepted-answer--accepter">
|
||||
{{this.htmlAccepter}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="accepted-answer--accepter">
|
||||
{{this.htmlAccepter}}
|
||||
</div>
|
||||
</div>
|
||||
</:title>
|
||||
</PostQuotedContent>
|
||||
</:title>
|
||||
</PostQuotedContent>
|
||||
{{/if}}
|
||||
</template>
|
||||
}
|
||||
|
@ -63,7 +63,9 @@ function customizePost(api) {
|
||||
"post-content-cooked-html",
|
||||
class extends Component {
|
||||
static shouldRender(args) {
|
||||
return args.post.post_number === 1 && args.post.topic.accepted_answer;
|
||||
return (
|
||||
args.post?.post_number === 1 && args.post?.topic?.accepted_answer
|
||||
);
|
||||
}
|
||||
|
||||
<template>
|
||||
|
@ -62,10 +62,6 @@ aside.quote.accepted-answer {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: flex-start;
|
||||
|
||||
&.quote__title--can-toggle-content {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
.accepted-answer--solver-accepter {
|
||||
|
@ -41,6 +41,25 @@ describe "About page", type: :system do
|
||||
accepted_answer_quote.find("button.quote-toggle").click
|
||||
expect(accepted_answer_quote["data-expanded"]).to eq("true")
|
||||
end
|
||||
|
||||
it "accepts and unaccepts post as solution" do
|
||||
sign_in(accepter)
|
||||
topic_page.visit_topic(topic, post_number: 2)
|
||||
|
||||
expect(topic_page).to have_css(".post-action-menu__solved-unaccepted")
|
||||
find(".post-action-menu__solved-unaccepted").click
|
||||
expect(topic_page).to have_css(".post-action-menu__solved-accepted")
|
||||
|
||||
expect(topic_page).to have_css(".accepted-answer.quote")
|
||||
expect(topic_page).to have_css(".title .accepted-answer--solver")
|
||||
expect(topic_page).to have_css(".title .accepted-answer--accepter")
|
||||
|
||||
find(".post-action-menu__solved-accepted").click
|
||||
expect(topic_page).to have_css(".post-action-menu__solved-unaccepted")
|
||||
expect(topic_page).not_to have_css(".accepted-answer.quote")
|
||||
expect(topic_page).not_to have_css(".title .accepted-answer--solver")
|
||||
expect(topic_page).not_to have_css(".title .accepted-answer--accepter")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -15,7 +15,11 @@ acceptance(
|
||||
});
|
||||
|
||||
needs.pretender((server, helper) => {
|
||||
server.post("/solution/accept", () => helper.response({ success: "OK" }));
|
||||
server.post("/solution/accept", () =>
|
||||
helper.response(
|
||||
postStreamWithAcceptedAnswerExcerpt(null).accepted_answer
|
||||
)
|
||||
);
|
||||
server.post("/solution/unaccept", () =>
|
||||
helper.response({ success: "OK" })
|
||||
);
|
||||
|
@ -30,8 +30,9 @@ import { postStreamWithAcceptedAnswerExcerpt } from "../helpers/discourse-solved
|
||||
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();
|
||||
|
||||
assert.dom(".quote blockquote").hasNoText();
|
||||
assert.dom(".quote.title-only .title").exists();
|
||||
});
|
||||
|
||||
test("Full page search displays solved status", async function (assert) {
|
||||
|
@ -109,8 +109,7 @@ export const postStreamWithAcceptedAnswerExcerpt = (excerpt) => {
|
||||
edit_reason: null,
|
||||
can_view_edit_history: true,
|
||||
wiki: false,
|
||||
can_accept_answer: false,
|
||||
can_unaccept_answer: true,
|
||||
can_accept_answer: true,
|
||||
accepted_answer: true,
|
||||
},
|
||||
],
|
||||
|
Loading…
x
Reference in New Issue
Block a user