###
Module dependencies.
###
Concierge = require '../../src/connect-concierge'

concierge = new Concierge
resolveTemplate = concierge.resolveTemplate()

describe 'resolveTemplate middleware', ->

  it 'should exist as a public function', (done) ->
    resolveTemplate.bind(null).should.be.a.Function
    done()

  it 'should skip to next middleware if url is not /admin/<admin>', (done) ->
    req =
      url: '/admin/Scripts/script.js'

    resolveTemplate req, {}, ->
      done()

  it 'should skip to next middleware if url is /admin/logout', (done) ->
    req =
      url: '/admin/logout'

    resolveTemplate req, {}, ->
      done()

  it 'should skip to next middleware if there is already a template object in the request', (done) ->
    req =
      url: '/admin/jonny-quest'
      template: 'template'

    resolveTemplate req, {}, ->
      done()

  it 'should throw an error if middleware could not find template file', (done) ->
    req =
      url: '/admin/jonny-quest'

    resolveTemplate req, {}, (e) ->
      e.should.be.an.Error
      done()

  it "should read a file and create a template object in the request with it's content", (done) ->
    _concierge = new Concierge(customPath: __dirname + '/../fixtures/template.dust')
    _resolveTemplate = _concierge.resolveTemplate()

    req =
      url: '/admin/jonny-quest'

    _resolveTemplate req, {}, ->
      req.template.should.exist
      req.template.should.be.equal '{bar}'
      done()
