From deaf3682e9aea0e767f8f1bbe147d1a66b89998d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Hanol?= Date: Wed, 9 May 2018 17:27:59 +0200 Subject: [PATCH] FIX: clicking a group mention on mobile was 404ing (cc @featheredtoast) --- .../discourse/mixins/card-contents-base.js.es6 | 5 ++--- .../acceptance/group-card-mobile-test.js.es6 | 15 +++++++++++++++ .../acceptance/group-card-test.js.es6 | 15 +++++++++++++++ .../javascripts/acceptance/user-card-test.js.es6 | 16 ++-------------- 4 files changed, 34 insertions(+), 17 deletions(-) create mode 100644 test/javascripts/acceptance/group-card-mobile-test.js.es6 create mode 100644 test/javascripts/acceptance/group-card-test.js.es6 diff --git a/app/assets/javascripts/discourse/mixins/card-contents-base.js.es6 b/app/assets/javascripts/discourse/mixins/card-contents-base.js.es6 index f05fcb55a6e..0ff1193368a 100644 --- a/app/assets/javascripts/discourse/mixins/card-contents-base.js.es6 +++ b/app/assets/javascripts/discourse/mixins/card-contents-base.js.es6 @@ -1,7 +1,6 @@ import { wantsNewWindow } from 'discourse/lib/intercept-click'; import afterTransition from 'discourse/lib/after-transition'; import DiscourseURL from 'discourse/lib/url'; -import { userPath } from 'discourse/lib/url'; export default Ember.Mixin.create({ elementId: null, //click detection added for data-{elementId} @@ -28,7 +27,7 @@ export default Ember.Mixin.create({ // Don't show on mobile if (this.site.mobileView) { - DiscourseURL.routeTo(userPath(username)); + DiscourseURL.routeTo($target.attr("href")); return false; } @@ -38,10 +37,10 @@ export default Ember.Mixin.create({ } const postId = $target.parents('article').data('post-id'); - const wasVisible = this.get('visible'); const previousTarget = this.get('cardTarget'); const target = $target[0]; + if (wasVisible) { this._close(); if (target === previousTarget) { return; } diff --git a/test/javascripts/acceptance/group-card-mobile-test.js.es6 b/test/javascripts/acceptance/group-card-mobile-test.js.es6 new file mode 100644 index 00000000000..33204c89629 --- /dev/null +++ b/test/javascripts/acceptance/group-card-mobile-test.js.es6 @@ -0,0 +1,15 @@ +import { acceptance } from "helpers/qunit-helpers"; + +acceptance("Group Card - Mobile", { mobileView: true }); + +QUnit.test("group card", assert => { + visit('/t/301/1'); + + assert.ok(invisible('#group-card'), 'user card is invisible by default'); + click('a.mention-group:first'); + + andThen(() => { + assert.ok(visible('.group-details-container'), 'group page show be shown'); + }); + +}); diff --git a/test/javascripts/acceptance/group-card-test.js.es6 b/test/javascripts/acceptance/group-card-test.js.es6 new file mode 100644 index 00000000000..15389afd12b --- /dev/null +++ b/test/javascripts/acceptance/group-card-test.js.es6 @@ -0,0 +1,15 @@ +import { acceptance } from "helpers/qunit-helpers"; + +acceptance("Group Card"); + +QUnit.test("group card", assert => { + visit('/t/301/1'); + + assert.ok(invisible('#group-card'), 'user card is invisible by default'); + click('a.mention-group:first'); + + andThen(() => { + assert.ok(visible('#group-card'), 'card should appear'); + }); + +}); diff --git a/test/javascripts/acceptance/user-card-test.js.es6 b/test/javascripts/acceptance/user-card-test.js.es6 index e14132d9b7f..dcab0c2930f 100644 --- a/test/javascripts/acceptance/user-card-test.js.es6 +++ b/test/javascripts/acceptance/user-card-test.js.es6 @@ -1,7 +1,8 @@ import { acceptance } from "helpers/qunit-helpers"; + acceptance("User Card"); -QUnit.test("card", assert => { +QUnit.test("user card", assert => { visit('/'); assert.ok(invisible('#user-card'), 'user card is invisible by default'); @@ -12,16 +13,3 @@ QUnit.test("card", assert => { }); }); - - -QUnit.test("group card", assert => { - visit('/t/301/1'); - - assert.ok(invisible('#group-card'), 'user card is invisible by default'); - click('a.mention-group:first'); - - andThen(() => { - assert.ok(visible('#group-card'), 'card should appear'); - }); - -});