tests added!

This commit is contained in:
sander.hautvast 2019-12-10 16:41:05 +01:00
parent 5560461058
commit d512989291
18 changed files with 82 additions and 12 deletions

View file

@ -5,10 +5,10 @@
"engines": { "engines": {
"node": "12.x" "node": "12.x"
}, },
"main": "index.js", "main": "src/index.js",
"scripts": { "scripts": {
"start": "node index.js", "start": "node src/index.js",
"test": "node test.js" "test": "node_modules/.bin/tape test/*.js"
}, },
"dependencies": { "dependencies": {
"bcrypt": "^3.0.7", "bcrypt": "^3.0.7",
@ -17,7 +17,7 @@
}, },
"devDependencies": { "devDependencies": {
"request": "^2.81.0", "request": "^2.81.0",
"tape": "^4.7.0" "tape": "^4.11.0"
}, },
"repository": { "repository": {
"type": "git", "type": "git",

View file

@ -8,9 +8,8 @@ const PORT = process.env.PORT || 5000
const logins = new Map(); const logins = new Map();
logins.set("sander", "$2b$10$6P.6pE7M/6C9l/xXKDxJFucTL313GwESnhZ3aAqtVnv.ouLca/y6a"); logins.set("sander", "$2b$10$6P.6pE7M/6C9l/xXKDxJFucTL313GwESnhZ3aAqtVnv.ouLca/y6a");
express() express()
.use(express.urlencoded()) .use(express.urlencoded({ extended: true }))
.use(express.static(path.join(__dirname, '/public'))) .use(express.static(path.join(__dirname, '/public')))
.set('views', path.join(__dirname, 'views')) .set('views', path.join(__dirname, 'views'))
.set('view engine', 'ejs') .set('view engine', 'ejs')
@ -36,6 +35,8 @@ function appendToStorage(req, res) {
} }
} }
function sendData(req, res) { function sendData(req, res) {
fs.readFile("dat", (err, data) => { fs.readFile("dat", (err, data) => {
if (err) { if (err) {

View file

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View file

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View file

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View file

@ -24,17 +24,17 @@ function handle(event, next) {
} }
function happy() { function happy() {
emotion().value = "happy"; emotion().value = "3";
submit(); submit();
} }
function unsure() { function unsure() {
emotion().value = "unsure" emotion().value = "2"
submit(); submit();
} }
function sad() { function sad() {
emotion().value = "sad"; emotion().value = "1";
submit(); submit();
} }
@ -43,7 +43,7 @@ function emotion() {
} }
function submit() { function submit() {
get('#timestamp').value = Date.now(); get('#timestamp').value = formatDate(new Date());
get('#emotionsForm').submit; get('#emotionsForm').submit;
} }
@ -62,5 +62,12 @@ function getValue(element) {
} }
function setHtml(element, innerHtml) { 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();
} }

View file

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View file

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -1,2 +1,2 @@
<link rel="stylesheet" type="text/css" href="/stylesheets/stoplicht.css" /> <link rel="stylesheet" type="text/css" href="/stylesheets/stoplicht.css" />
<title>Bisons stoplicht</title> <title>Verkeerslicht</title>

62
test/test.js Normal file
View file

@ -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("<title>Verkeerslicht</title>"), -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();
});
});
});