Skip to content

Commit

Permalink
Merge pull request #19 from fac-17/Feature/database-tests
Browse files Browse the repository at this point in the history
Feature/database tests
  • Loading branch information
jackbridger authored Aug 22, 2019
2 parents d71aa31 + 240c430 commit f1ef783
Show file tree
Hide file tree
Showing 9 changed files with 809 additions and 6 deletions.
713 changes: 713 additions & 0 deletions package-lock.json

Large diffs are not rendered by default.

8 changes: 6 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"description": "",
"main": "index.js",
"scripts": {
"test": "NODE_ENV=test tape src/tests/*.test.js | tap-spec",
"start": "node src/index.js"
},
"repository": {
Expand All @@ -16,11 +17,14 @@
"url": "https://github.com/fac-17/CFLM/issues"
},
"homepage": "https://github.com/fac-17/CFLM#readme",
"dev-dependencies": {
"devDependencies": {
"supertest": "^4.0.2",
"tape": "^4.11.0"
},
"dependencies": {
"express": "^4.17.1"
"env2": "^2.2.2",
"express": "^4.17.1",
"pg": "^7.12.1",
"tap-spec": "^5.0.0"
}
}
2 changes: 2 additions & 0 deletions src/model/database/build.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,6 @@ const runDbBuild = cb => {
dbConnection.query(sql, cb);
};

runDbBuild();

module.exports = runDbBuild;
6 changes: 4 additions & 2 deletions src/model/database/build.sql
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,7 @@ VALUES ('Gregor'), ('Andy'), ('Francesca'), ('Jack');
INSERT INTO animals (name)
VALUES ('Pig'), ('Goat'), ('Tiger'), ('Monkey');

INSERT INTO adoption (name)
VALUES (1,2), (2,1), (2,4), (3,3), (3,1), (4,1);
INSERT INTO adoption (user_id, animal_id)
VALUES (1,2), (2,1), (2,4), (3,3), (3,1), (4,1);

COMMIT;
1 change: 1 addition & 0 deletions src/model/database/buildtest.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

5 changes: 3 additions & 2 deletions src/model/database/db_connection.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
const { Pool } = require("pg");
const url = require("url");
require("env2")("./config.env");
require("env2")("./.env");

let DB_URL = process.env.DB_URL;
console.log(DB_URL);

if (process.env.NODE_env === "test") {
if (process.env.NODE_ENV === "test") {
DB_URL = process.env.TEST_DB_URL;
}

Expand Down
19 changes: 19 additions & 0 deletions src/model/queries/getData.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
const dbConnection = require("../database/db_connection");

const getUsers = cb => {
dbConnection.query("SELECT name FROM users ORDER BY id", (err, res) => {
if (err) {
cb(err);
} else cb(null, res.rows);
});
};

const getAnimals = cb => {
dbConnection.query("SELECT name FROM animals ORDER BY id", (err, res) => {
if (err) {
cb(err);
} else cb(null, res.rows);
});
};

module.exports = { getUsers, getAnimals };
3 changes: 3 additions & 0 deletions src/model/queries/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
getData: require("./getData.js")
};
58 changes: 58 additions & 0 deletions src/tests/database.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
const test = require("tape");
const runDbBuild = require("../model/database/build");
const queries = require("../model/queries");

test("Check table builds", t => {
runDbBuild((err, res) => {
t.error(err, "No error");
t.end();
});
});

test("Check getUsers function", t => {
const users = [
{ name: "Gregor" },
{ name: "Andy" },
{ name: "Francesca" },
{ name: "Jack" }
];
runDbBuild((err, res) => {
t.error(err, "No error for DbBuild");
queries.getData.getUsers((err, data) => {
t.error(err, "No error for getUsers");
t.deepEqual(users, data, "Correct names are returned");
t.end();
});
});
});

test("Check getAnimals function", t => {
const animals = [
{ name: "Pig" },
{ name: "Goat" },
{ name: "Tiger" },
{ name: "Monkey" }
];

runDbBuild((err, res) => {
t.error(err, "No error for DbBuild");
queries.getData.getAnimals((err, data) => {
t.error(err, "No error for getAnimals");
t.deepEqual(animals, data, "Correct animals are returned");
t.end();
});
});
});

test("Check return all adopted relationships", t => {
const adoptions = "tbd";

runDbBuild((err, res) => {
t.error(err, "No error for DbBuild");
queries.getData.getAdoptions((err, data) => {
t.error(err, "No error for getAdoptions");
t.deepEqual(adoptions, data, "Correct adoptions are returned");
t.end();
});
});
});

0 comments on commit f1ef783

Please sign in to comment.