gulp-connect
Version:
Gulp plugin to run a webserver (with LiveReload)
227 lines (225 loc) • 6.03 kB
JavaScript
var request = require('supertest');
var connect = require('../index');
require('mocha');
var portCounter = 35000;
describe('gulp-connect', function () {
describe('Simple', function() {
after(function() {
connect.serverClose();
});
it('Explicit /test.txt', function (done) {
var port = portCounter++;
connect.server({
port: port
}, function() {
request('http://localhost:' + port)
.get('/fixtures/simplest/test.txt')
.expect(/Hello world/)
.expect(200)
.end(function (err, res) {
done(err);
});
});
});
it('Implicit /index.html', function (done) {
var port = portCounter++;
connect.server({
port: port
}, function() {
request('http://localhost:' + port)
.get('/fixtures/simplest/')
.expect(/index page/)
.expect(200)
.end(function (err, res) {
done(err);
});
});
})
})
});
describe('Self Start / Stop', function() {
after(function() {
connect.serverClose();
});
it('Root string', function (done) {
var port = portCounter++;
connect.server({
port: port,
root: __dirname + "/fixtures"
});
request('http://localhost:' + port)
.get('/multiple/app/index.html')
.expect(/app test/)
.end(function (err, res) {
connect.serverClose();
if (err) return done(err);
done()
});
});
it('Root array', function (done) {
var port = portCounter++;
connect.server({
port: port,
root: [__dirname + "/fixtures/multiple/app", __dirname + "/fixtures/multiple/dist"]
});
request('http://localhost:' + port)
.get('/index.html')
.expect(/app test/)
.expect(200)
.end(function (err) {
if (err) return done(err);
});
request('http://localhost:' + port)
.get('/dist.html')
.expect(/dist test/)
.expect(200)
.end(function (err) {
connect.serverClose();
if (err) return done(err);
done()
});
});
it('Port test', function (done) {
connect.server({
root: __dirname + "/fixtures/multiple/app",
port: 3333
});
request('http://localhost:3333')
.get('/index.html')
.expect(/app test/)
.end(function (err) {
connect.serverClose();
if (err) return done(err);
done()
});
});
it('Https test', function (done) {
//suppress invalid self-signed ssl certificate error
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"
var port = portCounter++;
connect.server({
port: port,
root: __dirname + "/fixtures/multiple/app",
https: true
});
request('https://localhost:' + port)
.get('/index.html')
.expect(/app test/)
.end(function (err) {
connect.serverClose();
if (err) return done(err);
done()
});
});
it('Livereload test', function (done) {
var port = portCounter++;
connect.server({
port: port,
livereload: true
}, function() {
request('http://localhost:35729')
.get('/')
.expect('Content-Type', /json/)
.end(function (err) {
if (err) return done(err);
request('http://localhost:35729')
.get('/livereload.js')
.expect(200)
.end(function (err) {
connect.serverClose();
if (err) return done(err);
done();
});
});
});
});
it('Livereload https test', function (done) {
var port = portCounter++;
connect.server({
port: port,
livereload: true,
https: true
}, function() {
request('https://localhost:35729')
.get('/')
.expect('Content-Type', /json/)
.end(function (err) {
if (err) return done(err);
request('https://localhost:35729')
.get('/livereload.js')
.expect(200)
.end(function (err) {
connect.serverClose();
if (err) return done(err);
done();
});
});
});
});
it('Livereload port', function (done) {
var port = portCounter++;
var liveReloadPort = portCounter++;
connect.server({
port: port,
livereload: {
port: liveReloadPort
}
},
function() {
request('http://localhost:' + liveReloadPort)
.get('/')
.expect('Content-Type', /json/)
.end(function (err) {
connect.serverClose();
if (err) return done(err);
done();
});
});
});
it('livereload closes', function (done) {
this.timeout(10000);
var port = portCounter++;
var liveReloadPort = portCounter++;
connect.server({
port: port,
livereload: {
port: liveReloadPort
}
},
function() {
request('http://localhost:' + liveReloadPort)
.get('/')
.expect('Content-Type', /json/)
.expect(200)
.end(function (err) {
if (err) return done(err);
connect.serverClose();
setTimeout(function() {
request('http://localhost:' + liveReloadPort)
.get('/')
.end(function (err) {
if (err) return done();
done(new Error("Live reload is still running."));
})}, 100);
})
});
});
it('Fallback test', function (done) {
var port = portCounter++;
connect.server({
port: port,
fallback: __dirname + '/fixtures/simplest/index.html'
}, function() {
request('http://localhost:' + port)
.get('/not/existing/path')
.expect(/index page/)
.expect('Content-Type', new RegExp('text/html; charset=UTF-8'))
.expect(200)
.end(function (err, res) {
connect.serverClose();
if (err) return done(err);
done()
});
});
})
});