No Backbone in data layer; server/client interfaces are now similar
This commit is contained in:
parent
064bbfe97a
commit
34fd945f83
31 changed files with 573 additions and 1021 deletions
|
@ -28,12 +28,7 @@ describe('sql/allMedia', () => {
|
|||
|
||||
describe('getMessagesWithVisualMediaAttachments', () => {
|
||||
it('returns messages matching with visual attachments', async () => {
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
0
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
|
@ -69,12 +64,7 @@ describe('sql/allMedia', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3], { forceSave: true });
|
||||
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
3
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
||||
const searchResults = await getMessagesWithVisualMediaAttachments(
|
||||
conversationId,
|
||||
|
@ -85,12 +75,7 @@ describe('sql/allMedia', () => {
|
|||
});
|
||||
|
||||
it('excludes stories and story replies', async () => {
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
0
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
|
@ -129,12 +114,7 @@ describe('sql/allMedia', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3], { forceSave: true });
|
||||
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
3
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
||||
const searchResults = await getMessagesWithVisualMediaAttachments(
|
||||
conversationId,
|
||||
|
@ -147,12 +127,7 @@ describe('sql/allMedia', () => {
|
|||
|
||||
describe('getMessagesWithFileAttachments', () => {
|
||||
it('returns messages matching with visual attachments', async () => {
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
0
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
|
@ -188,12 +163,7 @@ describe('sql/allMedia', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3], { forceSave: true });
|
||||
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
3
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
||||
const searchResults = await getMessagesWithFileAttachments(
|
||||
conversationId,
|
||||
|
@ -204,12 +174,7 @@ describe('sql/allMedia', () => {
|
|||
});
|
||||
|
||||
it('excludes stories and story replies', async () => {
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
0
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
|
@ -248,12 +213,7 @@ describe('sql/allMedia', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3], { forceSave: true });
|
||||
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
3
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
||||
const searchResults = await getMessagesWithFileAttachments(
|
||||
conversationId,
|
||||
|
|
|
@ -27,12 +27,7 @@ describe('sql/fullTextSearch', () => {
|
|||
});
|
||||
|
||||
it('returns messages matching query', async () => {
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
0
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
|
@ -66,12 +61,7 @@ describe('sql/fullTextSearch', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3], { forceSave: true });
|
||||
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
3
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
||||
const searchResults = await searchMessages('unique');
|
||||
assert.lengthOf(searchResults, 1);
|
||||
|
@ -87,12 +77,7 @@ describe('sql/fullTextSearch', () => {
|
|||
});
|
||||
|
||||
it('excludes messages with isViewOnce = true', async () => {
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
0
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
|
@ -128,12 +113,7 @@ describe('sql/fullTextSearch', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3], { forceSave: true });
|
||||
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
3
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
||||
const searchResults = await searchMessages('unique');
|
||||
assert.lengthOf(searchResults, 1);
|
||||
|
@ -148,12 +128,7 @@ describe('sql/fullTextSearch', () => {
|
|||
});
|
||||
|
||||
it('excludes messages with storyId !== null', async () => {
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
0
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
|
@ -189,12 +164,7 @@ describe('sql/fullTextSearch', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3], { forceSave: true });
|
||||
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
3
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
||||
const searchResults = await searchMessages('unique');
|
||||
assert.lengthOf(searchResults, 1);
|
||||
|
|
|
@ -34,12 +34,7 @@ describe('sql/markRead', () => {
|
|||
});
|
||||
|
||||
it('properly finds and reads unread messages in current conversation', async () => {
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
0
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const start = Date.now();
|
||||
const readAt = start + 20;
|
||||
|
@ -125,12 +120,7 @@ describe('sql/markRead', () => {
|
|||
}
|
||||
);
|
||||
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
7
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 7);
|
||||
assert.strictEqual(
|
||||
await getTotalUnreadForConversation(conversationId),
|
||||
3,
|
||||
|
@ -179,12 +169,7 @@ describe('sql/markRead', () => {
|
|||
});
|
||||
|
||||
it('properly finds and reads unread messages in story', async () => {
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
0
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const start = Date.now();
|
||||
const readAt = start + 20;
|
||||
|
@ -276,12 +261,7 @@ describe('sql/markRead', () => {
|
|||
}
|
||||
);
|
||||
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
7
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 7);
|
||||
|
||||
const markedRead = await getUnreadByConversationAndMarkRead({
|
||||
conversationId,
|
||||
|
@ -311,12 +291,7 @@ describe('sql/markRead', () => {
|
|||
});
|
||||
|
||||
it('properly starts disappearing message timer, even if message is already read', async () => {
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
0
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const start = Date.now();
|
||||
const readAt = start + 20;
|
||||
|
@ -388,12 +363,7 @@ describe('sql/markRead', () => {
|
|||
2,
|
||||
'unread count'
|
||||
);
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
5
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 5);
|
||||
|
||||
const markedRead = await getUnreadByConversationAndMarkRead({
|
||||
conversationId,
|
||||
|
@ -413,21 +383,21 @@ describe('sql/markRead', () => {
|
|||
'unread count'
|
||||
);
|
||||
|
||||
const allMessages = await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
});
|
||||
const allMessages = await _getAllMessages();
|
||||
const sorted = allMessages.sort(
|
||||
(left, right) => left.timestamp - right.timestamp
|
||||
);
|
||||
|
||||
// Ascending order, since it's sorted by MessageCollection
|
||||
assert.strictEqual(allMessages.at(1).id, message2.id);
|
||||
assert.strictEqual(sorted[1].id, message2.id, 'checking message 2');
|
||||
assert.isAtMost(
|
||||
allMessages.at(1).get('expirationStartTimestamp') ?? Infinity,
|
||||
sorted[1].expirationStartTimestamp ?? Infinity,
|
||||
Date.now(),
|
||||
'checking message 2 expirationStartTimestamp'
|
||||
);
|
||||
|
||||
assert.strictEqual(allMessages.at(3).id, message4.id, 'checking message 4');
|
||||
assert.strictEqual(sorted[3].id, message4.id, 'checking message 4');
|
||||
assert.isAtMost(
|
||||
allMessages.at(3).get('expirationStartTimestamp') ?? Infinity,
|
||||
sorted[3].expirationStartTimestamp ?? Infinity,
|
||||
Date.now(),
|
||||
'checking message 4 expirationStartTimestamp'
|
||||
);
|
||||
|
@ -490,12 +460,7 @@ describe('sql/markRead', () => {
|
|||
await saveMessages([message1, message2, message3, message4, message5], {
|
||||
forceSave: true,
|
||||
});
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
5
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 5);
|
||||
|
||||
const reaction1: ReactionType = {
|
||||
conversationId,
|
||||
|
@ -642,12 +607,7 @@ describe('sql/markRead', () => {
|
|||
await saveMessages([message1, message2, message3, message4, message5], {
|
||||
forceSave: true,
|
||||
});
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
5
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 5);
|
||||
|
||||
const reaction1: ReactionType = {
|
||||
conversationId,
|
||||
|
|
|
@ -124,7 +124,7 @@ describe('sql/sendLog', () => {
|
|||
|
||||
assert.strictEqual(actual.timestamp, proto.timestamp);
|
||||
|
||||
await removeMessage(id, { Message: window.Whisper.Message });
|
||||
await removeMessage(id);
|
||||
|
||||
assert.lengthOf(await getAllSentProtos(), 0);
|
||||
});
|
||||
|
|
|
@ -23,12 +23,7 @@ describe('sql/stories', () => {
|
|||
|
||||
describe('getOlderStories', () => {
|
||||
it('returns N most recent stories overall, or in converation, or by author', async () => {
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
0
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
|
@ -89,12 +84,7 @@ describe('sql/stories', () => {
|
|||
forceSave: true,
|
||||
});
|
||||
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
5
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 5);
|
||||
|
||||
const stories = await getOlderStories({
|
||||
limit: 5,
|
||||
|
@ -155,12 +145,7 @@ describe('sql/stories', () => {
|
|||
});
|
||||
|
||||
it('returns N stories older than provided receivedAt/sentAt', async () => {
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
0
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const start = Date.now();
|
||||
const conversationId = getUuid();
|
||||
|
@ -214,12 +199,7 @@ describe('sql/stories', () => {
|
|||
forceSave: true,
|
||||
});
|
||||
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
5
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 5);
|
||||
|
||||
const stories = await getOlderStories({
|
||||
receivedAt: story4.received_at,
|
||||
|
|
|
@ -30,12 +30,7 @@ describe('sql/timelineFetches', () => {
|
|||
|
||||
describe('getOlderMessagesByConversation', () => {
|
||||
it('returns N most recent messages', async () => {
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
0
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
|
@ -92,30 +87,20 @@ describe('sql/timelineFetches', () => {
|
|||
forceSave: true,
|
||||
});
|
||||
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
5
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 5);
|
||||
|
||||
const messages = await getOlderMessagesByConversation(conversationId, {
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
limit: 5,
|
||||
});
|
||||
assert.lengthOf(messages, 2);
|
||||
// They are not in DESC order because MessageCollection is sorting them
|
||||
assert.strictEqual(messages.at(0).attributes.id, message1.id);
|
||||
assert.strictEqual(messages.at(1).attributes.id, message2.id);
|
||||
|
||||
// Fetched with DESC query, but with reverse() call afterwards
|
||||
assert.strictEqual(messages[0].id, message1.id);
|
||||
assert.strictEqual(messages[1].id, message2.id);
|
||||
});
|
||||
|
||||
it('returns N most recent messages for a given story', async () => {
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
0
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
|
@ -152,29 +137,18 @@ describe('sql/timelineFetches', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3], { forceSave: true });
|
||||
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
3
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
||||
const messages = await getOlderMessagesByConversation(conversationId, {
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
limit: 5,
|
||||
storyId,
|
||||
});
|
||||
assert.lengthOf(messages, 1);
|
||||
assert.strictEqual(messages.at(0).attributes.id, message2.id);
|
||||
assert.strictEqual(messages[0].id, message2.id);
|
||||
});
|
||||
|
||||
it('returns N messages older than provided received_at', async () => {
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
0
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const target = Date.now();
|
||||
const conversationId = getUuid();
|
||||
|
@ -208,30 +182,19 @@ describe('sql/timelineFetches', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3], { forceSave: true });
|
||||
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
3
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
||||
const messages = await getOlderMessagesByConversation(conversationId, {
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
limit: 5,
|
||||
receivedAt: target,
|
||||
sentAt: target,
|
||||
});
|
||||
assert.lengthOf(messages, 1);
|
||||
assert.strictEqual(messages.at(0).attributes.id, message1.id);
|
||||
assert.strictEqual(messages[0].id, message1.id);
|
||||
});
|
||||
|
||||
it('returns N older messages with received_at, lesser sent_at', async () => {
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
0
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const target = Date.now();
|
||||
const conversationId = getUuid();
|
||||
|
@ -265,33 +228,23 @@ describe('sql/timelineFetches', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3], { forceSave: true });
|
||||
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
3
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
||||
const messages = await getOlderMessagesByConversation(conversationId, {
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
limit: 5,
|
||||
receivedAt: target,
|
||||
sentAt: target,
|
||||
});
|
||||
|
||||
assert.lengthOf(messages, 2);
|
||||
// They are not in DESC order because MessageCollection is sorting them
|
||||
assert.strictEqual(messages.at(0).attributes.id, message1.id);
|
||||
assert.strictEqual(messages.at(1).attributes.id, message2.id);
|
||||
|
||||
// Fetched with DESC query, but with reverse() call afterwards
|
||||
assert.strictEqual(messages[0].id, message1.id, 'checking message 1');
|
||||
assert.strictEqual(messages[1].id, message2.id, 'checking message 2');
|
||||
});
|
||||
|
||||
it('returns N older messages, same received_at/sent_at but excludes messageId', async () => {
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
0
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const target = Date.now();
|
||||
const conversationId = getUuid();
|
||||
|
@ -325,15 +278,9 @@ describe('sql/timelineFetches', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3], { forceSave: true });
|
||||
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
3
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
||||
const messages = await getOlderMessagesByConversation(conversationId, {
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
limit: 5,
|
||||
receivedAt: target,
|
||||
sentAt: target,
|
||||
|
@ -341,18 +288,13 @@ describe('sql/timelineFetches', () => {
|
|||
});
|
||||
|
||||
assert.lengthOf(messages, 1);
|
||||
assert.strictEqual(messages.at(0).attributes.id, message1.id);
|
||||
assert.strictEqual(messages[0].id, message1.id);
|
||||
});
|
||||
});
|
||||
|
||||
describe('getNewerMessagesByConversation', () => {
|
||||
it('returns N oldest messages with no parameters', async () => {
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
0
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
|
@ -409,30 +351,19 @@ describe('sql/timelineFetches', () => {
|
|||
forceSave: true,
|
||||
});
|
||||
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
5
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 5);
|
||||
|
||||
const messages = await getNewerMessagesByConversation(conversationId, {
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
limit: 5,
|
||||
});
|
||||
|
||||
assert.lengthOf(messages, 2);
|
||||
assert.strictEqual(messages.at(0).attributes.id, message4.id);
|
||||
assert.strictEqual(messages.at(1).attributes.id, message5.id);
|
||||
assert.strictEqual(messages[0].id, message4.id, 'checking message 4');
|
||||
assert.strictEqual(messages[1].id, message5.id, 'checking message 5');
|
||||
});
|
||||
|
||||
it('returns N oldest messages for a given story with no parameters', async () => {
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
0
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
|
@ -469,30 +400,19 @@ describe('sql/timelineFetches', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3], { forceSave: true });
|
||||
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
3
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
||||
const messages = await getNewerMessagesByConversation(conversationId, {
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
limit: 5,
|
||||
storyId,
|
||||
});
|
||||
|
||||
assert.lengthOf(messages, 1);
|
||||
assert.strictEqual(messages.at(0).attributes.id, message2.id);
|
||||
assert.strictEqual(messages[0].id, message2.id);
|
||||
});
|
||||
|
||||
it('returns N messages newer than provided received_at', async () => {
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
0
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const target = Date.now();
|
||||
const conversationId = getUuid();
|
||||
|
@ -526,30 +446,19 @@ describe('sql/timelineFetches', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3], { forceSave: true });
|
||||
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
3
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
||||
const messages = await getNewerMessagesByConversation(conversationId, {
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
limit: 5,
|
||||
receivedAt: target,
|
||||
sentAt: target,
|
||||
});
|
||||
assert.lengthOf(messages, 1);
|
||||
assert.strictEqual(messages.at(0).attributes.id, message3.id);
|
||||
assert.strictEqual(messages[0].id, message3.id);
|
||||
});
|
||||
|
||||
it('returns N newer messages with same received_at, greater sent_at', async () => {
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
0
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const target = Date.now();
|
||||
const conversationId = getUuid();
|
||||
|
@ -583,15 +492,9 @@ describe('sql/timelineFetches', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3], { forceSave: true });
|
||||
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
3
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
||||
const messages = await getNewerMessagesByConversation(conversationId, {
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
limit: 5,
|
||||
receivedAt: target,
|
||||
sentAt: target,
|
||||
|
@ -599,19 +502,14 @@ describe('sql/timelineFetches', () => {
|
|||
|
||||
assert.lengthOf(messages, 2);
|
||||
// They are not in DESC order because MessageCollection is sorting them
|
||||
assert.strictEqual(messages.at(0).attributes.id, message2.id);
|
||||
assert.strictEqual(messages.at(1).attributes.id, message3.id);
|
||||
assert.strictEqual(messages[0].id, message2.id);
|
||||
assert.strictEqual(messages[1].id, message3.id);
|
||||
});
|
||||
});
|
||||
|
||||
describe('getMessageMetricsForConversation', () => {
|
||||
it('returns metrics properly for story and non-story timelines', async () => {
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
0
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const target = Date.now();
|
||||
const conversationId = getUuid();
|
||||
|
@ -710,12 +608,7 @@ describe('sql/timelineFetches', () => {
|
|||
{ forceSave: true }
|
||||
);
|
||||
|
||||
assert.lengthOf(
|
||||
await _getAllMessages({
|
||||
MessageCollection: window.Whisper.MessageCollection,
|
||||
}),
|
||||
8
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), 8);
|
||||
|
||||
const metricsInTimeline = await getMessageMetricsForConversation(
|
||||
conversationId
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue