From 46a61dc45e5d76e58c794d2e439db5dffa003bce Mon Sep 17 00:00:00 2001 From: Zalmoxisus Date: Mon, 2 Jan 2017 14:42:44 +0200 Subject: [PATCH] [Test] Express backend --- package.json | 14 ++++++++++++-- test/socket.spec.js | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 test/socket.spec.js diff --git a/package.json b/package.json index 8362153..f372d3d 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,11 @@ "index.js", "defaultDbOptions.json" ], + "scripts": { + "test": "NODE_ENV=test mocha --recursive", + "test:watch": "NODE_ENV=test mocha --recursive --watch", + "prepublish": "npm run test" + }, "repository": { "type": "git", "url": "https://github.com/zalmoxisus/remotedev-server.git" @@ -21,8 +26,8 @@ "devtools", "remotedev" ], - "engines" : { - "node" : ">=4.0.0" + "engines": { + "node": ">=4.0.0" }, "author": "Mihail Diordiev (https://github.com/zalmoxisus)", "license": "MIT", @@ -49,5 +54,10 @@ "semver": "^5.3.0", "socketcluster": "^5.0.4", "sqlite3": "^3.1.8" + }, + "devDependencies": { + "expect": "^1.20.2", + "mocha": "^3.2.0", + "supertest": "^2.0.1" } } diff --git a/test/socket.spec.js b/test/socket.spec.js new file mode 100644 index 0000000..897a960 --- /dev/null +++ b/test/socket.spec.js @@ -0,0 +1,40 @@ +var childProcess = require('child_process'); +var request = require('supertest'); +var expect = require('expect'); +var scClient = require('socketcluster-client'); +var remotedev = require('../'); + +describe('Server', function() { + var scServer; + this.timeout(5000); + before(function(done) { + scServer = childProcess.fork(__dirname + '/../bin/remotedev.js'); + setTimeout(done, 2000); + }); + + after(function() { + if (scServer) { + scServer.kill(); + } + }); + + describe('Express backend', function() { + it('loads main page', function(done) { + request('http://localhost:8000') + .get('/') + .expect('Content-Type', /text\/html/) + .expect(200) + .expect(function(res) { + expect(res.text).toMatch(/RemoteDev<\/title>/); + }) + .end(done); + }); + + it('resolves an inexistent url', function(done) { + request('http://localhost:8000/jreerfr/123') + .get('/') + .expect('Content-Type', /text\/html/) + .expect(200, done); + }); + }); +});