diff --git a/app/assets/javascripts/discourse/components/user-card-contents.js.es6 b/app/assets/javascripts/discourse/components/user-card-contents.js.es6 index 84e63e912b..981cbb125d 100644 --- a/app/assets/javascripts/discourse/components/user-card-contents.js.es6 +++ b/app/assets/javascripts/discourse/components/user-card-contents.js.es6 @@ -184,6 +184,14 @@ export default Ember.Component.extend( this._close(); }, + composePM(user, post) { + this._close(); + + Ember.getOwner(this) + .lookup("router:main") + .send("composePrivateMessage", user, post); + }, + cancelFilter() { const postStream = this.postStream; postStream.cancelFilter(); diff --git a/app/assets/javascripts/discourse/templates/components/user-card-contents.hbs b/app/assets/javascripts/discourse/templates/components/user-card-contents.hbs index 12c4011910..de207170d2 100644 --- a/app/assets/javascripts/discourse/templates/components/user-card-contents.hbs +++ b/app/assets/javascripts/discourse/templates/components/user-card-contents.hbs @@ -72,7 +72,7 @@
  • {{d-button class="btn-primary" - action=(route-action "composePrivateMessage" user post) + action=(action "composePM" user post) icon="envelope" label="user.private_message"}}
  • diff --git a/test/javascripts/acceptance/user-card-test.js.es6 b/test/javascripts/acceptance/user-card-test.js.es6 index f4819f06ea..c721224fef 100644 --- a/test/javascripts/acceptance/user-card-test.js.es6 +++ b/test/javascripts/acceptance/user-card-test.js.es6 @@ -1,7 +1,7 @@ import { acceptance } from "helpers/qunit-helpers"; import DiscourseURL from "discourse/lib/url"; -acceptance("User Card"); +acceptance("User Card", { loggedIn: true }); QUnit.test("user card", async assert => { await visit("/t/internationalization-localization/280"); @@ -16,4 +16,13 @@ QUnit.test("user card", async assert => { DiscourseURL.routeTo.calledWith("/u/eviltrout"), "it should navigate to the user profile" ); + + await click("a[data-user-card=charlie]:first"); + assert.ok(visible("#user-card"), "card should appear"); + + await click(".card-content .compose-pm button"); + assert.ok( + invisible("#user-card"), + "user card dismissed after hitting Message button" + ); }); diff --git a/test/javascripts/fixtures/topic.js.es6 b/test/javascripts/fixtures/topic.js.es6 index 3ac3b3352b..51d9de3137 100644 --- a/test/javascripts/fixtures/topic.js.es6 +++ b/test/javascripts/fixtures/topic.js.es6 @@ -2057,6 +2057,13 @@ export default { avatar_template: "/images/avatar.png", post_count: 4 }, + { + id: 5, + username: "charlie", + uploaded_avatar_id: 5275, + avatar_template: "/images/avatar.png", + post_count: 1 + }, { id: 3704, username: "mojzis",