UNPKG

4.18 kBtext/coffeescriptView Raw
1Documentor = require 'lib/Documentor'
2EventEmitter = require('events').EventEmitter
3should = require 'should'
4fs = require 'fs'
5
6describe 'Documentor', ->
7
8 describe 'invalid constructor', ->
9
10 it 'should throw an error if invalid runner provided', ->
11
12 (-> documentor = new Documentor null ).should.throw 'Invalid runner'
13
14 describe 'constructor', ->
15
16 runner = new EventEmitter()
17 documentor = new Documentor runner, 'bingo', '/tmp/bingo/bango.bongo'
18
19 it 'should set default properties', ->
20
21 documentor.runner.should.equal runner
22 documentor.title.should.equal 'bingo'
23
24 it 'should create file and directories recursively', ->
25
26 stat = fs.statSync '/tmp/bingo/bango.bongo'
27 stat.isFile().should.equal true
28
29 describe 'documentTest', ->
30
31 it 'should document a pass test', (done) ->
32
33 test =
34 source: 'console.log "bango.bongo"'
35 title: 'Bingo Bongle'
36
37 runner = new EventEmitter()
38 documentor = new Documentor runner, 'bingo', '/tmp/bingo/bango.bongo'
39 documentor.destination =
40 write: (doc) ->
41 doc.should.eql "### ✓ #{test.title}\n```javascript\n#{test.source}\n```\n\n"
42 done()
43
44 runner.emit 'complete', 0, 'stdout', 'stderr', test: test
45
46 it 'should document a multiple pass tests', (done) ->
47
48 counter = 0
49 test1 =
50 source: 'console.log "bango.bongo"'
51 title: 'Bingo Bango'
52 test2 =
53 source: 'console.log "bango.bongo"'
54 title: 'Bango Bongo'
55
56 runner = new EventEmitter()
57 documentor = new Documentor runner, 'bingo', '/tmp/bingo/bango.bongo'
58 documentor.destination =
59
60 write: (doc) ->
61 if ++counter is 1
62 doc.should.eql "### ✓ #{test1.title}\n```javascript\n#{test1.source}\n```\n\n"
63 else
64 doc.should.eql "### ✓ #{test2.title}\n```javascript\n#{test2.source}\n```\n\n"
65 done()
66
67 runner.emit 'complete', 0, 'stdout', 'stderr', test: test1
68 runner.emit 'complete', 0, 'stdout', 'stderr', test: test2
69
70 it 'should document a fail test', (done) ->
71
72 test =
73 source: 'console.error "A bingo error occurred"'
74 title: 'Bingo Bongoo'
75
76 runner = new EventEmitter()
77 documentor = new Documentor runner, 'bingo', '/tmp/bingo/bango.bongo'
78 documentor.destination =
79 write: (doc) ->
80 doc.should.eql "### ✘ #{test.title}\n```javascript\n#{test.source}\n```\nstdout\n\n"
81 done()
82
83 runner.emit 'complete', 1, 'stdout', 'stderr', test: test
84
85 it 'should document a multiple fail tests', (done) ->
86
87 counter = 0
88 test1 =
89 source: 'console.log "bango.bongo"'
90 title: 'Bingo Bango'
91 test2 =
92 source: 'console.log "bango.bongo"'
93 title: 'Bango Bongo'
94
95 runner = new EventEmitter()
96 documentor = new Documentor runner, 'bingo', '/tmp/bingo/bango.bongo'
97 documentor.destination =
98
99 write: (doc) ->
100 if ++counter is 1
101 doc.should.eql "### ✘ #{test1.title}\n```javascript\n#{test1.source}\n```\nstdout\n\n"
102 else
103 doc.should.eql "### ✘ #{test2.title}\n```javascript\n#{test2.source}\n```\nstdout\n\n"
104 done()
105
106 runner.emit 'complete', 1, 'stdout', 'stderr', test: test1
107 runner.emit 'complete', 1, 'stdout', 'stderr', test: test2
108
109 it 'should cover issue #46', (done) ->
110
111 counter = 0
112 test1 =
113 source: "should.exist json.body"
114 title: 'check 1'
115 test2 =
116 source: "json.body.user.mobile_number.should.equal '+447868493599'"
117 title: 'check 2'
118
119 runner = new EventEmitter()
120 documentor = new Documentor runner, 'bingo', '/tmp/bingo/bango.bongo'
121 documentor.destination =
122
123 write: (doc) ->
124 if ++counter is 1
125 doc.should.eql "### ✓ #{test1.title}\n```javascript\n#{test1.source}\n```\n\n"
126 else
127 doc.should.eql "### ✘ #{test2.title}\n```javascript\n#{test2.source}\n```\nstdout\n\n"
128 done()
129
130 runner.emit 'complete', 0, 'stdout', 'stderr', test: test1
131 runner.emit 'complete', 1, 'stdout', 'stderr', test: test2