From 4808200f9b3e180c422853edd751562a4691a126 Mon Sep 17 00:00:00 2001 From: gabriellsh Date: Thu, 20 Oct 2022 17:49:42 -0300 Subject: [PATCH 1/6] Fix hide sys messages --- apps/meteor/app/lib/lib/MessageTypes.ts | 8 ++++++++ .../views/room/MessageList/components/MessageSystem.tsx | 1 + .../client/views/room/MessageList/hooks/useMessages.ts | 8 +++++++- apps/meteor/packages/rocketchat-i18n/i18n/en.i18n.json | 2 ++ 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/apps/meteor/app/lib/lib/MessageTypes.ts b/apps/meteor/app/lib/lib/MessageTypes.ts index ef678e468835..0463e2e1df36 100644 --- a/apps/meteor/app/lib/lib/MessageTypes.ts +++ b/apps/meteor/app/lib/lib/MessageTypes.ts @@ -386,4 +386,12 @@ export const MessageTypesValues = [ key: 'user-removed-room-from-team', i18nLabel: 'Message_HideType_user_removed_room_from_team', }, + { + key: 'room_changed_announcement', + i18nLabel: 'Message_HideType_changed_announcement', + }, + { + key: 'room_changed_description', + i18nLabel: 'Message_HideType_changed_description', + }, ]; diff --git a/apps/meteor/client/views/room/MessageList/components/MessageSystem.tsx b/apps/meteor/client/views/room/MessageList/components/MessageSystem.tsx index dcc4702d2e8f..655f241fbace 100644 --- a/apps/meteor/client/views/room/MessageList/components/MessageSystem.tsx +++ b/apps/meteor/client/views/room/MessageList/components/MessageSystem.tsx @@ -49,6 +49,7 @@ export const MessageSystem: FC<{ message: IMessage }> = ({ message }) => { isSelected={isSelected} data-qa-selected={isSelected} data-qa='system-message' + data-qa-id={message.t} > {!isSelecting && } diff --git a/apps/meteor/client/views/room/MessageList/hooks/useMessages.ts b/apps/meteor/client/views/room/MessageList/hooks/useMessages.ts index 8320199ed83f..6b279f44093b 100644 --- a/apps/meteor/client/views/room/MessageList/hooks/useMessages.ts +++ b/apps/meteor/client/views/room/MessageList/hooks/useMessages.ts @@ -1,4 +1,6 @@ import { IRoom, IMessage } from '@rocket.chat/core-typings'; +import { useStableArray } from '@rocket.chat/fuselage-hooks'; +import { useSetting } from '@rocket.chat/ui-contexts'; import { Mongo } from 'meteor/mongo'; import { useCallback, useMemo } from 'react'; @@ -19,6 +21,9 @@ const options = { export const useMessages = ({ rid }: { rid: IRoom['_id'] }): MessageWithMdEnforced[] => { const { autoTranslateLanguage, katex, showColors, useShowTranslated } = useMessageListContext(); + const hideSysMes = useSetting('Hide_System_Messages'); + + const hideSysMessagesStable = useStableArray(Array.isArray(hideSysMes) ? hideSysMes : []); const normalizeMessage = useMemo(() => { const parseOptions = { @@ -39,9 +44,10 @@ export const useMessages = ({ rid }: { rid: IRoom['_id'] }): MessageWithMdEnforc () => ({ rid, _hidden: { $ne: true }, + t: { $nin: hideSysMessagesStable }, $or: [{ tmid: { $exists: false } }, { tshow: { $eq: true } }], }), - [rid], + [rid, hideSysMessagesStable], ); return useReactiveValue( diff --git a/apps/meteor/packages/rocketchat-i18n/i18n/en.i18n.json b/apps/meteor/packages/rocketchat-i18n/i18n/en.i18n.json index 93c930b58f87..0f2d1700f944 100644 --- a/apps/meteor/packages/rocketchat-i18n/i18n/en.i18n.json +++ b/apps/meteor/packages/rocketchat-i18n/i18n/en.i18n.json @@ -3249,6 +3249,8 @@ "Message_HideType_user_converted_to_team": "Hide \"User converted channel to a Team\" messages", "Message_HideType_user_deleted_room_from_team": "Hide \"User deleted room from Team\" messages", "Message_HideType_user_removed_room_from_team": "Hide \"User removed room from Team\" messages", + "Message_HideType_changed_description": "Hide \"Room description changed to\" messages", + "Message_HideType_changed_announcement": "Hide \"Room announcement changed to\" messages", "Message_HideType_ut": "Hide \"User Joined Conversation\" messages", "Message_HideType_wm": "Hide \"Welcome\" messages", "Message_Id": "Message Id", From 3ec7b853e0b19de1148456040861e6dbee6b7e79 Mon Sep 17 00:00:00 2001 From: gabriellsh Date: Thu, 20 Oct 2022 17:56:16 -0300 Subject: [PATCH 2/6] WIP start tests --- apps/meteor/tests/e2e/system-messages.spec.ts | 118 ++++++++++++++++++ .../tests/e2e/utils/getSettingValueById.ts | 5 + .../tests/e2e/utils/setSettingValueById.ts | 7 ++ 3 files changed, 130 insertions(+) create mode 100644 apps/meteor/tests/e2e/system-messages.spec.ts create mode 100644 apps/meteor/tests/e2e/utils/getSettingValueById.ts create mode 100644 apps/meteor/tests/e2e/utils/setSettingValueById.ts diff --git a/apps/meteor/tests/e2e/system-messages.spec.ts b/apps/meteor/tests/e2e/system-messages.spec.ts new file mode 100644 index 000000000000..627fcbf5c62c --- /dev/null +++ b/apps/meteor/tests/e2e/system-messages.spec.ts @@ -0,0 +1,118 @@ +import type { IRoom } from '@rocket.chat/core-typings'; +import type { Page } from '@playwright/test'; + +import { test, expect } from './utils/test'; +import { setSettingValueById } from './utils/setSettingValueById'; +import { HomeChannel } from './page-objects'; + +const SysMessagesTypeKeys = [ + 'uj', + 'ujt', + 'ul', + 'ult', + 'ru', + 'removed-user-from-team', + 'au', + 'added-user-to-team', + 'mute_unmute', + 'r', + 'ut', + 'wm', + 'rm', + 'subscription-role-added', + 'subscription-role-removed', + 'room-archived', + 'room-unarchived', + 'room_changed_privacy', + 'room_changed_avatar', + 'room_changed_topic', + 'room_e2e_enabled', + 'room_e2e_disabled', + 'room-removed-read-only', + 'room-set-read-only', + 'room-disallowed-reacting', + 'room-allowed-reacting', + 'user-added-room-to-team', + 'user-converted-to-channel', + 'user-converted-to-team', + 'user-deleted-room-from-team', + 'user-removed-room-from-team', + 'room_changed_announcement', + 'room_changed_description', +]; + +test.use({ storageState: 'admin-session.json' }); + +test.describe.serial('System Messages', () => { + let adminPage: Page; + let poHomeChannel: HomeChannel; + let group: IRoom; + + test.beforeAll(async ({ api }) => { + expect((await setSettingValueById(api, 'Hide_System_Messages', [])).status()).toBe(200); + }); + + test.describe('Room', async () => { + test.beforeAll(async ({ api, browser }) => { + const groupApiResponse = await api.post('/groups.create', { name: 'SystemMessagesTest' }); + expect(groupApiResponse.status()).toBe(200); + group = (await groupApiResponse.json()).group; + + adminPage = await browser.newPage({ storageState: 'admin-session.json' }); + poHomeChannel = new HomeChannel(adminPage); + // expect((await setSettingValueById(api, 'Hide_System_Messages', [])).status()).toBe(200); + }); + test.afterAll(async ({ api }) => { + expect((await api.post('/groups.delete', { roomId: group._id })).status()).toBe(200); + }); + }); + + + // test.describe('Generate System Messages', () => { + // test('expect all system message to be sent', async ({ api }) => { + // expect( + // ( + // await Promise.all( + // SysMessagesTypeKeys.map((key) => { + // return api.post('/chat.postMessage', { roomId: group._id, t: key, }).then((result) => !!result.status); + // }), + // ) + // ).filter(Boolean).length, + // ).toBe(SysMessagesTypeKeys.length); + // }); + // for (const key of SysMessagesTypeKeys) { + // // eslint-disable-next-line no-loop-func + // test(`expect "${key}" system message to be sent`, async ({ api }) => { + // expect((await api.post('/chat.postMessage', { roomId: group._id, t: key })).status()).toBe(200); + // }); + // } + // }); + + test.describe.serial('Check if System Messages are Visible', async () => { + test.beforeAll(async () => { + await adminPage.goto('/home'); + await poHomeChannel.sidenav.openChat(group.name as string); + }); + + for (const key of SysMessagesTypeKeys) { + // eslint-disable-next-line no-loop-func + test(`expect "${key}" system message to be visible`, async () => { + expect(await adminPage.locator(`[data-qa="system-message"][data-qa-id="${key}"]`)).toBeVisible(); + }); + } + }); + + // test.describe.serial('Hide all system messages', () => { + // test.beforeAll(async ({ api }) => { + // expect((await setSettingValueById(api, 'Hide_System_Messages', SysMessagesTypeKeys)).status()).toBe(200); + // await adminPage.goto('/home'); + // await poHomeChannel.sidenav.openChat(group.name as string); + // }); + // for (const key of SysMessagesTypeKeys) { + // // eslint-disable-next-line no-loop-func + // test(`expect "${key}" system message not to exist`, async () => { + // expect(await adminPage.locator(`[data-qa="system-message"][data-qa-id="${key}"]`)).not.toBeVisible(); + // }); + // } + // }); +}); diff --git a/apps/meteor/tests/e2e/utils/getSettingValueById.ts b/apps/meteor/tests/e2e/utils/getSettingValueById.ts new file mode 100644 index 000000000000..471afb751415 --- /dev/null +++ b/apps/meteor/tests/e2e/utils/getSettingValueById.ts @@ -0,0 +1,5 @@ +import type { BaseTest } from './test'; + +export const getSettingById = (api: BaseTest['api'], settingId: string): Promise => { + return api.get(`/settings/${settingId}`); +}; diff --git a/apps/meteor/tests/e2e/utils/setSettingValueById.ts b/apps/meteor/tests/e2e/utils/setSettingValueById.ts new file mode 100644 index 000000000000..59fbf774c057 --- /dev/null +++ b/apps/meteor/tests/e2e/utils/setSettingValueById.ts @@ -0,0 +1,7 @@ +import type { APIResponse } from '@playwright/test'; + +import type { BaseTest } from './test'; + +export const setSettingValueById = (api: BaseTest['api'], settingId: string, value: unknown): Promise => { + return api.post(`/settings/${settingId}`, { value }); +}; From 0e1d9d43c4d310c7327e046e288b0875419194d2 Mon Sep 17 00:00:00 2001 From: gabriellsh Date: Fri, 21 Oct 2022 16:59:40 -0300 Subject: [PATCH 3/6] wip tests 2 --- apps/meteor/app/lib/lib/MessageTypes.ts | 20 +-- apps/meteor/tests/e2e/system-messages.spec.ts | 165 ++++++++++++------ 2 files changed, 119 insertions(+), 66 deletions(-) diff --git a/apps/meteor/app/lib/lib/MessageTypes.ts b/apps/meteor/app/lib/lib/MessageTypes.ts index 0463e2e1df36..b6773d380b86 100644 --- a/apps/meteor/app/lib/lib/MessageTypes.ts +++ b/apps/meteor/app/lib/lib/MessageTypes.ts @@ -263,23 +263,23 @@ Meteor.startup(function () { export const MessageTypesValues = [ { - key: 'uj', + key: 'uj', // user joined i18nLabel: 'Message_HideType_uj', }, { - key: 'ujt', + key: 'ujt', // user joined team i18nLabel: 'Message_HideType_ujt', }, { - key: 'ul', + key: 'ul', // user left i18nLabel: 'Message_HideType_ul', }, { - key: 'ult', + key: 'ult', // user left team i18nLabel: 'Message_HideType_ult', }, { - key: 'ru', + key: 'ru', // user removed i18nLabel: 'Message_HideType_ru', }, { @@ -287,7 +287,7 @@ export const MessageTypesValues = [ i18nLabel: 'Message_HideType_removed_user_from_team', }, { - key: 'au', + key: 'au', // added user i18nLabel: 'Message_HideType_au', }, { @@ -299,19 +299,19 @@ export const MessageTypesValues = [ i18nLabel: 'Message_HideType_mute_unmute', }, { - key: 'r', + key: 'r', // room name changed i18nLabel: 'Message_HideType_r', }, { - key: 'ut', + key: 'ut', // user joined conversation i18nLabel: 'Message_HideType_ut', }, { - key: 'wm', + key: 'wm', // welcome i18nLabel: 'Message_HideType_wm', }, { - key: 'rm', + key: 'rm', // message removed i18nLabel: 'Message_HideType_rm', }, { diff --git a/apps/meteor/tests/e2e/system-messages.spec.ts b/apps/meteor/tests/e2e/system-messages.spec.ts index 627fcbf5c62c..5aae940a7080 100644 --- a/apps/meteor/tests/e2e/system-messages.spec.ts +++ b/apps/meteor/tests/e2e/system-messages.spec.ts @@ -1,73 +1,126 @@ -import type { IRoom } from '@rocket.chat/core-typings'; +import type { IRoom, IUser } from '@rocket.chat/core-typings'; import type { Page } from '@playwright/test'; import { test, expect } from './utils/test'; import { setSettingValueById } from './utils/setSettingValueById'; import { HomeChannel } from './page-objects'; -const SysMessagesTypeKeys = [ - 'uj', - 'ujt', - 'ul', - 'ult', - 'ru', - 'removed-user-from-team', - 'au', - 'added-user-to-team', - 'mute_unmute', - 'r', - 'ut', - 'wm', - 'rm', - 'subscription-role-added', - 'subscription-role-removed', - 'room-archived', - 'room-unarchived', - 'room_changed_privacy', - 'room_changed_avatar', - 'room_changed_topic', - 'room_e2e_enabled', - 'room_e2e_disabled', - 'room-removed-read-only', - 'room-set-read-only', - 'room-disallowed-reacting', - 'room-allowed-reacting', - 'user-added-room-to-team', - 'user-converted-to-channel', - 'user-converted-to-team', - 'user-deleted-room-from-team', - 'user-removed-room-from-team', - 'room_changed_announcement', - 'room_changed_description', -]; +// const SysMessagesTypeKeys = [ +// 'uj', +// 'ujt', +// 'ul', +// 'ult', +// 'ru', +// 'removed-user-from-team', +// 'au', +// 'added-user-to-team', +// 'mute_unmute', +// 'r', +// 'ut', +// 'wm', +// 'rm', +// 'subscription-role-added', +// 'subscription-role-removed', +// 'room-archived', +// 'room-unarchived', +// 'room_changed_privacy', +// 'room_changed_avatar', +// 'room_changed_topic', +// 'room_e2e_enabled', +// 'room_e2e_disabled', +// 'room-removed-read-only', +// 'room-set-read-only', +// 'room-disallowed-reacting', +// 'room-allowed-reacting', +// 'user-added-room-to-team', +// 'user-converted-to-channel', +// 'user-converted-to-team', +// 'user-deleted-room-from-team', +// 'user-removed-room-from-team', +// 'room_changed_announcement', +// 'room_changed_description', +// ]; test.use({ storageState: 'admin-session.json' }); +const userData = { + username: 'sysmestest', + name: 'sysmestest', + email: 'sysmestest@test.com', + password: 'sysmestest', +}; + test.describe.serial('System Messages', () => { let adminPage: Page; let poHomeChannel: HomeChannel; let group: IRoom; + let user: IUser; test.beforeAll(async ({ api }) => { expect((await setSettingValueById(api, 'Hide_System_Messages', [])).status()).toBe(200); }); - test.describe('Room', async () => { + test.describe('Private room', async () => { test.beforeAll(async ({ api, browser }) => { - const groupApiResponse = await api.post('/groups.create', { name: 'SystemMessagesTest' }); - expect(groupApiResponse.status()).toBe(200); - group = (await groupApiResponse.json()).group; + expect( + ( + await api.post('/groups.create', { name: 'SystemMessagesTest' }).then(async (response) => { + group = await response.json(); + return response; + }) + ).status(), + ).toBe(200); + + expect( + ( + await api.post('/users.create', userData).then(async (result) => { + user = (await result.json()).user; + return result; + }) + ).status(), + ).toBe(200); adminPage = await browser.newPage({ storageState: 'admin-session.json' }); poHomeChannel = new HomeChannel(adminPage); - // expect((await setSettingValueById(api, 'Hide_System_Messages', [])).status()).toBe(200); }); - test.afterAll(async ({ api }) => { - expect((await api.post('/groups.delete', { roomId: group._id })).status()).toBe(200); + + test.beforeEach(async () => { + if (!group.name) { + return; + } + await adminPage.goto('/home'); + await poHomeChannel.sidenav.openChat(group.name as string); }); - }); + test.describe('Add user', () => { + test('expect "User added" system message to be visible', async ({ api }) => { + expect((await api.post('/groups.invite', { roomId: group._id, userId: user._id })).status()).toBe(200); + expect(await adminPage.locator('[data-qa="system-message"][data-qa-id="au"]')).toBeVisible(); + }); + + test('expect "User added" system message to be hidden', async ({ api }) => { + expect((await setSettingValueById(api, 'Hide_System_Messages', ['au'])).status()).toBe(200); + expect(await adminPage.locator('[data-qa="system-message"][data-qa-id="au"]')).not.toBeVisible(); + }); + }); + + test.describe('Remove user', () => { + test('expect "User removed" system message to be visible', async ({ api }) => { + expect((await api.post('/groups.kick', { roomId: group._id, userId: user._id })).status()).toBe(200); + expect(await adminPage.locator('[data-qa="system-message"][data-qa-id="ru"]')).toBeVisible(); + }); + + test('expect "User added" system message to be hidden', async ({ api }) => { + expect((await setSettingValueById(api, 'Hide_System_Messages', ['ru'])).status()).toBe(200); + expect(await adminPage.locator('[data-qa="system-message"][data-qa-id="ru"]')).not.toBeVisible(); + }); + }); + }); + // convert back to group before delete + test.afterAll(async ({ api }) => { + expect((await api.post('/groups.delete', { roomId: group._id })).status()).toBe(200); + }); // test.describe('Generate System Messages', () => { // test('expect all system message to be sent', async ({ api }) => { // expect( @@ -88,19 +141,19 @@ test.describe.serial('System Messages', () => { // } // }); - test.describe.serial('Check if System Messages are Visible', async () => { - test.beforeAll(async () => { - await adminPage.goto('/home'); - await poHomeChannel.sidenav.openChat(group.name as string); - }); + // test.describe.serial('Check if System Messages are Visible', async () => { + // test.beforeAll(async () => { + // await adminPage.goto('/home'); + // await poHomeChannel.sidenav.openChat(group.name as string); + // }); - for (const key of SysMessagesTypeKeys) { - // eslint-disable-next-line no-loop-func - test(`expect "${key}" system message to be visible`, async () => { - expect(await adminPage.locator(`[data-qa="system-message"][data-qa-id="${key}"]`)).toBeVisible(); - }); - } - }); + // for (const key of SysMessagesTypeKeys) { + // // eslint-disable-next-line no-loop-func + // test(`expect "${key}" system message to be visible`, async () => { + // expect(await adminPage.locator(`[data-qa="system-message"][data-qa-id="${key}"]`)).toBeVisible(); + // }); + // } + // }); // test.describe.serial('Hide all system messages', () => { // test.beforeAll(async ({ api }) => { From 3b3596b49665a11baa93f70b97ce4e3f968f2210 Mon Sep 17 00:00:00 2001 From: gabriellsh Date: Mon, 31 Oct 2022 12:21:05 -0300 Subject: [PATCH 4/6] "finish" tests --- apps/meteor/tests/e2e/system-messages.spec.ts | 198 +++++------------- 1 file changed, 57 insertions(+), 141 deletions(-) diff --git a/apps/meteor/tests/e2e/system-messages.spec.ts b/apps/meteor/tests/e2e/system-messages.spec.ts index 5aae940a7080..b487f280df56 100644 --- a/apps/meteor/tests/e2e/system-messages.spec.ts +++ b/apps/meteor/tests/e2e/system-messages.spec.ts @@ -1,171 +1,87 @@ import type { IRoom, IUser } from '@rocket.chat/core-typings'; -import type { Page } from '@playwright/test'; +import type { Locator, Page } from '@playwright/test'; +import faker from '@faker-js/faker'; import { test, expect } from './utils/test'; import { setSettingValueById } from './utils/setSettingValueById'; import { HomeChannel } from './page-objects'; -// const SysMessagesTypeKeys = [ -// 'uj', -// 'ujt', -// 'ul', -// 'ult', -// 'ru', -// 'removed-user-from-team', -// 'au', -// 'added-user-to-team', -// 'mute_unmute', -// 'r', -// 'ut', -// 'wm', -// 'rm', -// 'subscription-role-added', -// 'subscription-role-removed', -// 'room-archived', -// 'room-unarchived', -// 'room_changed_privacy', -// 'room_changed_avatar', -// 'room_changed_topic', -// 'room_e2e_enabled', -// 'room_e2e_disabled', -// 'room-removed-read-only', -// 'room-set-read-only', -// 'room-disallowed-reacting', -// 'room-allowed-reacting', -// 'user-added-room-to-team', -// 'user-converted-to-channel', -// 'user-converted-to-team', -// 'user-deleted-room-from-team', -// 'user-removed-room-from-team', -// 'room_changed_announcement', -// 'room_changed_description', -// ]; - test.use({ storageState: 'admin-session.json' }); const userData = { - username: 'sysmestest', - name: 'sysmestest', - email: 'sysmestest@test.com', - password: 'sysmestest', + username: faker.datatype.uuid(), + name: faker.name.firstName(), + email: faker.internet.email(), + password: faker.internet.password(), }; +// There currently are over 33 system messages. Testing only a couple due to test being too slow right now. +// Ideally, we should test all. test.describe.serial('System Messages', () => { let adminPage: Page; let poHomeChannel: HomeChannel; let group: IRoom; let user: IUser; - test.beforeAll(async ({ api }) => { - expect((await setSettingValueById(api, 'Hide_System_Messages', [])).status()).toBe(200); - }); - - test.describe('Private room', async () => { - test.beforeAll(async ({ api, browser }) => { - expect( - ( - await api.post('/groups.create', { name: 'SystemMessagesTest' }).then(async (response) => { - group = await response.json(); - return response; - }) - ).status(), - ).toBe(200); + const findSysMes = (id: string): Locator => { + return adminPage.locator(`[data-qa="system-message"][data-qa-id="${id}"]`); + }; - expect( - ( - await api.post('/users.create', userData).then(async (result) => { - user = (await result.json()).user; - return result; - }) - ).status(), - ).toBe(200); + test.beforeAll(async ({ api, browser }) => { + expect((await setSettingValueById(api, 'Hide_System_Messages', [])).status()).toBe(200); - adminPage = await browser.newPage({ storageState: 'admin-session.json' }); - poHomeChannel = new HomeChannel(adminPage); - }); + expect( + ( + await api.post('/groups.create', { name: faker.datatype.uuid() }).then(async (response) => { + group = (await response.json()).group; + // console.log(group); + return response; + }) + ).status(), + ).toBe(200); + + expect( + ( + await api.post('/users.create', userData).then(async (result) => { + user = (await result.json()).user; + return result; + }) + ).status(), + ).toBe(200); + + adminPage = await browser.newPage({ storageState: 'admin-session.json' }); + poHomeChannel = new HomeChannel(adminPage); + }); - test.beforeEach(async () => { - if (!group.name) { - return; - } - await adminPage.goto('/home'); - await poHomeChannel.sidenav.openChat(group.name as string); - }); + test.beforeEach(async () => { + if (!group.name) { + return; + } + await adminPage.goto('/home'); + await poHomeChannel.sidenav.openChat(group.name as string); + }); - test.describe('Add user', () => { - test('expect "User added" system message to be visible', async ({ api }) => { - expect((await api.post('/groups.invite', { roomId: group._id, userId: user._id })).status()).toBe(200); - expect(await adminPage.locator('[data-qa="system-message"][data-qa-id="au"]')).toBeVisible(); - }); + test('expect "User added" system message to be visible', async ({ api }) => { + expect((await api.post('/groups.invite', { roomId: group._id, userId: user._id })).status()).toBe(200); + await expect(findSysMes('au')).toBeVisible(); + }); - test('expect "User added" system message to be hidden', async ({ api }) => { - expect((await setSettingValueById(api, 'Hide_System_Messages', ['au'])).status()).toBe(200); - expect(await adminPage.locator('[data-qa="system-message"][data-qa-id="au"]')).not.toBeVisible(); - }); - }); + test('expect "User added" system message to be hidden', async ({ api }) => { + expect((await setSettingValueById(api, 'Hide_System_Messages', ['au'])).status()).toBe(200); + await expect(findSysMes('au')).not.toBeVisible(); + }); - test.describe('Remove user', () => { - test('expect "User removed" system message to be visible', async ({ api }) => { - expect((await api.post('/groups.kick', { roomId: group._id, userId: user._id })).status()).toBe(200); - expect(await adminPage.locator('[data-qa="system-message"][data-qa-id="ru"]')).toBeVisible(); - }); + test('expect "User removed" system message to be visible', async ({ api }) => { + expect((await api.post('/groups.kick', { roomId: group._id, userId: user._id })).status()).toBe(200); + await expect(findSysMes('ru')).toBeVisible(); + }); - test('expect "User added" system message to be hidden', async ({ api }) => { - expect((await setSettingValueById(api, 'Hide_System_Messages', ['ru'])).status()).toBe(200); - expect(await adminPage.locator('[data-qa="system-message"][data-qa-id="ru"]')).not.toBeVisible(); - }); - }); + test('expect "User removed" system message to be hidden', async ({ api }) => { + expect((await setSettingValueById(api, 'Hide_System_Messages', ['ru'])).status()).toBe(200); + await expect(findSysMes('ru')).not.toBeVisible(); }); - // convert back to group before delete test.afterAll(async ({ api }) => { expect((await api.post('/groups.delete', { roomId: group._id })).status()).toBe(200); }); - // test.describe('Generate System Messages', () => { - // test('expect all system message to be sent', async ({ api }) => { - // expect( - // ( - // await Promise.all( - // SysMessagesTypeKeys.map((key) => { - // return api.post('/chat.postMessage', { roomId: group._id, t: key, }).then((result) => !!result.status); - // }), - // ) - // ).filter(Boolean).length, - // ).toBe(SysMessagesTypeKeys.length); - // }); - // for (const key of SysMessagesTypeKeys) { - // // eslint-disable-next-line no-loop-func - // test(`expect "${key}" system message to be sent`, async ({ api }) => { - // expect((await api.post('/chat.postMessage', { roomId: group._id, t: key })).status()).toBe(200); - // }); - // } - // }); - - // test.describe.serial('Check if System Messages are Visible', async () => { - // test.beforeAll(async () => { - // await adminPage.goto('/home'); - // await poHomeChannel.sidenav.openChat(group.name as string); - // }); - - // for (const key of SysMessagesTypeKeys) { - // // eslint-disable-next-line no-loop-func - // test(`expect "${key}" system message to be visible`, async () => { - // expect(await adminPage.locator(`[data-qa="system-message"][data-qa-id="${key}"]`)).toBeVisible(); - // }); - // } - // }); - - // test.describe.serial('Hide all system messages', () => { - // test.beforeAll(async ({ api }) => { - // expect((await setSettingValueById(api, 'Hide_System_Messages', SysMessagesTypeKeys)).status()).toBe(200); - // await adminPage.goto('/home'); - // await poHomeChannel.sidenav.openChat(group.name as string); - // }); - // for (const key of SysMessagesTypeKeys) { - // // eslint-disable-next-line no-loop-func - // test(`expect "${key}" system message not to exist`, async () => { - // expect(await adminPage.locator(`[data-qa="system-message"][data-qa-id="${key}"]`)).not.toBeVisible(); - // }); - // } - // }); }); From b1e072506c12f4060076fe6ccb016f6646065bf6 Mon Sep 17 00:00:00 2001 From: gabriellsh Date: Mon, 31 Oct 2022 12:26:58 -0300 Subject: [PATCH 5/6] Remove unused util --- apps/meteor/tests/e2e/utils/getSettingValueById.ts | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 apps/meteor/tests/e2e/utils/getSettingValueById.ts diff --git a/apps/meteor/tests/e2e/utils/getSettingValueById.ts b/apps/meteor/tests/e2e/utils/getSettingValueById.ts deleted file mode 100644 index 471afb751415..000000000000 --- a/apps/meteor/tests/e2e/utils/getSettingValueById.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type { BaseTest } from './test'; - -export const getSettingById = (api: BaseTest['api'], settingId: string): Promise => { - return api.get(`/settings/${settingId}`); -}; From b34f7d99b8fd74552c9de0f82d8909d4c19db1f8 Mon Sep 17 00:00:00 2001 From: gabriellsh Date: Mon, 31 Oct 2022 14:15:16 -0300 Subject: [PATCH 6/6] fix review --- .../client/views/room/MessageList/components/MessageSystem.tsx | 2 +- apps/meteor/tests/e2e/system-messages.spec.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/meteor/client/views/room/MessageList/components/MessageSystem.tsx b/apps/meteor/client/views/room/MessageList/components/MessageSystem.tsx index 655f241fbace..abfa2f8980dc 100644 --- a/apps/meteor/client/views/room/MessageList/components/MessageSystem.tsx +++ b/apps/meteor/client/views/room/MessageList/components/MessageSystem.tsx @@ -49,7 +49,7 @@ export const MessageSystem: FC<{ message: IMessage }> = ({ message }) => { isSelected={isSelected} data-qa-selected={isSelected} data-qa='system-message' - data-qa-id={message.t} + data-system-message-type={message.t} > {!isSelecting && } diff --git a/apps/meteor/tests/e2e/system-messages.spec.ts b/apps/meteor/tests/e2e/system-messages.spec.ts index b487f280df56..e78197fe45f7 100644 --- a/apps/meteor/tests/e2e/system-messages.spec.ts +++ b/apps/meteor/tests/e2e/system-messages.spec.ts @@ -24,7 +24,7 @@ test.describe.serial('System Messages', () => { let user: IUser; const findSysMes = (id: string): Locator => { - return adminPage.locator(`[data-qa="system-message"][data-qa-id="${id}"]`); + return adminPage.locator(`[data-qa="system-message"][data-system-message-type="${id}"]`); }; test.beforeAll(async ({ api, browser }) => {