From d51298929146accdb697352ecab7e523ebeddea8 Mon Sep 17 00:00:00 2001 From: "sander.hautvast" Date: Tue, 10 Dec 2019 16:41:05 +0100 Subject: [PATCH] tests added! --- package.json | 8 +-- index.js => src/index.js | 5 +- .../public}/img/disappointed-face.png | Bin .../img/grinning-face-with-smiling-eyes.png | Bin {public => src/public}/img/neutral-face.png | Bin {public => src/public}/js/stoplicht.js | 17 +++-- {public => src/public}/lang-logo.png | Bin {public => src/public}/node.svg | 0 .../public}/stylesheets/stoplicht.css | 0 {views => src/views}/pages/db.ejs | 0 {views => src/views}/pages/error.ejs | 0 {views => src/views}/pages/index.ejs | 0 {views => src/views}/pages/thanks.ejs | 0 {views => src/views}/partials/body.ejs | 0 {views => src/views}/partials/header.ejs | 2 +- {views => src/views}/partials/nav.ejs | 0 {views => src/views}/partials/signin.ejs | 0 test/test.js | 62 ++++++++++++++++++ 18 files changed, 82 insertions(+), 12 deletions(-) rename index.js => src/index.js (96%) rename {public => src/public}/img/disappointed-face.png (100%) rename {public => src/public}/img/grinning-face-with-smiling-eyes.png (100%) rename {public => src/public}/img/neutral-face.png (100%) rename {public => src/public}/js/stoplicht.js (77%) rename {public => src/public}/lang-logo.png (100%) rename {public => src/public}/node.svg (100%) rename {public => src/public}/stylesheets/stoplicht.css (100%) rename {views => src/views}/pages/db.ejs (100%) rename {views => src/views}/pages/error.ejs (100%) rename {views => src/views}/pages/index.ejs (100%) rename {views => src/views}/pages/thanks.ejs (100%) rename {views => src/views}/partials/body.ejs (100%) rename {views => src/views}/partials/header.ejs (70%) rename {views => src/views}/partials/nav.ejs (100%) rename {views => src/views}/partials/signin.ejs (100%) create mode 100644 test/test.js diff --git a/package.json b/package.json index 614c366..9b969dd 100644 --- a/package.json +++ b/package.json @@ -5,10 +5,10 @@ "engines": { "node": "12.x" }, - "main": "index.js", + "main": "src/index.js", "scripts": { - "start": "node index.js", - "test": "node test.js" + "start": "node src/index.js", + "test": "node_modules/.bin/tape test/*.js" }, "dependencies": { "bcrypt": "^3.0.7", @@ -17,7 +17,7 @@ }, "devDependencies": { "request": "^2.81.0", - "tape": "^4.7.0" + "tape": "^4.11.0" }, "repository": { "type": "git", diff --git a/index.js b/src/index.js similarity index 96% rename from index.js rename to src/index.js index f1128fe..1cae8e0 100644 --- a/index.js +++ b/src/index.js @@ -8,9 +8,8 @@ const PORT = process.env.PORT || 5000 const logins = new Map(); logins.set("sander", "$2b$10$6P.6pE7M/6C9l/xXKDxJFucTL313GwESnhZ3aAqtVnv.ouLca/y6a"); - express() - .use(express.urlencoded()) + .use(express.urlencoded({ extended: true })) .use(express.static(path.join(__dirname, '/public'))) .set('views', path.join(__dirname, 'views')) .set('view engine', 'ejs') @@ -36,6 +35,8 @@ function appendToStorage(req, res) { } } + + function sendData(req, res) { fs.readFile("dat", (err, data) => { if (err) { diff --git a/public/img/disappointed-face.png b/src/public/img/disappointed-face.png similarity index 100% rename from public/img/disappointed-face.png rename to src/public/img/disappointed-face.png diff --git a/public/img/grinning-face-with-smiling-eyes.png b/src/public/img/grinning-face-with-smiling-eyes.png similarity index 100% rename from public/img/grinning-face-with-smiling-eyes.png rename to src/public/img/grinning-face-with-smiling-eyes.png diff --git a/public/img/neutral-face.png b/src/public/img/neutral-face.png similarity index 100% rename from public/img/neutral-face.png rename to src/public/img/neutral-face.png diff --git a/public/js/stoplicht.js b/src/public/js/stoplicht.js similarity index 77% rename from public/js/stoplicht.js rename to src/public/js/stoplicht.js index 1949ab9..a3653ef 100644 --- a/public/js/stoplicht.js +++ b/src/public/js/stoplicht.js @@ -24,17 +24,17 @@ function handle(event, next) { } function happy() { - emotion().value = "happy"; + emotion().value = "3"; submit(); } function unsure() { - emotion().value = "unsure" + emotion().value = "2" submit(); } function sad() { - emotion().value = "sad"; + emotion().value = "1"; submit(); } @@ -43,7 +43,7 @@ function emotion() { } function submit() { - get('#timestamp').value = Date.now(); + get('#timestamp').value = formatDate(new Date()); get('#emotionsForm').submit; } @@ -62,5 +62,12 @@ function getValue(element) { } function setHtml(element, innerHtml) { - return get(element).innerHTML=innerHtml; + let object = get(element); + if (object){ + object.innerHTML=innerHtml; + } +} + +function formatDate(date){ + return date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate(); } diff --git a/public/lang-logo.png b/src/public/lang-logo.png similarity index 100% rename from public/lang-logo.png rename to src/public/lang-logo.png diff --git a/public/node.svg b/src/public/node.svg similarity index 100% rename from public/node.svg rename to src/public/node.svg diff --git a/public/stylesheets/stoplicht.css b/src/public/stylesheets/stoplicht.css similarity index 100% rename from public/stylesheets/stoplicht.css rename to src/public/stylesheets/stoplicht.css diff --git a/views/pages/db.ejs b/src/views/pages/db.ejs similarity index 100% rename from views/pages/db.ejs rename to src/views/pages/db.ejs diff --git a/views/pages/error.ejs b/src/views/pages/error.ejs similarity index 100% rename from views/pages/error.ejs rename to src/views/pages/error.ejs diff --git a/views/pages/index.ejs b/src/views/pages/index.ejs similarity index 100% rename from views/pages/index.ejs rename to src/views/pages/index.ejs diff --git a/views/pages/thanks.ejs b/src/views/pages/thanks.ejs similarity index 100% rename from views/pages/thanks.ejs rename to src/views/pages/thanks.ejs diff --git a/views/partials/body.ejs b/src/views/partials/body.ejs similarity index 100% rename from views/partials/body.ejs rename to src/views/partials/body.ejs diff --git a/views/partials/header.ejs b/src/views/partials/header.ejs similarity index 70% rename from views/partials/header.ejs rename to src/views/partials/header.ejs index c83d3e0..d0646c3 100644 --- a/views/partials/header.ejs +++ b/src/views/partials/header.ejs @@ -1,2 +1,2 @@ -Bisons stoplicht +Verkeerslicht diff --git a/views/partials/nav.ejs b/src/views/partials/nav.ejs similarity index 100% rename from views/partials/nav.ejs rename to src/views/partials/nav.ejs diff --git a/views/partials/signin.ejs b/src/views/partials/signin.ejs similarity index 100% rename from views/partials/signin.ejs rename to src/views/partials/signin.ejs diff --git a/test/test.js b/test/test.js new file mode 100644 index 0000000..1704a9c --- /dev/null +++ b/test/test.js @@ -0,0 +1,62 @@ +const {spawn} = require('child_process'); +const request = require('request'); +const test = require('tape'); + +const env = Object.assign({}, process.env, {PORT: 5000}); + +test('main page', (assert) => { + const server = spawn('node', ['src/index.js'], {env}); + server.stdout.on('data', _ => { + request('http://127.0.0.1:5000', (error, response, body) => { + server.kill(); + assert.false(error,"geen errors"); + assert.equal(response.statusCode, 200, "http ok"); + + assert.notEqual(body.indexOf("Verkeerslicht"), -1, "correcte title"); + assert.notEqual(body.indexOf("Wat is je gevoel vandaag?"), -1, "systeem vraagt om input'"); + assert.end(); + }); + }); +}); + +test('submit emotion', (assert) => { + const server = spawn('node', ['src/index.js'], {env}); + server.stdout.on('data', _ => { + request.post({url: 'http://127.0.0.1:5000/submit-form', form:{username:'sander', password:'boompje', emotion:1, timestamp: '20191212' }}, (error, response, body) => { + server.kill(); + assert.false(error,"geen errors"); + assert.equal(response.statusCode, 200, "http ok"); + + assert.notEqual(body.indexOf("Dankje!"), -1, "systeem meldt 'dankje!'"); + assert.end(); + }); + }); +}); + +test('get data', (assert) => { + const server = spawn('node', ['src/index.js'], {env}); + server.stdout.on('data', _ => { + request.post({url: 'http://127.0.0.1:5000/submit-form', form:{username:'sander', password:'boompje', emotion:1, timestamp: '20191212' }}); + request('http://127.0.0.1:5000/data', (error, response, body) => { + server.kill(); + assert.false(error,"geen errors"); + assert.equal(response.statusCode, 200, "http ok"); + + assert.notEqual(body.indexOf("20191212, sander, 1\n"), -1, "data bevat de juiste waarde"); + assert.end(); + }); + }); +}); + +test('empty submit error', (assert) => { + const server = spawn('node', ['src/index.js'], {env}); + server.stdout.on('data', _ => { + request.post({url: 'http://127.0.0.1:5000/submit-form', form:{}}, (error, response, body) => { + server.kill(); + assert.false(error,"geen errors"); + assert.equal(response.statusCode, 500, "http 500 want form is leeg"); + assert.end(); + }); + }); +}); +