app       = require "#{__dirname}/project/server"
users     = require './fixtures/users'
requests  = require('./helpers/requests')(app)
request   = require 'request'
require   'should'

describe 'Account', ->

  before (done) ->
    app.listen app.settings.port
    users.clear done


  describe 'view', ->

    user = null
    body = null

    before (done) ->
      users.create 'guest', (err, users) ->
        user = users['guest']
        request requests.login('guest'), (e,r,b) ->
          request requests.account, (err, res, _body) ->
            body = _body
            done()

    it 'should require login', (done) ->
      req =
        uri: requests.account
        jar: false
      request req, (err, res, body) ->
        body.should.include 'name="email"'
        body.should.include 'name="password"'
        done()

    it 'should display user details', (done) ->
      body.should.include "<td>#{user.name.full}"
      body.should.include user.email
      done()

    it 'should display the created timestamp', (done) ->
      body.should.include user.created
      done()

    it 'should display the updated timestamp', (done) ->
      callback = () =>
        user.password = 'newersecret'
        user.save (err) ->
          users.model.findOne {email: user.email}, (err, u) ->
            request requests.account, (err, res, body) ->
              body.should.include u.updated
              done()
      setTimeout callback, 1000
