aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--package.json1
-rw-r--r--src/index.js10
-rw-r--r--test/server.js39
3 files changed, 47 insertions, 3 deletions
diff --git a/package.json b/package.json
index 3f8c90c..feb2a70 100644
--- a/package.json
+++ b/package.json
@@ -19,6 +19,7 @@
},
"devDependencies": {
"mocha": "^2.2.5",
+ "request": "^2.60.0",
"should": "^7.0.2"
}
}
diff --git a/src/index.js b/src/index.js
index 9c1019e..71b70df 100644
--- a/src/index.js
+++ b/src/index.js
@@ -190,6 +190,10 @@ server.route({
}
});
-server.start(function() {
- console.log('Server running!');
-});
+if (!module.parent) {
+ server.start(function() {
+ console.log('Server running!');
+ });
+}
+
+module.exports = server;
diff --git a/test/server.js b/test/server.js
new file mode 100644
index 0000000..a003b50
--- /dev/null
+++ b/test/server.js
@@ -0,0 +1,39 @@
+var should = require('should');
+var request = require('request');
+var server = require('../src');
+
+var ROOT_URL = 'http://127.0.0.1:8000';
+
+describe('Server', function() {
+
+ before(function() {
+ server.start();
+ });
+
+ after(function() {
+ server.stop();
+ });
+
+ describe('Basic Connectivity', function() {
+ it('should be available on port 8000', function() {
+ request.get(ROOT_URL, function(err, response, body) {
+ response.should.be.html();
+ });
+ });
+
+ it('should serve the index', function() {
+ request.get(ROOT_URL, function(err, response, body) {
+ body.should.not.be.empty();
+ });
+ })
+ });
+
+ describe('Search results', function() {
+ it('should display search results', function() {
+ request.get(ROOT_URL + '/search?q=do+re+mi', function(err, res, body) {
+ body.should.not.be.empty();
+ response.should.have.status(200);
+ });
+ });
+ });
+});