diff --git a/api-tests/db-max-connection-test.js b/api-tests/db-max-connection-test.js new file mode 100644 index 0000000..70e71d2 --- /dev/null +++ b/api-tests/db-max-connection-test.js @@ -0,0 +1,12 @@ +require('dotenv').config({ path: `.env.${process.env.NODE_ENV}` }); +const log = require('loglevel'); +require('../server/setup'); +const request = require('supertest'); // eslint-disable-line +const server = require('../server/app'); + +(async () => { + for (let i = 0; i < 1000; i += 1) { + await request(server).get(`/stakeholders`); + log.info(`request ${i + 1}`); + } +})(); diff --git a/package.json b/package.json index 99cc9b0..e18a8a5 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,8 @@ "seed": "knex seed:run", "proxy": "http://localhost:3001/", "prepare": "husky install", - "seed-dev": "NODE_ENV=development knex seed:run" + "seed-dev": "NODE_ENV=development knex seed:run", + "db-pool-test": "NODE_ENV=development node ./api-tests/db-max-connection-test.js" }, "keywords": [ "ecology" diff --git a/server/app.spec.js b/server/app.spec.js index e06248a..a628fe4 100644 --- a/server/app.spec.js +++ b/server/app.spec.js @@ -1,20 +1,19 @@ const request = require('supertest'); const { expect } = require('chai'); -const server = require("./app"); +const server = require('./app'); - -describe("", () => { - - it("Test header: content-type: application/json", async () => { - const res = await request(server) - .get('/'); +describe('', () => { + it('Test header: content-type: application/json', async () => { + const res = await request(server).get('/'); expect(res.statusCode).eq(200); }); - it("Test header: content-type: application/json", async () => { - const res = await request(server) - .post('/'); + it('Test header: content-type: application/json', async () => { + const res = await request(server).post('/'); + expect(res.statusCode).eq(415); - expect(res.body).property("message").match(/application.json/); + expect(res.body) + .property('message') + .match(/application.json/); }); }); diff --git a/server/database/knex.js b/server/database/knex.js index 2149e09..e509c2c 100644 --- a/server/database/knex.js +++ b/server/database/knex.js @@ -12,7 +12,7 @@ const knexConfig = { client: 'pg', debug: process.env.NODE_LOG_LEVEL === 'debug', connection, - pool: { min: 0, max: 20 }, + pool: { min: 0, max: 10 }, }; log.debug(process.env.DATABASE_SCHEMA); diff --git a/server/setup.js b/server/setup.js index 76f67b5..a432946 100644 --- a/server/setup.js +++ b/server/setup.js @@ -1,11 +1,11 @@ /* * A file to setup some global setting, like log level */ -const log = require("loglevel"); -if(process.env.NODE_LOG_LEVEL){ +const log = require('loglevel'); + +if (process.env.NODE_LOG_LEVEL) { log.setDefaultLevel(process.env.NODE_LOG_LEVEL); -}else{ - log.setDefaultLevel("info"); +} else { + log.setDefaultLevel('info'); } -