606fc9046a
Allow users to mark conversations as unread. Loom video: https://www.loom.com/share/ab70552d3c9c48b685da7dfa64be8bb3 fixes: #5552 Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
93 lines
2.8 KiB
JavaScript
93 lines
2.8 KiB
JavaScript
import conversationMixin from '../conversations';
|
|
import conversationFixture from './conversationFixtures';
|
|
import commonHelpers from '../../helper/commons';
|
|
commonHelpers();
|
|
|
|
describe('#conversationMixin', () => {
|
|
it('should return read messages if conversation is passed', () => {
|
|
expect(
|
|
conversationMixin.methods.readMessages(conversationFixture.conversation)
|
|
).toEqual(conversationFixture.readMessages);
|
|
});
|
|
it('should return read messages if conversation is passed', () => {
|
|
expect(
|
|
conversationMixin.methods.unReadMessages(conversationFixture.conversation)
|
|
).toEqual(conversationFixture.unReadMessages);
|
|
});
|
|
|
|
describe('#lastMessage', () => {
|
|
it("should return last activity message if both api and store doesn't have other messages", () => {
|
|
const conversation = {
|
|
messages: [
|
|
{ id: 1, created_at: 1654333, message_type: 2, content: 'Hey' },
|
|
],
|
|
last_non_activity_message: null,
|
|
};
|
|
const { messages } = conversation;
|
|
expect(conversationMixin.methods.lastMessage(conversation)).toEqual(
|
|
messages[messages.length - 1]
|
|
);
|
|
});
|
|
|
|
it('should return message from store if store has latest message', () => {
|
|
const conversation = {
|
|
messages: [],
|
|
last_non_activity_message: {
|
|
id: 2,
|
|
created_at: 1654334,
|
|
message_type: 2,
|
|
content: 'Hey',
|
|
},
|
|
};
|
|
expect(conversationMixin.methods.lastMessage(conversation)).toEqual(
|
|
conversation.last_non_activity_message
|
|
);
|
|
});
|
|
|
|
it('should return last non activity message from store if api value is empty', () => {
|
|
const conversation = {
|
|
messages: [
|
|
{
|
|
id: 1,
|
|
created_at: 1654333,
|
|
message_type: 1,
|
|
content: 'Outgoing Message',
|
|
},
|
|
{ id: 2, created_at: 1654334, message_type: 2, content: 'Hey' },
|
|
],
|
|
last_non_activity_message: null,
|
|
};
|
|
expect(conversationMixin.methods.lastMessage(conversation)).toEqual(
|
|
conversation.messages[0]
|
|
);
|
|
});
|
|
|
|
it("should return last non activity message from store if store doesn't have any messages", () => {
|
|
const conversation = {
|
|
messages: [
|
|
{
|
|
id: 1,
|
|
created_at: 1654333,
|
|
message_type: 1,
|
|
content: 'Outgoing Message',
|
|
},
|
|
{
|
|
id: 3,
|
|
created_at: 1654335,
|
|
message_type: 0,
|
|
content: 'Incoming Message',
|
|
},
|
|
],
|
|
last_non_activity_message: {
|
|
id: 2,
|
|
created_at: 1654334,
|
|
message_type: 2,
|
|
content: 'Hey',
|
|
},
|
|
};
|
|
expect(conversationMixin.methods.lastMessage(conversation)).toEqual(
|
|
conversation.messages[1]
|
|
);
|
|
});
|
|
});
|
|
});
|