From e5213eae6f43ea7142079bd8a6290d8e33b19a6b Mon Sep 17 00:00:00 2001 From: Juan Tejada Date: Tue, 22 Dec 2015 14:30:28 -0800 Subject: [PATCH] fix(specs): Fix and update QuerySubscription specs - Updates test scenario to test for when the new item already exists in the set with the same clientId but a new serverId --- spec/models/query-subscription-spec.coffee | 120 ++++++++++----------- 1 file changed, 60 insertions(+), 60 deletions(-) diff --git a/spec/models/query-subscription-spec.coffee b/spec/models/query-subscription-spec.coffee index 886da544d..94cc1fd34 100644 --- a/spec/models/query-subscription-spec.coffee +++ b/spec/models/query-subscription-spec.coffee @@ -19,7 +19,7 @@ describe "QuerySubscription", -> expect(QuerySubscription.prototype._refetchResultSet).toHaveBeenCalled() describe "applyChangeRecord", -> - spyOn(Utils, 'generateTempId').andCallFake => "" + spyOn(Utils, 'generateTempId').andCallFake => undefined scenarios = [{ name: "query with full set of objects (4)" @@ -28,29 +28,29 @@ describe "QuerySubscription", -> .limit(4) .offset(2) lastResultSet: [ - new Thread(accountId: 'a', id: '4', lastMessageReceivedTimestamp: 4) - new Thread(accountId: 'a', id: '3', lastMessageReceivedTimestamp: 3), - new Thread(accountId: 'a', id: '2', lastMessageReceivedTimestamp: 2), - new Thread(accountId: 'a', id: '1', lastMessageReceivedTimestamp: 1), + new Thread(accountId: 'a', clientId: '4', lastMessageReceivedTimestamp: 4) + new Thread(accountId: 'a', clientId: '3', lastMessageReceivedTimestamp: 3), + new Thread(accountId: 'a', clientId: '2', lastMessageReceivedTimestamp: 2), + new Thread(accountId: 'a', clientId: '1', lastMessageReceivedTimestamp: 1), ] tests: [{ name: 'Item saved which belongs in the set' change: objectClass: Thread.name - objects: [new Thread(accountId: 'a', id: '5', lastMessageReceivedTimestamp: 3.5)] + objects: [new Thread(accountId: 'a', clientId: '5', lastMessageReceivedTimestamp: 3.5)] type: 'persist' newResultSet:[ - new Thread(accountId: 'a', id: '4', lastMessageReceivedTimestamp: 4), - new Thread(accountId: 'a', id: '5', lastMessageReceivedTimestamp: 3.5), - new Thread(accountId: 'a', id: '3', lastMessageReceivedTimestamp: 3), - new Thread(accountId: 'a', id: '2', lastMessageReceivedTimestamp: 2), + new Thread(accountId: 'a', clientId: '4', lastMessageReceivedTimestamp: 4), + new Thread(accountId: 'a', clientId: '5', lastMessageReceivedTimestamp: 3.5), + new Thread(accountId: 'a', clientId: '3', lastMessageReceivedTimestamp: 3), + new Thread(accountId: 'a', clientId: '2', lastMessageReceivedTimestamp: 2), ] refetchRequired: false },{ name: 'Item saved which does not match query clauses' change: objectClass: Thread.name - objects: [new Thread(accountId: 'b', id: '5', lastMessageReceivedTimestamp: 5)] + objects: [new Thread(accountId: 'b', clientId: '5', lastMessageReceivedTimestamp: 5)] type: 'persist' newResultSet: 'unchanged' refetchRequired: false @@ -58,7 +58,7 @@ describe "QuerySubscription", -> name: 'Item saved which does not lie in the range after sorting' change: objectClass: Thread.name - objects: [new Thread(accountId: 'b', id: '5', lastMessageReceivedTimestamp: -2)] + objects: [new Thread(accountId: 'b', clientId: '5', lastMessageReceivedTimestamp: -2)] type: 'persist' newResultSet: 'unchanged' refetchRequired: false @@ -66,71 +66,71 @@ describe "QuerySubscription", -> name: 'Item in set saved' change: objectClass: Thread.name - objects: [new Thread(accountId: 'a', id: '4', lastMessageReceivedTimestamp: 4, subject: 'hello')] + objects: [new Thread(accountId: 'a', serverId: 's-4', clientId: '4', lastMessageReceivedTimestamp: 4, subject: 'hello')] type: 'persist' newResultSet:[ - new Thread(accountId: 'a', id: '4', lastMessageReceivedTimestamp: 4, subject: 'hello') - new Thread(accountId: 'a', id: '3', lastMessageReceivedTimestamp: 3), - new Thread(accountId: 'a', id: '2', lastMessageReceivedTimestamp: 2), - new Thread(accountId: 'a', id: '1', lastMessageReceivedTimestamp: 1), + new Thread(accountId: 'a', serverId: 's-4', clientId: '4', lastMessageReceivedTimestamp: 4, subject: 'hello') + new Thread(accountId: 'a', clientId: '3', lastMessageReceivedTimestamp: 3), + new Thread(accountId: 'a', clientId: '2', lastMessageReceivedTimestamp: 2), + new Thread(accountId: 'a', clientId: '1', lastMessageReceivedTimestamp: 1), ] refetchRequired: false },{ name: 'Item in set saved, sort order changed (within range only)' change: objectClass: Thread.name - objects: [new Thread(accountId: 'a', id: '3', lastMessageReceivedTimestamp: 1.5)] + objects: [new Thread(accountId: 'a', clientId: '3', lastMessageReceivedTimestamp: 1.5)] type: 'persist' newResultSet:[ - new Thread(accountId: 'a', id: '4', lastMessageReceivedTimestamp: 4), - new Thread(accountId: 'a', id: '2', lastMessageReceivedTimestamp: 2), - new Thread(accountId: 'a', id: '3', lastMessageReceivedTimestamp: 1.5), - new Thread(accountId: 'a', id: '1', lastMessageReceivedTimestamp: 1), + new Thread(accountId: 'a', clientId: '4', lastMessageReceivedTimestamp: 4), + new Thread(accountId: 'a', clientId: '2', lastMessageReceivedTimestamp: 2), + new Thread(accountId: 'a', clientId: '3', lastMessageReceivedTimestamp: 1.5), + new Thread(accountId: 'a', clientId: '1', lastMessageReceivedTimestamp: 1), ] refetchRequired: false },{ name: 'Item in set saved, sort order changed and sorted to edge of set (impacting last)' change: objectClass: Thread.name - objects: [new Thread(accountId: 'a', id: '3', lastMessageReceivedTimestamp: 6)] + objects: [new Thread(accountId: 'a', clientId: '3', lastMessageReceivedTimestamp: 6)] type: 'persist' refetchRequired: true },{ name: 'Item in set saved, sort order changed and sorted to edge of set (impacting first)' change: objectClass: Thread.name - objects: [new Thread(accountId: 'a', id: '3', lastMessageReceivedTimestamp: -1)] + objects: [new Thread(accountId: 'a', clientId: '3', lastMessageReceivedTimestamp: -1)] type: 'persist' refetchRequired: true },{ name: 'Item in set saved, no longer matches query clauses' change: objectClass: Thread.name - objects: [new Thread(accountId: 'b', id: '4', lastMessageReceivedTimestamp: 4)] + objects: [new Thread(accountId: 'b', clientId: '4', lastMessageReceivedTimestamp: 4)] type: 'persist' newResultSet: [ - new Thread(accountId: 'a', id: '3', lastMessageReceivedTimestamp: 3), - new Thread(accountId: 'a', id: '2', lastMessageReceivedTimestamp: 2), - new Thread(accountId: 'a', id: '1', lastMessageReceivedTimestamp: 1), + new Thread(accountId: 'a', clientId: '3', lastMessageReceivedTimestamp: 3), + new Thread(accountId: 'a', clientId: '2', lastMessageReceivedTimestamp: 2), + new Thread(accountId: 'a', clientId: '1', lastMessageReceivedTimestamp: 1), ] refetchRequired: true },{ name: 'Item in set deleted' change: objectClass: Thread.name - objects: [new Thread(accountId: 'a', id: '4')] + objects: [new Thread(accountId: 'a', clientId: '4')] type: 'unpersist' newResultSet: [ - new Thread(accountId: 'a', id: '3', lastMessageReceivedTimestamp: 3), - new Thread(accountId: 'a', id: '2', lastMessageReceivedTimestamp: 2), - new Thread(accountId: 'a', id: '1', lastMessageReceivedTimestamp: 1), + new Thread(accountId: 'a', clientId: '3', lastMessageReceivedTimestamp: 3), + new Thread(accountId: 'a', clientId: '2', lastMessageReceivedTimestamp: 2), + new Thread(accountId: 'a', clientId: '1', lastMessageReceivedTimestamp: 1), ] refetchRequired: true },{ name: 'Item not in set deleted' change: objectClass: Thread.name - objects: [new Thread(accountId: 'a', id: '5')] + objects: [new Thread(accountId: 'a', clientId: '5')] type: 'unpersist' newResultSet: 'unchanged' refetchRequired: false @@ -143,30 +143,30 @@ describe "QuerySubscription", -> .limit(4) .offset(2) lastResultSet: [ - new Thread(accountId: 'a', id: '4', lastMessageReceivedTimestamp: 4) - new Thread(accountId: 'a', id: '3', lastMessageReceivedTimestamp: 3), - new Thread(accountId: 'a', id: '2', lastMessageReceivedTimestamp: 2) + new Thread(accountId: 'a', clientId: '4', lastMessageReceivedTimestamp: 4) + new Thread(accountId: 'a', clientId: '3', lastMessageReceivedTimestamp: 3), + new Thread(accountId: 'a', clientId: '2', lastMessageReceivedTimestamp: 2) ] tests: [{ name: 'Item in set saved, no longer matches query clauses' change: objectClass: Thread.name - objects: [new Thread(accountId: 'b', id: '4', lastMessageReceivedTimestamp: 4)] + objects: [new Thread(accountId: 'b', clientId: '4', lastMessageReceivedTimestamp: 4)] type: 'persist' newResultSet: [ - new Thread(accountId: 'a', id: '3', lastMessageReceivedTimestamp: 3), - new Thread(accountId: 'a', id: '2', lastMessageReceivedTimestamp: 2), + new Thread(accountId: 'a', clientId: '3', lastMessageReceivedTimestamp: 3), + new Thread(accountId: 'a', clientId: '2', lastMessageReceivedTimestamp: 2), ] refetchRequired: false },{ name: 'Item in set deleted' change: objectClass: Thread.name - objects: [new Thread(accountId: 'a', id: '4')] + objects: [new Thread(accountId: 'a', clientId: '4')] type: 'unpersist' newResultSet: [ - new Thread(accountId: 'a', id: '3', lastMessageReceivedTimestamp: 3), - new Thread(accountId: 'a', id: '2', lastMessageReceivedTimestamp: 2), + new Thread(accountId: 'a', clientId: '3', lastMessageReceivedTimestamp: 3), + new Thread(accountId: 'a', clientId: '2', lastMessageReceivedTimestamp: 2), ] refetchRequired: false }] @@ -178,22 +178,22 @@ describe "QuerySubscription", -> .offset(2) .order(Thread.attributes.lastMessageReceivedTimestamp.ascending()) lastResultSet: [ - new Thread(accountId: 'a', id: '1', lastMessageReceivedTimestamp: 1) - new Thread(accountId: 'a', id: '2', lastMessageReceivedTimestamp: 2) - new Thread(accountId: 'a', id: '3', lastMessageReceivedTimestamp: 3) - new Thread(accountId: 'a', id: '4', lastMessageReceivedTimestamp: 4) + new Thread(accountId: 'a', clientId: '1', lastMessageReceivedTimestamp: 1) + new Thread(accountId: 'a', clientId: '2', lastMessageReceivedTimestamp: 2) + new Thread(accountId: 'a', clientId: '3', lastMessageReceivedTimestamp: 3) + new Thread(accountId: 'a', clientId: '4', lastMessageReceivedTimestamp: 4) ] tests: [{ name: 'Item in set saved, sort order changed' change: objectClass: Thread.name - objects: [new Thread(accountId: 'a', id: '3', lastMessageReceivedTimestamp: 1.5)] + objects: [new Thread(accountId: 'a', clientId: '3', lastMessageReceivedTimestamp: 1.5)] type: 'persist' newResultSet:[ - new Thread(accountId: 'a', id: '1', lastMessageReceivedTimestamp: 1) - new Thread(accountId: 'a', id: '3', lastMessageReceivedTimestamp: 1.5) - new Thread(accountId: 'a', id: '2', lastMessageReceivedTimestamp: 2) - new Thread(accountId: 'a', id: '4', lastMessageReceivedTimestamp: 4) + new Thread(accountId: 'a', clientId: '1', lastMessageReceivedTimestamp: 1) + new Thread(accountId: 'a', clientId: '3', lastMessageReceivedTimestamp: 1.5) + new Thread(accountId: 'a', clientId: '2', lastMessageReceivedTimestamp: 2) + new Thread(accountId: 'a', clientId: '4', lastMessageReceivedTimestamp: 4) ] refetchRequired: false }] @@ -209,22 +209,22 @@ describe "QuerySubscription", -> Thread.attributes.unread.descending() ]) lastResultSet: [ - new Thread(accountId: 'a', id: '1', lastMessageReceivedTimestamp: 1, unread: true) - new Thread(accountId: 'a', id: '2', lastMessageReceivedTimestamp: 1, unread: false) - new Thread(accountId: 'a', id: '3', lastMessageReceivedTimestamp: 1, unread: false) - new Thread(accountId: 'a', id: '4', lastMessageReceivedTimestamp: 2, unread: true) + new Thread(accountId: 'a', clientId: '1', lastMessageReceivedTimestamp: 1, unread: true) + new Thread(accountId: 'a', clientId: '2', lastMessageReceivedTimestamp: 1, unread: false) + new Thread(accountId: 'a', clientId: '3', lastMessageReceivedTimestamp: 1, unread: false) + new Thread(accountId: 'a', clientId: '4', lastMessageReceivedTimestamp: 2, unread: true) ] tests: [{ name: 'Item in set saved, secondary sort order changed' change: objectClass: Thread.name - objects: [new Thread(accountId: 'a', id: '3', lastMessageReceivedTimestamp: 1, unread: true)] + objects: [new Thread(accountId: 'a', clientId: '3', lastMessageReceivedTimestamp: 1, unread: true)] type: 'persist' newResultSet:[ - new Thread(accountId: 'a', id: '1', lastMessageReceivedTimestamp: 1, unread: true) - new Thread(accountId: 'a', id: '3', lastMessageReceivedTimestamp: 1, unread: true) - new Thread(accountId: 'a', id: '2', lastMessageReceivedTimestamp: 1, unread: false) - new Thread(accountId: 'a', id: '4', lastMessageReceivedTimestamp: 2, unread: true) + new Thread(accountId: 'a', clientId: '1', lastMessageReceivedTimestamp: 1, unread: true) + new Thread(accountId: 'a', clientId: '3', lastMessageReceivedTimestamp: 1, unread: true) + new Thread(accountId: 'a', clientId: '2', lastMessageReceivedTimestamp: 1, unread: false) + new Thread(accountId: 'a', clientId: '4', lastMessageReceivedTimestamp: 2, unread: true) ] refetchRequired: false }]