diff --git a/assets/javascripts/discourse/routes/user-activity-solved.js b/assets/javascripts/discourse/routes/user-activity-solved.js index da0960f..d30ebd0 100644 --- a/assets/javascripts/discourse/routes/user-activity-solved.js +++ b/assets/javascripts/discourse/routes/user-activity-solved.js @@ -6,9 +6,19 @@ export default UserActivityStreamRoute.extend({ noContentHelpKey: "solved.no_solutions", emptyState() { - return { - title: I18n.t("solved.no_solved_topics_title"), - body: I18n.t("solved.no_solved_topics_body"), - }; + const user = this.modelFor("user"); + + let title, body; + if (this.isCurrentUser(user)) { + title = I18n.t("solved.no_solved_topics_title"); + body = I18n.t("solved.no_solved_topics_body"); + } else { + title = I18n.t("solved.no_solved_topics_title_others", { + username: user.username, + }); + body = ""; + } + + return { title, body }; }, }); diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index 8abc253..f04e7a8 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -25,6 +25,7 @@ en: solved: "solved" unsolved: "unsolved" no_solved_topics_title: "You haven’t solved any topics yet" + no_solved_topics_title_others: "%{username} has not solved any topics yet" no_solved_topics_body: "When you provide a helpful reply to a topic, your reply might be selected as the solution by the topic owner or staff." no_answer: diff --git a/test/javascripts/acceptance/user-activity-solved-test.js b/test/javascripts/acceptance/user-activity-solved-test.js index b321c2b..c8ca8a5 100644 --- a/test/javascripts/acceptance/user-activity-solved-test.js +++ b/test/javascripts/acceptance/user-activity-solved-test.js @@ -1,10 +1,13 @@ -import { acceptance, exists } from "discourse/tests/helpers/qunit-helpers"; -import { test } from "qunit"; +import { acceptance, query } from "discourse/tests/helpers/qunit-helpers"; +import { skip, test } from "qunit"; import { visit } from "@ember/test-helpers"; +import I18n from "I18n"; acceptance( "Discourse Solved Plugin | activity/solved | empty state", function (needs) { + const currentUser = "eviltrout"; + const anotherUser = "charlie"; needs.user(); needs.pretender((server, helper) => { @@ -15,14 +18,29 @@ acceptance( }); }); - test("When looking at own activity it renders the empty state panel", async function (assert) { - await visit("/u/eviltrout/activity/solved"); - assert.ok(exists("div.empty-state")); + test("When looking at own activity", async function (assert) { + await visit(`/u/${currentUser}/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") + ); }); - test("When looking at another user's activity it renders the 'No activity' message", async function (assert) { - await visit("/u/charlie/activity/solved"); - assert.ok(exists("div.alert-info")); + test("When looking at another user's activity", async function (assert) { + await visit(`/u/${anotherUser}/activity/solved`); + + assert.equal( + query("div.empty-state span.empty-state-title").innerText, + I18n.t("solved.no_solved_topics_title_others", { + username: anotherUser, + }) + ); + assert.equal(query("div.empty-state div.empty-state-body").innerText, ""); }); } );