et
Version:
effortlessness, et al.
128 lines (83 loc) • 2.98 kB
text/coffeescript
should = require 'should'
et = require '../lib/et'
request = require 'request'
describe 'et.al', ->
server = null
before_was_used = false
use_was_used = false
#after_was_used = false
before (done) ->
server = et.al
port: 3000
resource:
dbname:
thirdParty: 'schema based db access'
eg: 'https://github.com/1602/jugglingdb'
before: (app) ->
app.use (req, res, next) ->
before_was_used = true
next()
use: (app) ->
app.use (req, res, next) ->
use_was_used = true
next()
# after: (app) ->
# app.use (req, res, next) ->
# after_was_used = true
# next()
models:
mountains:
get: (req, res) ->
res.send 'Harā Bərəzaitī'
swords:
get: (req, res) -> 'Caladbolg'
pens:
get: (req, res) -> 'Je plie, et ne romps pas.'
done()
after (done) ->
server.close()
done()
it 'starts a restify server if app is undefined', (done) ->
request 'http://0.0.0.0:3000/mountains/1', (error, response, body) ->
response.body.should.equal '"Harā Bərəzaitī"'
done()
it 'attaches et self onto inbound requests', (done) ->
req = {}
res = {}
# server = et.al
# port: 3000
#
# call first middleware
#
et.first req, res , ->
#
# did it attach reference to et?
#
req.et.should.equal et
done()
it 'rests per provided models', (done) ->
et.model.routes.get.swords.route.should.equal '/swords/:id'
et.model.models.swords.get().should.equal 'Caladbolg'
et.model.routes.get.pens.route.should.equal '/pens/:id'
et.model.models.pens.get().should.equal 'Je plie, et ne romps pas.'
done()
it 'sessions by default', (done) ->
et.session.enabled.should.equal true
done()
it 'allows middleware insertions', (done) ->
request 'http://0.0.0.0:3000/failing_rest/1', (error, response, body) ->
before_was_used.should.equal true
use_was_used.should.equal true
#after_was_used.should.equal true
done()
#
xit 'auths by default', (done) ->
#
# only if either models.users.validate(user,pass)
# or auth.validate exist
#
et.auth.enabled.should.equal true
done()
xit 'attaches to et self a reference to resources list', (done) ->
et.resource.dbname.eg.should.equal 'https://github.com/1602/jugglingdb'
done()