Skip to content

Commit be851a6

Browse files
committed
Added three nodes test
1 parent ceaf107 commit be851a6

File tree

3 files changed

+107
-46
lines changed

3 files changed

+107
-46
lines changed

test/ES6/call.js

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,3 +275,58 @@ test('Promise.reject', async function(t) {
275275
t.end()
276276
closeServer()
277277
})
278+
279+
test('basic three nodes', async t => {
280+
const {
281+
dopServer,
282+
dopClient,
283+
nodeClient,
284+
nodeSubClient,
285+
close
286+
} = await connect(t)
287+
const objectServer = {
288+
times: (a, b) => a * b
289+
}
290+
dopServer.onSubscribe(() => objectServer)
291+
const objectClient = await nodeClient.subscribe()
292+
dopClient.onSubscribe(() => objectClient)
293+
const objectSubClient = await nodeSubClient.subscribe()
294+
295+
t.equal(await objectClient.times(5, 5), 25)
296+
t.equal(await objectSubClient.times(4, 2), 8)
297+
close()
298+
})
299+
300+
test('throwing error three nodes', async t => {
301+
const {
302+
dopServer,
303+
dopClient,
304+
nodeClient,
305+
nodeSubClient,
306+
close
307+
} = await connect(t)
308+
const objectServer = {
309+
error: customerror => {
310+
throw customerror
311+
}
312+
}
313+
dopServer.onSubscribe(() => objectServer)
314+
const objectClient = await nodeClient.subscribe()
315+
dopClient.onSubscribe(() => objectClient)
316+
const objectSubClient = await nodeSubClient.subscribe()
317+
318+
try {
319+
await objectClient.error('Custom remote error')
320+
t.equal(true, false, 'This should not happen one')
321+
} catch (e) {
322+
t.equal(e, 'Custom remote error')
323+
}
324+
325+
try {
326+
await objectSubClient.error('Custom sub remote error')
327+
t.equal(true, false, 'This should not happen two')
328+
} catch (e) {
329+
t.equal(e, 'Custom sub remote error')
330+
}
331+
close()
332+
})

test/ES6/subscribe.js

Lines changed: 20 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -95,35 +95,23 @@ test('observe mutations after subscription', async t => {
9595
await nodeClient.subscribe().into(objectClient)
9696
})
9797

98-
// test('into() observe', t => {
99-
// const dopServer = dop.create()
100-
// const dopClient = dop.create()
101-
// const objectServer = dopServer.register({ inc: 0 })
102-
// const objectClient = dopClient.register({ deep: {} })
103-
// const transportServer = dopServer.listen({ transport: transportListen })
104-
// dopServer.onSubscribe(() => objectServer)
105-
// ;(function loop(times) {
106-
// const transportClient = dopClient.connect({
107-
// transport: transportConnect
108-
// })
109-
// transportClient.on('connect', async nodeClient => {
110-
// // t.notDeepEqual(objectServer, objectClient.deep)
111-
// await nodeClient.subscribe().into(objectClient.deep)
112-
// t.deepEqual(objectServer, objectClient.deep)
113-
// const observer = dopClient.createObserver(() => {
114-
// t.deepEqual(objectServer, objectClient.deep)
115-
// setTimeout(() => {
116-
// nodeClient.disconnect()
117-
// if (times === 2) {
118-
// t.end()
119-
// transportServer.socket.close()
120-
// } else {
121-
// loop(times + 1)
122-
// }
123-
// }, 0)
124-
// })
125-
// observer.observeAll(objectClient)
126-
// objectServer.inc += 1
127-
// })
128-
// })(1)
129-
// })
98+
test('basic three nodes', async t => {
99+
const {
100+
dopServer,
101+
dopClient,
102+
nodeClient,
103+
nodeSubClient,
104+
close
105+
} = await connect(t)
106+
const objectServer = {
107+
hello: 'world',
108+
deep: { hola: 'mundo' }
109+
}
110+
dopServer.onSubscribe(() => objectServer)
111+
const objectClient = await nodeClient.subscribe()
112+
dopClient.onSubscribe(() => objectClient)
113+
const objectSubClient = await nodeSubClient.subscribe()
114+
t.deepEqual(objectServer, objectClient)
115+
t.deepEqual(objectSubClient, objectClient)
116+
close()
117+
})

test/protocol/.connect.js

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,47 @@ const transportName = process.argv[2] || 'local'
33
const transportListen = require('dop-transports').listen[transportName]
44
const transportConnect = require('dop-transports').connect[transportName]
55

6-
function connect(t, end = true) {
6+
function connect(t, end = true, port2 = 56724) {
77
return new Promise(function(response, reject) {
88
const dopServer = dop.create()
99
const dopClient = dop.create()
10+
const dopSubClient = dop.create()
1011
dopServer.env = 'SERVER'
11-
dopClient.env = 'CLIENT1'
12+
dopClient.env = 'CLIENT'
13+
dopSubClient.env = 'SUBCLIENT'
1214
const transportServer = dopServer.listen({ transport: transportListen })
15+
const transportClientListen = dopClient.listen({
16+
transport: transportListen,
17+
port: port2
18+
})
1319
const transportClient = dopClient.connect({
1420
transport: transportConnect
1521
})
22+
1623
transportClient.on('connect', function(nodeClient) {
17-
const close = function() {
18-
nodeClient.disconnect()
19-
transportServer.socket.close()
20-
if (end) t.end()
21-
}
22-
response({
23-
dopServer,
24-
dopClient,
25-
transportServer,
26-
transportClient,
27-
nodeClient,
28-
close
24+
const transportSubClient = dopSubClient.connect({
25+
transport: transportConnect,
26+
url: 'ws://localhost:' + port2
27+
})
28+
transportSubClient.on('connect', function(nodeSubClient) {
29+
const close = function() {
30+
nodeSubClient.disconnect()
31+
transportServer.socket.close()
32+
nodeClient.disconnect()
33+
transportClientListen.socket.close()
34+
if (end) t.end()
35+
}
36+
response({
37+
dopServer,
38+
dopClient,
39+
dopSubClient,
40+
transportServer,
41+
transportClient,
42+
transportSubClient,
43+
nodeClient,
44+
nodeSubClient,
45+
close
46+
})
2947
})
3048
})
3149
})

0 commit comments

Comments
 (0)