~stephen-stewart/+junk/add-grunt

« back to all changes in this revision

Viewing changes to node_modules/grunt-contrib-watch/node_modules/tiny-lr-fork/test/middleware.js

  • Committer: Stephen Stewart
  • Date: 2014-05-13 01:26:55 UTC
  • Revision ID: stephen.stewart@canonical.com-20140513012655-wx8xbwcdohofxoyj
add --production node_modules

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
var http    = require('http');
 
3
var assert  = require('assert');
 
4
var connect = require('connect');
 
5
var express = require('express');
 
6
var request = require('supertest');
 
7
var debug   = require('debug')('tinylr:test');
 
8
var Server  = require('..').Server;
 
9
 
 
10
var npmenv = process.env;
 
11
 
 
12
var port = parseInt(process.env.npm_package_config_test_port || 0, 10);
 
13
 
 
14
describe('Connect Middleware', suite('Connect Middleware', connect()));
 
15
describe('Express Middleware', suite('Express Middleware', express()));
 
16
 
 
17
// XXX cover up the ws connection done in client.js / server.js tests:w
 
18
function suite(name, app) {return function() {
 
19
 
 
20
  before(function() {
 
21
    this.app = app;
 
22
    this.lr = new Server();
 
23
 
 
24
    this.app
 
25
      .use(connect.query())
 
26
      .use(connect.bodyParser())
 
27
      .use(this.lr.handler.bind(this.lr));
 
28
 
 
29
    this.server = http.createServer(this.app);
 
30
    debug('Start %s suite, listen on %d', name, port);
 
31
    this.server.listen(port);
 
32
  });
 
33
 
 
34
 
 
35
  after(function(done) {
 
36
    this.server.close(done);
 
37
  });
 
38
 
 
39
  describe('GET /', function() {
 
40
    it('respond with nothing, but respond', function(done){
 
41
      request(this.server)
 
42
        .get('/')
 
43
        .expect('Content-Type', /json/)
 
44
        .expect(/\{"tinylr":"Welcome","version":"0.0.[\d]+"\}/)
 
45
        .expect(200, done);
 
46
    });
 
47
 
 
48
    it('unknown route are noop with middlewares, next-ing', function(done){
 
49
      request(this.server)
 
50
        .get('/whatev')
 
51
        .expect('Content-Type', 'text/plain')
 
52
        .expect('Cannot GET /whatev')
 
53
        .expect(404, done);
 
54
    });
 
55
  });
 
56
 
 
57
 
 
58
  describe('GET /changed', function() {
 
59
    it('with no clients, no files', function(done) {
 
60
      request(this.server)
 
61
        .get('/changed')
 
62
        .expect('Content-Type', /json/)
 
63
        .expect(/"clients":\[\]/)
 
64
        .expect(/"files":\[\]/)
 
65
        .expect(200, done);
 
66
    });
 
67
 
 
68
    it('with no clients, some files', function(done) {
 
69
      request(this.server)
 
70
        .get('/changed?files=gonna.css,test.css,it.css')
 
71
        .expect('Content-Type', /json/)
 
72
        .expect('{"clients":[],"files":["gonna.css","test.css","it.css"]}')
 
73
        .expect(200, done);
 
74
    });
 
75
  });
 
76
 
 
77
  describe('POST /changed', function() {
 
78
    it('with no clients, no files', function(done) {
 
79
      request(this.server)
 
80
        .post('/changed')
 
81
        .expect('Content-Type', /json/)
 
82
        .expect(/"clients":\[\]/)
 
83
        .expect(/"files":\[\]/)
 
84
        .expect(200, done);
 
85
    });
 
86
 
 
87
    it.skip('with no clients, some files', function(done) {
 
88
      var data = { clients: [], files: ['cat.css', 'sed.css', 'ack.js'] };
 
89
 
 
90
      var r = request(this.server)
 
91
        .post('/changed')
 
92
        .send({ files: data.files })
 
93
        .expect('Content-Type', /json/)
 
94
        .expect(JSON.stringify(data))
 
95
        .expect(200, done);
 
96
    });
 
97
  });
 
98
 
 
99
  describe('GET /livereload.js', function() {
 
100
    it('respond with livereload script', function(done) {
 
101
      request(this.server)
 
102
        .get('/livereload.js')
 
103
        .expect(/LiveReload/)
 
104
        .expect(200, done);
 
105
    });
 
106
  });
 
107
 
 
108
  describe.skip('GET /kill', function() {
 
109
    it('shutdown the server', function(done) {
 
110
      var server = this.server;
 
111
      request(server)
 
112
        .get('/kill')
 
113
        .expect(200, function(err) {
 
114
          if(err) return done(err);
 
115
          assert.ok(!server._handle);
 
116
          done();
 
117
        });
 
118
    });
 
119
  });
 
120
 
 
121
}};