1 | {CRUD} = require '../lib/CRUD'
|
2 | {Services} = require '../lib/Services'
|
3 | {Messages} = require '../lib/Messages'
|
4 | helper = require './helper'
|
5 |
|
6 | describe "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()
|