Skip to content

Commit 9fd7fc1

Browse files
committed
Better tests subscribe
1 parent 287d1cb commit 9fd7fc1

File tree

2 files changed

+45
-1
lines changed

2 files changed

+45
-1
lines changed

src/protocol/onsubscribe.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ dop.protocol.onsubscribe = function(node, request_id, request) {
2121
}
2222
// Object already subscribed
2323
else {
24-
response.push(object_path_id, object_path.slice(1))
24+
response.push(object_path_id)
2525
}
2626

2727
dop.core.storeAndSendRequests(

test/ES6/subscribe.js

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,50 @@ test('basic deep', async t => {
3232
close()
3333
})
3434

35+
test('subscribe same object twice', async t => {
36+
const { dopServer, nodeClient, close } = await connect(t)
37+
const objectServer = dopServer.register({ hello: 'world' })
38+
dopServer.onSubscribe(() => objectServer)
39+
const objectClient = await nodeClient.subscribe()
40+
const objectClient2 = await nodeClient.subscribe()
41+
t.deepEqual(objectServer, objectClient)
42+
t.equal(objectClient, objectClient2)
43+
close()
44+
})
45+
46+
test('subscribe same subobject twice', async t => {
47+
const { dopServer, nodeClient, close } = await connect(t)
48+
const objectServer = dopServer.register({
49+
hello: 'world',
50+
deep: { hola: 'mundo' }
51+
})
52+
dopServer.onSubscribe(() => objectServer.deep)
53+
const objectClient = await nodeClient.subscribe()
54+
const objectClient2 = await nodeClient.subscribe()
55+
t.deepEqual(objectServer.deep, objectClient)
56+
t.equal(objectClient, objectClient2)
57+
close()
58+
})
59+
60+
test('subscribe same object twice and then subscribe sub object', async t => {
61+
const { dopServer, nodeClient, close } = await connect(t)
62+
const objectServer = dopServer.register({
63+
hello: 'world',
64+
deep: { hola: 'mundo' }
65+
})
66+
dopServer.onSubscribe(() => objectServer)
67+
const objectClient = await nodeClient.subscribe()
68+
const objectClient2 = await nodeClient.subscribe()
69+
t.deepEqual(objectServer, objectClient)
70+
t.equal(objectClient, objectClient2)
71+
dopServer.onSubscribe(() => objectServer.deep)
72+
const objectClient3 = await nodeClient.subscribe()
73+
t.deepEqual(objectServer.deep, objectClient3)
74+
t.deepEqual(objectClient.deep, objectClient3)
75+
t.notEqual(objectClient.deep, objectClient3)
76+
close()
77+
})
78+
3579
test('into()', async t => {
3680
const { dopServer, nodeClient, close } = await connect(t)
3781
const objectServer = { hello: 'world' }

0 commit comments

Comments
 (0)