Skip to content

Commit 3a5a117

Browse files
committed
Making subscribe tests
1 parent 127bed2 commit 3a5a117

File tree

2 files changed

+115
-4
lines changed

2 files changed

+115
-4
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
node_modules/
22
npm-debug.log
33
.vscode
4-
test.js
4+
test*.js

test/transports/subscribe.js

Lines changed: 114 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -187,22 +187,132 @@ test('Server subscribe client object', function(t) {
187187
t.equal(objectDataClient.node[client.token].owner, false, 'Server is not owner');
188188
t.equal(objectDataServer.node[nodeClient.token].subscribed, false, 'Client is not subscribed');
189189
t.equal(objectDataServer.node[nodeClient.token].owner, true, 'Client is owner');
190+
t.end();
191+
})
192+
});
193+
194+
test('Server subscribe client object that is from server', function(t) {
195+
var objServer = {test:Math.random()},
196+
objClient;
197+
dopServer.onsubscribe(function() {
198+
return objServer;
199+
});
200+
dopClient.onsubscribe(function() {
201+
return objClient;
202+
});
203+
client.subscribe().then(function(obj){
204+
objClient = obj;
205+
nodeClient.subscribe().then(function(objServer2){
206+
t.notEqual(objServer2, dopServer.getObjectProxy(objServer));
207+
t.equal(dopServer.getObjectId(objServer2), dopServer.getObjectId(objServer)+1, 'Different ids');
208+
t.equal(objServer2.hasOwnProperty('test'), true, 'obj hasOwnProperty test');
209+
t.deepEqual(objServer, objClient);
210+
t.deepEqual(objServer, objServer2);
211+
t.deepEqual(objClient, obj);
212+
213+
var objectDataServer = dopServer.data.object[dopServer.getObjectId(objServer)];
214+
var objectDataServer2 = dopServer.data.object[dopServer.getObjectId(objServer2)];
215+
var objectDataClient = dopClient.data.object[dopServer.getObjectId(objClient)];
216+
t.equal(objectDataServer.node[nodeClient.token].subscribed, true, 'Client is subscribed');
217+
t.equal(objectDataServer.node[nodeClient.token].owner, false, 'Client is not owner');
218+
t.equal(objectDataServer2.node[nodeClient.token].subscribed, false, 'Client is not subscribed');
219+
t.equal(objectDataServer2.node[nodeClient.token].owner, true, 'Client is owner');
220+
t.equal(objectDataClient.node[client.token].subscribed, true, 'Server is subscribed');
221+
t.equal(objectDataClient.node[client.token].owner, true, 'Server is not owner');
190222

223+
t.end();
224+
});
191225
})
192226
});
193227

194-
// test('Server subscribe client object that is from server', function(t) {
195228

196-
// });
229+
230+
test('Client subscribe into object that is not register yet', function(t) {
231+
var objServer = {test:Math.random()},
232+
objClient = {test:Math.random()},
233+
objClientSnap = dopClient.util.merge({}, objClient);
234+
235+
t.deepEqual(objClient, objClientSnap, 'Are equivalent before subcribe');
236+
t.equal(dopClient.isRegistered(objClient), false, 'Is not registered');
237+
238+
dopServer.onsubscribe(function() {
239+
return objServer;
240+
});
241+
client.subscribe().into(objClient).then(function(obj){
242+
t.equal(dopClient.isRegistered(objClient), true, 'Is registered');
243+
t.notDeepEqual(objClient, objClientSnap, 'Are not equivalent before subcribe');
244+
t.deepEqual(objClient, objServer, 'Are equivalent with server objetc');
245+
t.equal(obj, dopClient.getObjectProxy(objClient), 'objClient and obj are the same object');
246+
t.end();
247+
});
248+
});
249+
250+
251+
252+
test('Client subscribe into object that is already registered', function(t) {
253+
var objServer = {test:Math.random()},
254+
objClient = dopClient.register({test:Math.random()}),
255+
objClientSnap = dopClient.util.merge({}, objClient);
256+
257+
t.deepEqual(objClient, objClientSnap, 'Are equivalent before subcribe');
258+
t.equal(dopClient.isRegistered(objClient), true, 'Is registered');
259+
260+
dopServer.onsubscribe(function() {
261+
return objServer;
262+
});
263+
client.subscribe().into(objClient).then(function(obj){
264+
t.equal(dopClient.isRegistered(obj), true, 'Is registered');
265+
t.notDeepEqual(objClient, objClientSnap, 'Are not equivalent before subcribe');
266+
t.deepEqual(objClient, objServer, 'Are equivalent with server objetc');
267+
t.equal(obj, objClient, 'objClient and obj are the same object');
268+
t.end();
269+
});
270+
})
271+
272+
273+
274+
test('Server and client subscribe into the same object', function(t) {
275+
var objServer = {test:Math.random()},
276+
objClient = {test:Math.random()};
277+
278+
dopServer.onsubscribe(function() {
279+
return objServer;
280+
});
281+
dopClient.onsubscribe(function() {
282+
return objClient;
283+
});
284+
285+
client.subscribe().into(objClient).then(function(obj) {
286+
t.equal(obj, dopClient.getObjectProxy(objClient), 'Same object client');
287+
nodeClient.subscribe().into(objServer).then(function(obj2) {
288+
t.equal(obj2, dopServer.getObjectProxy(objServer), 'Same object server');
289+
t.deepEqual(objClient, objServer);
290+
var objectDataServer = dopServer.data.object[dopServer.getObjectId(objServer)];
291+
var objectDataClient = dopClient.data.object[dopServer.getObjectId(objClient)];
292+
t.equal(objectDataServer.node[nodeClient.token].subscribed, true, 'Client is subscribed');
293+
t.equal(objectDataServer.node[nodeClient.token].owner, true, 'Client is owner');
294+
t.equal(objectDataClient.node[client.token].subscribed, true, 'Server is subscribed');
295+
t.equal(objectDataClient.node[client.token].owner, true, 'Server is not owner');
296+
t.end();
297+
})
298+
})
299+
})
300+
301+
197302

198303

199304

200-
// test('Into...', function(t) {});
201305

202306

203307

204308

205309

310+
// test('Multiple Clients subscribe Same object', function(t) {});
311+
// test('Multiple Clients subscribe different objects', function(t) {});
312+
// test('Client2 subscribe Client1 and this subscribe Server', function(t) {});
313+
// test('Circle object subscription', function(t) {});
314+
//
315+
// test('observeProperty', function(t) {
206316

207317
// dopClient.observeProperty(o, 'paco', function(mutation){
208318
// console.log( mutation );
@@ -211,3 +321,4 @@ test('Server subscribe client object', function(t) {
211321
// dopClient.observe(o, function(mutations){
212322
// console.log( mutations );
213323
// })
324+
// })

0 commit comments

Comments
 (0)