/
delete.spec.coffee
137 lines (117 loc) · 4.48 KB
/
delete.spec.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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
should = require 'should'
request = require 'request'
querystring = require 'querystring'
exported = require('../server.coffee')
app = exported.app
blað = exported.blað
config = exported.config
config.browserid.hashes = [ '@dummy' ]
# -------------------------------------------------------------------
class DeleteDocument extends blað.Type
# Render as JSON as is.
render: (done) ->
done
'type': @type
'url': @url
, false
blað.types.DeleteDocument = DeleteDocument
# -------------------------------------------------------------------
url = "http://127.0.0.1:#{config.port}"
describe "delete a document action", ->
before (done) ->
app.start()
app.db (collection) ->
collection.remove {}, (error, removed) ->
collection.find({}).toArray (error, results) ->
results.length.should.equal 0
done()
describe "create & delete a document", ->
it 'should return 201', (done) ->
request.post
'url': "#{url}/api/document"
'form':
'type': 'DeleteDocument'
'url': "/deleteme"
'public': true
'headers':
'x-blad-apikey': '@dummy'
, (error, response, body) ->
done(error) if error
response.statusCode.should.equal 201
done()
it 'should be able to access the document', (done) ->
request.get "#{url}/deleteme"
, (error, response, body) ->
done(error) if error
response.statusCode.should.equal 200
done()
it 'should be able to remove the document', (done) ->
request.del
'url': "#{url}/api/document?url=/deleteme"
'headers':
'x-blad-apikey': '@dummy'
, (error, response, body) ->
response.statusCode.should.equal 200
done()
it 'should not be able to access the document now', (done) ->
request.get "#{url}/deleteme"
, (error, response, body) ->
response.statusCode.should.equal 404
done()
describe "create & delete a hidden document", ->
it 'should return 201', (done) ->
request.post
'url': "#{url}/api/document"
'form':
'type': 'DeleteDocument'
'url': "/deleteme"
'public': false
'headers':
'x-blad-apikey': '@dummy'
, (error, response, body) ->
done(error) if error
response.statusCode.should.equal 201
done()
it 'should not be able to create the same document', (done) ->
request.post
'url': "#{url}/api/document"
'form':
'type': 'DeleteDocument'
'url': "/deleteme"
'public': false
'headers':
'x-blad-apikey': '@dummy'
, (error, response, body) ->
done(error) if error
response.statusCode.should.equal 400
done()
it 'should be able to remove the document', (done) ->
request.del
'url': "#{url}/api/document?url=/deleteme"
'headers':
'x-blad-apikey': '@dummy'
, (error, response, body) ->
response.statusCode.should.equal 200
done()
it 'now should be able to use the url again', (done) ->
request.post
'url': "#{url}/api/document"
'form':
'type': 'DeleteDocument'
'url': "/deleteme"
'public': true
'headers':
'x-blad-apikey': '@dummy'
, (error, response, body) ->
done(error) if error
response.statusCode.should.equal 201
done()
describe "do not delete nonexistent document", ->
it 'delete madeup doc', (done) ->
request.del
'url': "#{url}/api/document?url=/nonexistent"
'headers':
'x-blad-apikey': '@dummy'
, (error, response, body) ->
response.statusCode.should.equal 404
done()