diff --git a/.gitignore b/.gitignore index 79e17dd..cadd563 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ node_modules npm-debug.log coverage config.env +dump.rdb diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..1a60862 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,5 @@ +language: node_js +node_js: + - "5" +services: + - redis-server diff --git a/README.md b/README.md index b77ed60..1bfbcc6 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ +[![Build Status](https://travis-ci.org/MindAidPrototype/MindAidUser.svg?branch=master)](https://travis-ci.org/MindAidPrototype/MindAidUser) # MindAidUser ## What diff --git a/src/redis/client.js b/src/redis/client.js new file mode 100644 index 0000000..4899567 --- /dev/null +++ b/src/redis/client.js @@ -0,0 +1,7 @@ +const redis = require('redis') + +const redisURL = process.env.REDIS_URL || '//localhost:6379' + +const client = redis.createClient(redisURL) + +module.exports = client diff --git a/src/routes/authenticate.js b/src/routes/authenticate.js index e250822..fa2466c 100644 --- a/src/routes/authenticate.js +++ b/src/routes/authenticate.js @@ -1,4 +1,6 @@ -module.exports = (client) => ({ +const client = require('../redis/client.js') + +module.exports = { method: 'post', path: '/authenticate', handler: (request, reply) => { @@ -17,4 +19,4 @@ module.exports = (client) => ({ } }) } -}) +} diff --git a/src/routes/createNewUser.js b/src/routes/createNewUser.js index e149f21..223bda1 100644 --- a/src/routes/createNewUser.js +++ b/src/routes/createNewUser.js @@ -1,4 +1,6 @@ -module.exports = (client, newUserSecret) => ({ +const client = require('../redis/client.js') + +module.exports = newUserSecret => ({ method: 'post', path: '/createNewUser', handler: (request, reply) => { diff --git a/src/routes/newStudentInfo.js b/src/routes/newStudentInfo.js index 86b5baf..64ed07e 100644 --- a/src/routes/newStudentInfo.js +++ b/src/routes/newStudentInfo.js @@ -1,4 +1,6 @@ -module.exports = (client) => ({ +const client = require('../redis/client.js') + +module.exports = { method: 'post', path: '/newStudentInfo', handler: (request, reply) => { @@ -16,4 +18,4 @@ module.exports = (client) => ({ } }) } -}) +} diff --git a/src/routes/remind.js b/src/routes/remind.js index 4530d5b..ad437e4 100644 --- a/src/routes/remind.js +++ b/src/routes/remind.js @@ -1,4 +1,6 @@ -module.exports = (client) => ({ +const client = require('../redis/client.js') + +module.exports = { method: 'get', path: '/remind', handler: (request, reply) => { @@ -17,4 +19,4 @@ module.exports = (client) => ({ reply.redirect('/login') } } -}) +} diff --git a/src/server.js b/src/server.js index e01dabc..1e4f447 100644 --- a/src/server.js +++ b/src/server.js @@ -2,8 +2,6 @@ const Hapi = require('hapi') const port = process.env.PORT || 3000 const Vision = require('vision') const Inert = require('inert') -const redisURL = process.env.REDIS_URL || '//localhost:6379' -const client = require('redis').createClient(redisURL) require('env2')('./config.env') const views = require('./routes/views.js') @@ -31,12 +29,12 @@ server.register(plugins, err => { require('./routes/listen.js'), require('./routes/screen.js'), require('./routes/refer.js'), - require('./routes/remind.js')(client), + require('./routes/remind.js'), require('./routes/login.js'), require('./routes/logout.js'), - require('./routes/authenticate.js')(client), - require('./routes/newStudentInfo.js')(client), - require('./routes/createNewUser.js')(client, process.env.NEWUSERSECRET), + require('./routes/authenticate.js'), + require('./routes/newStudentInfo.js'), + require('./routes/createNewUser.js')(process.env.NEWUSERSECRET), require('./routes/publicdir.js') ]) }) diff --git a/src/tests/server.test.js b/src/tests/server.test.js index 66efc96..cf791f0 100644 --- a/src/tests/server.test.js +++ b/src/tests/server.test.js @@ -1,15 +1,14 @@ const tape = require('tape') const server = require('../server.js') +const client = require('../redis/client.js') -const endpoints = ['index', 'about', 'learn', 'listen', 'questions', 'refer', 'remind'] +const endpoints = ['index', 'about', 'learn', 'screen', 'refer'] const content = [ - 'id="homeList"', - 'about', - 'learn', - 'listen', - 'questions', - 'refer', - 'remind' + '', + 'L', + 'S', + 'R', ] const combined = endpoints.map((endpoint, i) => ({endpoint, content: content[i]})) @@ -21,13 +20,9 @@ const testEndpoint = endpoint => { url: 'index' === endpoint.endpoint ? '/' : '/' + endpoint.endpoint } server.inject(options, res => { - const actual1 = res.statusCode - const expected1 = 200 - const actual2 = res.payload.indexOf('href="../../public/css/main.css"') > -1 - const actual3 = res.payload.indexOf(endpoint.content) > -1 - t.equal(actual1, expected1, '200 status code') - t.ok(actual2, 'renders the default layout') - t.ok(actual3, 'renders the ' + endpoint.endpoint + ' page') + t.equal(res.statusCode, 200, 'finds the page') + t.ok(res.payload.indexOf('href="../../public/css/main.css"') > -1, 'renders the default layout') + t.ok(res.payload.indexOf(endpoint.content) > -1, 'renders the ' + endpoint.endpoint + ' page') t.end() }) }) @@ -49,3 +44,9 @@ tape('tests params* route to see if it findes the correct public files', t => { t.end() }) }) + +tape('teardown', t => { + server.stop() + client.quit() + t.end() +})