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