UNPKG

3.86 kBtext/coffeescriptView Raw
1{CRUD} = require '../lib/CRUD'
2{Services} = require '../lib/Services'
3{Messages} = require '../lib/Messages'
4helper = require './helper'
5
6describe "Server Specs",->
7
8 beforeEach ->
9 console.log "==========running new test( #{@suite.description} - #{@description} )=========="
10
11 afterEach ->
12 helper.envCleaup()
13
14 it "publishes event with object",(done)->
15 testEN = "ZZZ"
16 testCO = CRUD.update
17 testEID = 5
18 testData = {that: "and this"}
19 server = helper.getServerInstance()
20
21 spy = spyOn(server, "_recieveEvent").andCallFake (entityName, crudOp, params, eventParams)->
22 expect(entityName).toEqual(testEN)
23 expect(crudOp).toEqual(testCO)
24 expect(params).toEqual(params)
25 expect(eventParams[0]).toEqual(testEID)
26 expect(eventParams[1]).toEqual(testData)
27 done()
28 server.onPulishReady ()->
29 server.publishEvent(testEN, testCO, {}, testEID, testData)
30
31 it "registers request recieved and intercepted by services",(done)->
32 acl = [ role : "public", model: "tester", crudOps : [CRUD.read] ]
33 testObj = { a: "a", b: "b" }
34 spy = spyOn(Services, Messages.Register).andCallFake (a,b,c,d,e,f,cb)->
35 cb(null, testObj)
36 server = helper.getServerInstance()
37 client = helper.getClientInstance()
38 client.on 'connect', ->
39 client.emit Messages.Register, "tester",{}, 1, (err, data)->
40 expect(data).toEqual(testObj)
41 done()
42
43 it "registers for updates and receives the current value",(done)->
44 acl = [ role : "public", model: "Tester", crudOps : [CRUD.update] ]
45 testObj = { a: "a", b: "b" }
46
47 good = false
48 server = helper.getServerInstance (controllerName)->
49 {
50 'read' : (params, id, cb)->
51 expect(id).toEqual(42)
52 cb(null, testObj)
53 }
54
55
56 client = helper.getClientInstance()
57 client.on 'connect', ->
58 client.emit Messages.Register, "Tester", {}, 42, (err, data)->
59 expect(data).toEqual(testObj)
60 done()
61
62
63 it "dispatches a read message to model via an Operation",(done)->
64 acl = [ role : "public", model: "Tester", crudOps : [CRUD.read] ]
65 testObj = { a: "a", b: "b" }
66
67 server = helper.getServerInstance (controllerName)->
68 {
69 'read' : (params, id, cb)->
70 expect(id).toEqual(42)
71 cb(null, testObj)
72 }
73
74 client = helper.getClientInstance()
75 client.on 'connect', ->
76 client.emit Messages.Operation, "Tester", CRUD.read, {}, 42, null, (err, data)->
77 expect(data).toEqual(testObj)
78 done()
79
80 it "notifies a registered client on model change", (done)->
81 acl = [ role : "public", model: "Tester", crudOps : [CRUD.read] ]
82 testObj1 = { a: "a", b: "b" }
83 testObj2 = { a: "a2", b: "b2" }
84 testsDone = 0
85
86 server = helper.getServerInstance (controllerName)->
87 {
88 'read' : (params, id, cb)->
89 testsDone += 1
90 expect(id).toEqual(42)
91 cb(null, testObj1)
92 'update' : (params, id, data, cb)->
93 expect(id).toEqual(42)
94 testsDone += 1
95 expect(data).toEqual(testObj2)
96 cb(null)
97
98 }
99
100 clientA = helper.getClientInstance()
101 clientB = helper.getClientInstance(true)
102
103 clientB.on 'connect', ->
104 clientA.emit Messages.Register, "Tester", {}, 42, (err, data)->
105 expect(err).toBeNull()
106 testsDone += 1
107 expect(data).toEqual(testObj1)
108
109 clientA.on Messages.Publish, (entityName, crudOp, {}, eventParams)->
110 [entityId, data] = eventParams
111 expect(data).toEqual(testObj2)
112 expect(testsDone).toEqual(3)
113 done()
114
115 clientB.emit Messages.Operation,"Tester", CRUD.update, {}, 42, testObj2, (err)->
116 expect(err).toBeNull()
117
118 xit "checks if the passd controller file exists"
119 xit "cleans up after disconnection of a client"
120
121 it "stores a userID in the tmp store via provided token and retrieves it",(done)->
122 userID = "fake-user-id"
123 server = helper.getServerInstance()
124 token = server.makeTokenForUserID(userID)
125 server.genUserIDFromToken token, (err, res)->
126 expect(err).toBeNull()
127 expect(res).toEqual(userID)
128 done()