inspired-server
Version:
A RESTful entity server
66 lines (56 loc) • 1.85 kB
text/coffeescript
casper.test.begin 'Test 0002 - OneToMany/ManyToOne', 8, (test) ->
data = {
article: null
comment1: null
comment2: null
body: 'What a cool description'
date: {
start: null
end: null
}
}
casper.start()
data.date.start = new Date()
casper.then ->
.post "/articles.json", {
body: data.body
}
->
data.article = JSON.parse
test.assertEquals data.article.body, data.body, "Create base entity"
casper.then ->
.post "/comments.json", {
body: data.body
article: data.article.uuid
}
->
data.comment1 = JSON.parse
test.assertEquals data.comment1.body, data.body, 'Create related entity and link via data'
casper.then ->
.post "/articles/#{data.article.uuid}/comments.json", {
body: data.body
}
->
data.comment2 = JSON.parse
test.assertEquals data.comment2.body, data.body, 'Create related entity and link via URI'
casper.then ->
.get "/articles/#{data.article.uuid}/comments.json"
->
matches1 = .findInList(data.comment1.uuid, JSON.parse )
matches2 = .findInList(data.comment2.uuid, JSON.parse )
test.assertEquals matches1.length, 1, 'Related1 In List'
test.assertEquals matches2.length, 1, 'Related2 In List'
casper.then ->
.delete "/articles/#{data.article.uuid}/comments.json"
(response) ->
test.assertEquals response.status, 200, "Delete All Related"
casper.then ->
.delete "/articles/#{data.article.uuid}.json"
(response) ->
test.assertEquals response.status, 200, "Delete Base"
casper.then ->
data.date.end = new Date()
total = data.date.end - data.date.start
test.assert (total < 500), "Speed < 500ms (#{total})"
casper.run ->
test.done()