/
store.spec.template.coffee
54 lines (44 loc) · 1.7 KB
/
store.spec.template.coffee
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# connect middleware session store interface specification
_ = require 'underscore'
{aCheck} = require 'ajsh'
# attention: stateful test spec, beware of right order
module.exports = (createStore) ->
sessions =
sid0: { data: key: 'a session' }
sid1: { data: key: 'another one' }
store = createStore sessions
it 'extends connect.session.Store.prototype', ->
expect(store.createSession).toBeDefined 'inherits session create method'
it 'defines get(sid, callback)', =>
aCheck 'get a session', (done) ->
store.get 'sid1', (error, session) ->
expect(error).toBeNull 'no error'
expect(_.isEqual session, sessions.sid1).toBeTruthy 'session one'
done()
aCheck 'get unknown session', (done) ->
store.get 'sid3', (error, session) ->
expect(error).toBeUndefined 'no error'
expect(session).toBeUndefined 'no session'
done()
it 'defines set(sid, session, callback)', =>
aCheck 'set session without callback', (done) ->
store.set 'sid2', { data: key: 'third session' }, done
it 'defines length(callback)', ->
aCheck 'get session count', (done) ->
store.length (count) ->
expect(count).toBe 3, 'sessions length'
done()
it 'defines destroy(sid, callback)', =>
aCheck 'destroy session one', (done) ->
store.destroy 'sid1', (error) ->
expect(error).toBeUndefined 'no error'
done()
aCheck 'destroy unknown session', (done) ->
store.destroy 'sid3', (error) ->
expect(error).toBeDefined 'an error'
done()
it 'defines clear(callback)', ->
aCheck 'clear store', (done) ->
store.clear (error) ->
expect(error).toBeUndefined 'no error'
done()