diff --git a/lib/logger.js b/lib/logger.js index 407b1e0..0a04d22 100644 --- a/lib/logger.js +++ b/lib/logger.js @@ -31,7 +31,7 @@ const logger = createLogger({ ], }); -if (process.env.NODE_ENV !== 'production') { +if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') { logger.add(new transports.Console({ format: format.combine( format.colorize(), diff --git a/package.json b/package.json index 0c06e32..56b5461 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "scripts": { "start": "node ./bin/www", "dev": "nodemon ./bin/www", - "test": "./node_modules/.bin/mocha --exit", + "test": "./node_modules/.bin/mocha test/**/*.test.js --exit", "test:cover": "nyc --report-dir ./coverage --reporter=html --reporter=text-summary node_modules/mocha/bin/_mocha --exit", "test:coveralls": "nyc npm run test:cover && nyc report --reporter=text-lcov | coveralls", "lint": "./node_modules/.bin/eslint routes/ models/ helpers/ lib/ app.js public/js", diff --git a/test/mock/mockPlayer.js b/test/mock/mockPlayer.js index 0df820e..91acb50 100644 --- a/test/mock/mockPlayer.js +++ b/test/mock/mockPlayer.js @@ -12,7 +12,7 @@ module.exports = async function mockPlayer(UserId, steamId, username) { } if (_.isUndefined(steamId)) { - steamId = faker.random.number(); + steamId = faker.random.number(76561190000000000, 76561200000000000); } if (_.isUndefined(UserId)) { diff --git a/test/mock/mockUser.js b/test/mock/mockUser.js index b88edb6..d8a68ad 100644 --- a/test/mock/mockUser.js +++ b/test/mock/mockUser.js @@ -11,7 +11,7 @@ module.exports = function mockServer(username, steamId) { } if (_.isUndefined(steamId)) { - steamId = faker.random.number(); + steamId = faker.random.number(76561190000000000, 76561200000000000); } const user = { diff --git a/test/user/deleteUser.test.js b/test/user/deleteUser.test.js new file mode 100644 index 0000000..6f4c01b --- /dev/null +++ b/test/user/deleteUser.test.js @@ -0,0 +1,40 @@ +// During the test the env variable is set to test +process.env.NODE_ENV = 'test'; + +// Require the dev-dependencies +const chai = require('chai'); +const chaiHttp = require('chai-http'); +const mock = require('../mock'); + +// Start the server +const server = require('../../bin/www'); + +const should = chai.should(); // eslint-disable-line no-unused-vars + +chai.use(chaiHttp); + +describe('DELETE /api/user/:id', () => { + let testUser; + before(async () => { + testUser = await mock.user(); + }); + + it('Returns 200 and expected data', (done) => { + chai.request(server) + .delete(`/api/user/${testUser.id}`) + .end((err, res) => { + res.should.have.status(200); + res.body.should.be.eq(1) + done(); + }); + }); + + it('Returns 404 for unknown ID', (done) => { + chai.request(server) + .delete('/api/user/unknownId') + .end((err, res) => { + res.should.have.status(404); + done(); + }); + }); +}); \ No newline at end of file diff --git a/test/user/getUserById.test.js b/test/user/getUserById.test.js new file mode 100644 index 0000000..a0ba62f --- /dev/null +++ b/test/user/getUserById.test.js @@ -0,0 +1,40 @@ +// During the test the env variable is set to test +process.env.NODE_ENV = 'test'; + +// Require the dev-dependencies +const chai = require('chai'); +const chaiHttp = require('chai-http'); +const mock = require('../mock'); + +// Start the server +const server = require('../../bin/www'); + +const should = chai.should(); // eslint-disable-line no-unused-vars + +chai.use(chaiHttp); + +describe('GET /api/user/:id', () => { + let testUser; + before(async () => { + testUser = await mock.user(); + }); + + it('Returns 200 and expected data', (done) => { + chai.request(server) + .get(`/api/user/${testUser.id}`) + .end((err, res) => { + res.should.have.status(200); + res.body.id.should.be.eq(testUser.id); + done(); + }); + }); + + it('Returns 404 for unknown ID', (done) => { + chai.request(server) + .get('/api/user/unknownId') + .end((err, res) => { + res.should.have.status(404); + done(); + }); + }); +}); \ No newline at end of file