Skip to content

Commit 74c73d5

Browse files
committed
test: add message actions reminder test and fix broken tests
1 parent fae82a2 commit 74c73d5

File tree

4 files changed

+34
-23
lines changed

4 files changed

+34
-23
lines changed

src/components/Message/__tests__/utils.test.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,18 @@ describe('Message utils', () => {
102102
},
103103
);
104104

105-
it('should return all message actions if actions are set to true', () => {
105+
it('should return all message actions not depending on channel config if actions are set to true', () => {
106106
const result = getMessageActions(true, defaultCapabilities);
107-
expect(result).toStrictEqual(actions);
107+
expect(result).toStrictEqual(
108+
actions.filter((a) => !['remindMe', 'saveForLater'].includes(a)),
109+
);
110+
});
111+
112+
it('should include reminder actions if enabled in channel config', () => {
113+
const result = getMessageActions(true, defaultCapabilities, {
114+
user_message_reminders: true,
115+
});
116+
expect(result).toEqual(actions);
108117
});
109118

110119
it.each([

src/components/Message/utils.tsx

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -168,20 +168,6 @@ export const getMessageActions = (
168168
return [];
169169
}
170170

171-
if (
172-
channelConfig?.['user_message_reminders'] &&
173-
messageActions.indexOf(MESSAGE_ACTIONS.remindMe)
174-
) {
175-
messageActionsAfterPermission.push(MESSAGE_ACTIONS.remindMe);
176-
}
177-
178-
if (
179-
channelConfig?.['user_message_reminders'] &&
180-
messageActions.indexOf(MESSAGE_ACTIONS.saveForLater)
181-
) {
182-
messageActionsAfterPermission.push(MESSAGE_ACTIONS.saveForLater);
183-
}
184-
185171
if (canDelete && messageActions.indexOf(MESSAGE_ACTIONS.delete) > -1) {
186172
messageActionsAfterPermission.push(MESSAGE_ACTIONS.delete);
187173
}
@@ -214,10 +200,24 @@ export const getMessageActions = (
214200
messageActionsAfterPermission.push(MESSAGE_ACTIONS.react);
215201
}
216202

203+
if (
204+
channelConfig?.['user_message_reminders'] &&
205+
messageActions.indexOf(MESSAGE_ACTIONS.remindMe)
206+
) {
207+
messageActionsAfterPermission.push(MESSAGE_ACTIONS.remindMe);
208+
}
209+
217210
if (canReply && messageActions.indexOf(MESSAGE_ACTIONS.reply) > -1) {
218211
messageActionsAfterPermission.push(MESSAGE_ACTIONS.reply);
219212
}
220213

214+
if (
215+
channelConfig?.['user_message_reminders'] &&
216+
messageActions.indexOf(MESSAGE_ACTIONS.saveForLater)
217+
) {
218+
messageActionsAfterPermission.push(MESSAGE_ACTIONS.saveForLater);
219+
}
220+
221221
return messageActionsAfterPermission;
222222
};
223223

src/components/MessageActions/__tests__/MessageActionsBox.test.js

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ describe('MessageActionsBox', () => {
8989
it('should not show any of the action buttons if no actions are returned by getMessageActions', async () => {
9090
const {
9191
result: { container, queryByText },
92-
} = await renderComponent({});
92+
} = await renderComponent({ message: generateMessage() });
9393
expect(queryByText('Flag')).not.toBeInTheDocument();
9494
expect(queryByText('Mute')).not.toBeInTheDocument();
9595
expect(queryByText('Unmute')).not.toBeInTheDocument();
@@ -106,7 +106,7 @@ describe('MessageActionsBox', () => {
106106
const handleFlag = jest.fn();
107107
const {
108108
result: { container, getByText },
109-
} = await renderComponent({ handleFlag });
109+
} = await renderComponent({ handleFlag, message: generateMessage() });
110110
await act(async () => {
111111
await fireEvent.click(getByText('Flag'));
112112
});
@@ -123,6 +123,7 @@ describe('MessageActionsBox', () => {
123123
} = await renderComponent({
124124
handleMute,
125125
isUserMuted: () => false,
126+
message: generateMessage(),
126127
});
127128
await act(async () => {
128129
await fireEvent.click(getByText('Mute'));
@@ -140,6 +141,7 @@ describe('MessageActionsBox', () => {
140141
} = await renderComponent({
141142
handleMute,
142143
isUserMuted: () => true,
144+
message: generateMessage(),
143145
});
144146
await act(async () => {
145147
await fireEvent.click(getByText('Unmute'));
@@ -154,7 +156,7 @@ describe('MessageActionsBox', () => {
154156
const handleEdit = jest.fn();
155157
const {
156158
result: { container, getByText },
157-
} = await renderComponent({ handleEdit });
159+
} = await renderComponent({ handleEdit, message: generateMessage() });
158160
await act(async () => {
159161
await fireEvent.click(getByText('Edit Message'));
160162
});
@@ -168,7 +170,7 @@ describe('MessageActionsBox', () => {
168170
const handleDelete = jest.fn();
169171
const {
170172
result: { container, getByText },
171-
} = await renderComponent({ handleDelete });
173+
} = await renderComponent({ handleDelete, message: generateMessage() });
172174
await act(async () => {
173175
await fireEvent.click(getByText('Delete'));
174176
});
@@ -180,7 +182,7 @@ describe('MessageActionsBox', () => {
180182
it('should call the handlePin prop if the pin button is clicked', async () => {
181183
getMessageActionsMock.mockImplementationOnce(() => ['pin']);
182184
const handlePin = jest.fn();
183-
const message = generateMessage({ pinned: false });
185+
const message = generateMessage({ message: generateMessage(), pinned: false });
184186
const {
185187
result: { container, getByText },
186188
} = await renderComponent({ handlePin, message });
@@ -195,7 +197,7 @@ describe('MessageActionsBox', () => {
195197
it('should call the handlePin prop if the unpin button is clicked', async () => {
196198
getMessageActionsMock.mockImplementationOnce(() => ['pin']);
197199
const handlePin = jest.fn();
198-
const message = generateMessage({ pinned: true });
200+
const message = generateMessage({ message: generateMessage(), pinned: true });
199201
const {
200202
result: { container, getByText },
201203
} = await renderComponent({ handlePin, message });

src/components/Poll/__tests__/PollCreationDialog.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ describe('PollCreationDialog', () => {
100100
await fireEvent.blur(nameInput);
101101
});
102102
expect(screen.getByTestId(NAME_INPUT_FIELD_ERROR_TEST_ID)).toHaveTextContent(
103-
'Name is required',
103+
'Question is required',
104104
);
105105
expect(nameInput).toHaveValue('');
106106
expect(screen.getByText(CANCEL_BUTTON_TEXT)).toBeEnabled();

0 commit comments

Comments
 (0)