Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lint #51

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open

Lint #51

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
coverage/**/*.js
3 changes: 2 additions & 1 deletion .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@
"commonjs": false
},
"rules": {
"no-var": 0,
"import/no-commonjs": 0,
"no-console": 0,
"import/no-nodejs-modules": 0
}
}
}
8 changes: 7 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,15 @@ notifications:
email:
on_success: never
on_failure: never
sudo: false
dist: trusty
addons:
postgresql: "9.6"
services:
- postgresql
- postgresql
before_script:
- psql --version
- psql -c 'CREATE DATABASE test_race2;' -U postgres
- psql -c "CREATE USER simon WITH PASSWORD 'pw123';" -U postgres
- psql -c "ALTER DATABASE test_race2 OWNER TO simon;" -U postgres

13 changes: 7 additions & 6 deletions db/db_build.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
const fs = require("fs");
const assert = require("assert");
const dbConnection = require("./db_connection");

const sql = fs.readFileSync(`${__dirname}/db_build.sql`).toString();
const initialiseDatabase = () => {
fs.readFile(`${__dirname}/db_build.sql`, 'utf8', (err, sql) => {
assert(!err, err);

const initialiseDatabase = () => dbConnection.query(sql);

initialiseDatabase();
dbConnection.query(sql);
});
}

module.exports = initialiseDatabase;


3 changes: 3 additions & 0 deletions db/db_build.sql
Original file line number Diff line number Diff line change
Expand Up @@ -85,4 +85,7 @@ CREATE TABLE challenge_status
status INTEGER
);

ALTER TABLE challenge_status
ADD CONSTRAINT chall_stat_unique UNIQUE (challenge_id, user_id, status);

COMMIT;
15 changes: 0 additions & 15 deletions db/db_connection.js
Original file line number Diff line number Diff line change
@@ -1,21 +1,6 @@
// go connections
"use strict";

const pgp = require("pg-promise")();
const url = require("url");
require("env2")("./config.env");

let DB_URL = process.env.DATABASE_URL;
console.log("overall process env ", process.env.DATABASE_URL);
if (process.env.NODE_ENV === "test") {
DB_URL = process.env.TEST_DB_URL;
console.log("in if condition ", process.env.TEST_DB_URL);
}

if (!DB_URL) throw new Error("Environment vatialbe must be set");

const params = url.parse(DB_URL);
const [username, password] = params.auth.split(":");

const testDB = {
host: "localhost",
Expand Down
10 changes: 7 additions & 3 deletions db/test_build.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
// go tests
const fs = require("fs");
const dbConnection = require("./db_connection");
const assert = require("assert");

const sql = fs.readFileSync(`${__dirname}/test_build.sql`).toString();
const initialiseTestDatabase = () => {
fs.readFile(`${__dirname}/test_build.sql`, 'utf8', (err, sql) => {
assert(!err, err);

const initialiseTestDatabase = () => dbConnection.query(sql);
dbConnection.query(sql);
});
}

module.exports = initialiseTestDatabase;
2 changes: 2 additions & 0 deletions db/test_build.sql
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,8 @@ CREATE TABLE challenge_status
status INTEGER
);

ALTER TABLE challenge_status ADD CONSTRAINT chall_stat_unique UNIQUE (challenge_id, user_id, status);

INSERT INTO challenge_status
(challenge_id, user_id, status)
VALUES
Expand Down
12 changes: 9 additions & 3 deletions db/test_clear.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
const fs = require("fs");
const db = require("./db_connection");
const assert = require("assert");

const sql = fs.readFileSync(`${__dirname}/test_clear.sql`).toString();

const clearTestDatabase = () => db.query(sql);
const clearTestDatabase = () => {
fs.readFile(`${__dirname}/test_clear.sql`, 'utf8', (err, sql) => {
assert(!err, err);

module.exports = clearTestDatabase;
db.query(sql);
});
}

module.exports = clearTestDatabase;
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@
},
"scripts": {
"start": "node src/index.js",
"test": "jest --detectOpenHandles",
"lint": "eslint .",
"test": "npm run lint && jest --detectOpenHandles",
"dev": "nodemon src/index.js",
"build": "node db/db_build.js",
"report-coverage": "codecov"
Expand Down
2 changes: 1 addition & 1 deletion src/controllers/dashboard.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ exports.get = (req, res) => {

Promise.all([newChallenges, acceptedChallenges, completedChallenges])
.then(challenges => {
console.log(challenges[2]);
// console.log(challenges[2]);

res.render("dashboard", {
newChallenges: challenges[0],
Expand Down
19 changes: 2 additions & 17 deletions src/controllers/get-accepted-challenges.js
Original file line number Diff line number Diff line change
@@ -1,22 +1,7 @@
// const queries = require("../model/index");

<<<<<<< HEAD
// exports.get = (req, res) => {
// queries.getAcceptedChallenges(userId, challengeStatus).then(challenges => {
// res.render("dashboard", { challenges });
// queries.getAcceptedChallenges(1, 1).then(acceptedChallenges => {
// res.render("dashboard", { acceptedChallenges });
// });
// };
||||||| merged common ancestors
exports.get = (req, res) => {
queries.getAcceptedChallenges(1, 1).then(acceptedChallenges => {
console.log("HELLO");
res.render("dashboard", { acceptedChallenges });
});
};
=======
exports.get = (req, res) => {
queries.getAcceptedChallenges(1, 1).then(acceptedChallenges => {
res.render("dashboard", { acceptedChallenges });
});
};
>>>>>>> master
18 changes: 2 additions & 16 deletions src/controllers/get-completed-challenges.js
Original file line number Diff line number Diff line change
@@ -1,21 +1,7 @@
// const queries = require("../model/index");

<<<<<<< HEAD
// exports.get = (req, res) => {
// queries.getCompletedChallenges().then(completedChallenges => {
// res.render("dashboard", { completedChallenges: completedChallenges });
// queries.getCompletedChallenges(1, 2).then(completedChallenges => {
// res.render("dashboard", { completedChallenges });
// });
// };
||||||| merged common ancestors
exports.get = (req, res) => {
queries.getCompletedChallenges().then(completedChallenges => {
res.render("dashboard", { completedChallenges: completedChallenges });
});
};
=======
exports.get = (req, res) => {
queries.getCompletedChallenges(1, 2).then(completedChallenges => {
res.render("dashboard", { completedChallenges });
});
};
>>>>>>> master
3 changes: 2 additions & 1 deletion src/model/acceptChallenge.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@

// Adds the accepted challenges id, the users id and the status for accepted(1) to the table challenge_status
// Only inserts if the challenge is not already accepted by that user, if it is the query does nothing

const db = require('../../db/db_connection');

const acceptChallenge = (challengeId, userId) => new Promise((resolve, reject) => {
db.query(`INSERT INTO challenge_status (challenge_id, user_id, status) VALUES ($1, $2, $3);`, [challengeId, userId, 1])
db.query(`INSERT INTO challenge_status (challenge_id, user_id, status) VALUES ($1, $2, $3) ON CONFLICT ON CONSTRAINT chall_stat_unique DO NOTHING;`, [challengeId, userId, 1])
.then(res => {
resolve(res)
})
Expand Down
8 changes: 6 additions & 2 deletions src/model/completeChallenge.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
// completeChallenges

// Deletes the selected challenge from challenge_status if it's already been completed
// then updates the accepted challenge to complete
// this ensures there are never any duplicate completed challenges in the db

const db = require('../../db/db_connection');

const completeChallenge = (challengeId, userId) => new Promise((resolve, reject) => {
db.query('UPDATE challenge_status SET status = 2 WHERE challenge_id = $1 AND user_id = $2 RETURNING *', [challengeId, userId])
db.query('DELETE from challenge_status WHERE challenge_id = $1 AND user_id = $2 AND status = 2; UPDATE challenge_status SET status = 2 WHERE challenge_id = $1 AND user_id = $2 RETURNING *;', [challengeId, userId])
.then(res => resolve(res))
.catch(err => reject(err))
})
Expand Down
3 changes: 2 additions & 1 deletion test/queries.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ describe("accept challenge", () => {
expect.assertions(1);
queries.acceptChallenge(1, 1);
return queries.getAcceptedChallenges(1, 1).then(res => {
// console.log(res);
expect(res.length).toBe(2);
})
})
Expand All @@ -48,7 +49,7 @@ describe('get accepted challenges', () => {
test('returns the accepted challenges of specific user', () => {
expect.assertions(1);
return queries.getAcceptedChallenges(1, 1).then(res => {
console.log(res);
// console.log(res);
expect(res).toBeTruthy();
})
})
Expand Down