From 2aaa37d7a41cc3634f5401d10d088828b1ca5e91 Mon Sep 17 00:00:00 2001
From: Lucas Sartor Chauvin <lucassartorchauvin@gmail.com>
Date: Thu, 4 Feb 2021 14:08:30 -0300
Subject: [PATCH] Chore: Change error message when marking empty chat as unread
 (#20250)

---
 .../server/unreadMessages.js                       |  2 +-
 packages/rocketchat-i18n/i18n/en.i18n.json         |  1 +
 packages/rocketchat-i18n/i18n/pt-BR.i18n.json      |  1 +
 tests/end-to-end/api/10-subscriptions.js           | 14 ++++++++++++++
 4 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/app/message-mark-as-unread/server/unreadMessages.js b/app/message-mark-as-unread/server/unreadMessages.js
index aec92fcf94b..da31e72a35a 100644
--- a/app/message-mark-as-unread/server/unreadMessages.js
+++ b/app/message-mark-as-unread/server/unreadMessages.js
@@ -16,7 +16,7 @@ Meteor.methods({
 			const lastMessage = Messages.findVisibleByRoomId(room, { limit: 1, sort: { ts: -1 } }).fetch()[0];
 
 			if (lastMessage == null) {
-				throw new Meteor.Error('error-action-not-allowed', 'Not allowed', {
+				throw new Meteor.Error('error-no-message-for-unread', 'There are no messages to mark unread', {
 					method: 'unreadMessages',
 					action: 'Unread_messages',
 				});
diff --git a/packages/rocketchat-i18n/i18n/en.i18n.json b/packages/rocketchat-i18n/i18n/en.i18n.json
index 21c3e5b4fcf..2235b6ad194 100644
--- a/packages/rocketchat-i18n/i18n/en.i18n.json
+++ b/packages/rocketchat-i18n/i18n/en.i18n.json
@@ -1609,6 +1609,7 @@
   "error-message-size-exceeded": "Message size exceeds Message_MaxAllowedSize",
   "error-missing-unsubscribe-link": "You must provide the [unsubscribe] link.",
   "error-no-tokens-for-this-user": "There are no tokens for this user",
+  "error-no-message-for-unread": "There are no messages to mark unread",
   "error-not-allowed": "Not allowed",
   "error-not-authorized": "Not authorized",
   "error-office-hours-are-closed": "The office hours are closed.",
diff --git a/packages/rocketchat-i18n/i18n/pt-BR.i18n.json b/packages/rocketchat-i18n/i18n/pt-BR.i18n.json
index bac84a92512..b0911437bca 100644
--- a/packages/rocketchat-i18n/i18n/pt-BR.i18n.json
+++ b/packages/rocketchat-i18n/i18n/pt-BR.i18n.json
@@ -1425,6 +1425,7 @@
   "error-message-editing-blocked": "Edição de mensagens está bloqueada",
   "error-message-size-exceeded": "O tamanho da mensagem excede Message_MaxAllowedSize",
   "error-missing-unsubscribe-link": "Você deve fornecer o link para desinscrever-se: [unsubscribe].",
+  "error-no-message-for-unread": "Não há mensagens para serem marcadas como não lidas",
   "error-no-tokens-for-this-user": "Não existem tokens para este usuário",
   "error-not-allowed": "Não permitido",
   "error-not-authorized": "Não autorizado",
diff --git a/tests/end-to-end/api/10-subscriptions.js b/tests/end-to-end/api/10-subscriptions.js
index d4bb1022672..56d522ad659 100644
--- a/tests/end-to-end/api/10-subscriptions.js
+++ b/tests/end-to-end/api/10-subscriptions.js
@@ -214,6 +214,20 @@ describe('[Subscriptions]', function() {
 					done();
 				});
 		});
+		it('should fail when there are no messages on an channel', (done) => {
+			request.post(api('subscriptions.unread'))
+				.set(credentials)
+				.send({
+					roomId: testChannel._id,
+				})
+				.expect(400)
+				.expect((res) => {
+					expect(res.body).to.have.property('success', false);
+					expect(res.body).to.have.property('error');
+					expect(res.body).to.have.property('errorType', 'error-no-message-for-unread');
+				})
+				.end(done);
+		});
 		it('sending message', (done) => {
 			request.post(api('chat.sendMessage'))
 				.set(credentials)
-- 
GitLab