-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add database test and initial istanbul setup
Relates #5
- Loading branch information
abdullahchaudhry
committed
Aug 17, 2017
1 parent
52bb81b
commit 51bbfd6
Showing
4 changed files
with
147 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
const tape = require('tape'); | ||
const shot = require('shot'); | ||
const fs = require('fs'); | ||
const path = require('path'); | ||
const buildDataBase = require('../src/model/db_build'); | ||
const dbConnection = require('../src/model/db_connection'); | ||
const app = require('../src/app'); | ||
|
||
// Select all firstnames from users | ||
tape("Select all firstnames from users", t => { | ||
buildDataBase(); | ||
const expected = [ | ||
{ firstname: 'Abdullah'}, | ||
{ firstname: 'Max'}, | ||
{ firstname: 'Jen'}, | ||
{ firstname: 'Rebeca'} | ||
]; | ||
|
||
dbConnection.query('SELECT firstname FROM users;', (err, res) => { | ||
if (err) { | ||
t.error(err, 'This is an error'); | ||
} else { | ||
const actual = res.rows; | ||
t.deepEquals(actual, expected, 'db query should get firstnames'); | ||
t.end(); | ||
} | ||
}) | ||
}) | ||
|
||
// test ideas database | ||
tape("get idea titles from ideas database", t => { | ||
buildDataBase(); | ||
const expected = [ | ||
{ ideatitle: 'Movie recommendation app' }, | ||
{ ideatitle: 'travel giffy app' }, | ||
{ ideatitle: 'holiday inspiration app' }, | ||
{ ideatitle: 'mario cv app' } | ||
]; | ||
|
||
dbConnection.query('SELECT ideatitle FROM ideas;', (err, res) => { | ||
if (err) { | ||
t.error(err, 'This is an error'); | ||
} else { | ||
const actual = res.rows; | ||
t.deepEquals(actual, expected, 'db query should get titles'); | ||
t.end(); | ||
} | ||
}) | ||
}) | ||
|
||
tape("check if post adds a new user to user table", t => { | ||
buildDataBase(); | ||
const insertUserSql = "INSERT INTO users (firstname, email) VALUES ($1, $2)"; | ||
const expected = [ | ||
{ firstname: 'Amelie', email: '[email protected]'} | ||
]; | ||
|
||
dbConnection.query(insertUserSql, [expected[0].firstname, expected[0].email], (err, res) => { | ||
if (err) { | ||
t.error(err, 'This is an error'); | ||
} else { | ||
dbConnection.query("SELECT firstname, email FROM users WHERE firstname='Amelie';", | ||
(err, res) => { | ||
if (err) { | ||
t.error('This is an error'); | ||
} else { | ||
const actual = res.rows; | ||
t.deepEquals(actual, expected, 'firstname should be Amelie'); | ||
t.end(); | ||
} | ||
}) | ||
} | ||
}) | ||
}) | ||
|
||
|
||
|
||
|
||
// inserting a new idea | ||
// tape("check if a post adds a new idea to ideatable", t => { | ||
// buildDataBase(); | ||
// const insertNewIdeaSql = "INSERT INTO ideas (userid, dataadded, ideatitle, ideadesc) VALUES ($1, $2, $3, $4)"; | ||
// const expected = [ | ||
// { userid: 5, dataadded: 2017-08-17, } | ||
// ]; | ||
// | ||
// dbConnection.query('SELECT ideatitle FROM ideas;', (err, res) => { | ||
// if (err) { | ||
// t.error(err, 'This is an error'); | ||
// } else { | ||
// const actual = res.rows; | ||
// t.deepEquals(actual, expected, 'db query should get titles'); | ||
// t.end(); | ||
// } | ||
// }) | ||
// }) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
const test = require('tape'); | ||
const supertest = require('supertest'); | ||
const app = require('./../src/app'); | ||
|
||
// check if tape works | ||
test('1 equals 1', (t) => { | ||
t.equals(1, 1, 'one should equal one'); | ||
t.end(); | ||
}); | ||
|
||
// check if supetest works | ||
test('check if supertest works', (t) => { | ||
supertest(app) | ||
.get('/') | ||
.expect(200) | ||
.expect('Content-Type', /json/) | ||
.end((err, res) => { | ||
t.same(res.statusCode, 200, 'Status code is 200'); | ||
t.end(); | ||
}) | ||
}) | ||
|
||
// check we get 404 on non-existing endpoint | ||
test('404 when endpoint does not exist', (t) => { | ||
supertest(app) | ||
.get('/bsdjkhgablsg') | ||
.expect(404) | ||
.expect('Content-Type', /json/) | ||
.end((err, res) => { | ||
t.same(res.statusCode, 404, 'Status code is 404'); | ||
t.end(); | ||
}) | ||
}) | ||
|
||
// test('check prepopulated browse database table', (t) => { | ||
// supertest(app) | ||
// .get('/browse') | ||
// .expect(200) | ||
// .expect('Content-Type', /json/) | ||
// .end((err, res) => { | ||
// let expected = "Movie recommendation app"; | ||
// let actual = res; | ||
// t.equals(actual, expected, 'Should be Movie recommendation app') | ||
// t.end(); | ||
// }) | ||
// }) |