Skip to content

Commit e0164a6

Browse files
committed
oncall done
1 parent e81ef53 commit e0164a6

File tree

5 files changed

+66
-72
lines changed

5 files changed

+66
-72
lines changed

src/core/objects/mergeSubscription.js

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@ dop.core.mergeSubscription = function(object, object_remote) {
33
object_remote,
44
null,
55
object,
6-
dop.core.mergeSubscriptionMutator
6+
dop.util.mergeMutator
7+
// dop.core.mergeSubscriptionMutator
78
)
89
}
910

10-
dop.core.mergeSubscriptionMutator = function(destiny, prop, value, tof_value) {
11-
if (tof_value == 'object' || tof_value == 'array')
12-
!destiny.hasOwnProperty(prop)
13-
? (destiny[prop] = tof_value == 'array' ? [] : {})
14-
: destiny[prop]
15-
else destiny[prop] = value
16-
}
11+
// dop.core.mergeSubscriptionMutator = function(destiny, prop, value, tof_value) {
12+
// if (tof_value == 'object' || tof_value == 'array')
13+
// !destiny.hasOwnProperty(prop)
14+
// ? (destiny[prop] = tof_value == 'array' ? [] : {})
15+
// : destiny[prop]
16+
// else destiny[prop] = value
17+
// }

src/protocol/oncall.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
dop.protocol.oncall = function(node, request_id, request, object_id) {
2-
var path = request[2],
1+
dop.protocol.oncall = function(node, request_id, request) {
2+
var object_id = request[1],
3+
path = request[2],
34
params = request[3],
45
subscriber = node.subscriber[object_id]
56

test/ES6/.connect.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
const dop = require('../.proxy')
2+
const transportName = process.argv[2] || 'local'
3+
const transportListen = require('dop-transports').listen[transportName]
4+
const transportConnect = require('dop-transports').connect[transportName]
5+
6+
function connect(t, end = true) {
7+
return new Promise((response, reject) => {
8+
const dopServer = dop.create()
9+
const dopClient = dop.create()
10+
dopServer.env = 'SERVER'
11+
dopClient.env = 'CLIENT1'
12+
const transportServer = dopServer.listen({ transport: transportListen })
13+
const transportClient = dopClient.connect({
14+
transport: transportConnect
15+
})
16+
transportClient.on('connect', async nodeClient => {
17+
const close = () => {
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
29+
})
30+
})
31+
})
32+
}
33+
34+
module.exports = { connect }

test/ES6/call.js

Lines changed: 14 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,7 @@
1-
var test = require('tape')
2-
var dopServer = require('../.proxy').create()
3-
var dopClient = require('../.proxy').create()
4-
var transportName = process.argv[2] || 'local'
5-
var transportListen = require('dop-transports').listen[transportName]
6-
var transportConnect = require('dop-transports').connect[transportName]
7-
dopServer.env = 'SERVER'
8-
dopClient.env = 'CLIENT'
1+
const test = require('tape')
2+
const { connect } = require('../ES6/.connect.js')
93

10-
// this code would be in node.js
11-
var server = dopServer.listen({ transport: transportListen })
12-
// this code would be in browser
13-
var client = dopClient.connect({
14-
transport: transportConnect,
15-
listener: server
16-
})
17-
18-
var localFunctions = dopServer.register({
4+
const localFunctions = {
195
okSync: function(req) {
206
return 'Ok'
217
},
@@ -116,16 +102,18 @@ var localFunctions = dopServer.register({
116102
resolve(Promise.reject('Error'))
117103
})
118104
}
119-
})
105+
}
120106

121-
// server
122-
dopServer.onSubscribe(function() {
123-
return localFunctions
124-
})
125-
126-
var remoteFunctions
107+
let remoteFunctions
108+
let closeServer
127109
test('Matching same values', async function(t) {
128-
remoteFunctions = await client.subscribe()
110+
const { dopServer, nodeClient, close } = await connect(
111+
t,
112+
false
113+
)
114+
closeServer = close
115+
dopServer.onSubscribe(() => localFunctions)
116+
remoteFunctions = await nodeClient.subscribe()
129117
t.deepEqual(Object.keys(remoteFunctions), Object.keys(localFunctions))
130118
t.end()
131119
})
@@ -285,5 +273,5 @@ test('Promise.reject', async function(t) {
285273
}
286274

287275
t.end()
288-
server.listener.close()
276+
closeServer()
289277
})

test/ES6/subscribe.js

Lines changed: 6 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,12 @@
1-
var test = require('tape')
2-
var dop = require('../.proxy')
3-
var transportName = process.argv[2] || 'local'
4-
var transportListen = require('dop-transports').listen[transportName]
5-
var transportConnect = require('dop-transports').connect[transportName]
6-
7-
function connect(t) {
8-
return new Promise((response, reject) => {
9-
const dopServer = dop.create()
10-
const dopClient = dop.create()
11-
dopServer.env = 'SERVER'
12-
dopClient.env = 'CLIENT1'
13-
const transportServer = dopServer.listen({ transport: transportListen })
14-
const transportClient = dopClient.connect({
15-
transport: transportConnect
16-
})
17-
transportClient.on('connect', async nodeClient => {
18-
const close = () => {
19-
nodeClient.disconnect()
20-
transportServer.socket.close()
21-
t.end()
22-
}
23-
response({
24-
dopServer,
25-
dopClient,
26-
transportServer,
27-
transportClient,
28-
nodeClient,
29-
close
30-
})
31-
})
32-
})
33-
}
1+
const test = require('tape')
2+
const dop = require('../.proxy')
3+
const { connect } = require('../ES6/.connect.js')
344

355
test('basic', async t => {
366
const { dopServer, nodeClient, close } = await connect(t)
377
const objectServer = dopServer.register({ hello: 'world' })
388
dopServer.onSubscribe(() => objectServer)
39-
const objectClient = await nodeClient.subscribe().into({})
9+
const objectClient = await nodeClient.subscribe()
4010
t.deepEqual(objectServer, objectClient)
4111
close()
4212
})
@@ -112,12 +82,12 @@ test('into() client and server deep object', async t => {
11282

11383
test('observe mutations after subscription', async t => {
11484
const { dopServer, dopClient, nodeClient, close } = await connect(t)
115-
const objectServer = { hello: 'world' }
85+
const objectServer = { hello: 'world', second: 'arg' }
11686
const objectClient = dopClient.register({})
11787
dopServer.onSubscribe(() => objectServer)
11888
dopClient
11989
.createObserver(mutations => {
120-
t.equal(mutations.length, 1)
90+
t.equal(mutations.length, 2)
12191
t.deepEqual(objectServer, objectClient)
12292
close()
12393
})

0 commit comments

Comments
 (0)