Setup tests
This commit is contained in:
parent
4f3447b2e4
commit
b9613f16a9
8 changed files with 946 additions and 6 deletions
16
.gitlab-ci.yml
Normal file
16
.gitlab-ci.yml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
image: node:latest
|
||||||
|
|
||||||
|
services:
|
||||||
|
- postgres:latest
|
||||||
|
|
||||||
|
variables:
|
||||||
|
POSTGRES_DB: "letu"
|
||||||
|
POSTGRES_USER: "letu"
|
||||||
|
POSTGRES_PASSWORD: "letu"
|
||||||
|
POSTGRES_HOST_AUTH_METHOD: trust
|
||||||
|
NODE_ENV: "test"
|
||||||
|
|
||||||
|
all_tests:
|
||||||
|
script:
|
||||||
|
- npm install
|
||||||
|
- npm test
|
|
@ -8,11 +8,10 @@ const config = require(__dirname + "/../config/config.json")["database"];
|
||||||
const db = {};
|
const db = {};
|
||||||
|
|
||||||
let sequelize;
|
let sequelize;
|
||||||
if (config.use_env_variable) {
|
if (process.env.NODE_ENV === "test")
|
||||||
sequelize = new Sequelize(process.env[config.use_env_variable], config);
|
sequelize = new Sequelize("sqlite::memory:");
|
||||||
} else {
|
else
|
||||||
sequelize = new Sequelize(config.database, config.username, config.password, config);
|
sequelize = new Sequelize(require(__dirname + "/../config/config.json").database);
|
||||||
}
|
|
||||||
|
|
||||||
fs
|
fs
|
||||||
.readdirSync(__dirname)
|
.readdirSync(__dirname)
|
||||||
|
|
875
package-lock.json
generated
875
package-lock.json
generated
File diff suppressed because it is too large
Load diff
10
package.json
10
package.json
|
@ -3,7 +3,8 @@
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "node ./bin/www"
|
"start": "node ./bin/www",
|
||||||
|
"test": "NODE_ENV=test mocha"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"cookie-parser": "~1.4.4",
|
"cookie-parser": "~1.4.4",
|
||||||
|
@ -17,5 +18,12 @@
|
||||||
"sequelize": "^5.21.12",
|
"sequelize": "^5.21.12",
|
||||||
"sequelize-cli": "^5.5.1",
|
"sequelize-cli": "^5.5.1",
|
||||||
"socket.io": "^2.3.0"
|
"socket.io": "^2.3.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"chai": "^4.2.0",
|
||||||
|
"mocha": "^7.2.0",
|
||||||
|
"request": "^2.88.2",
|
||||||
|
"sqlite3": "^5.0.0",
|
||||||
|
"supertest": "^5.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
1
test/mocha.opts
Normal file
1
test/mocha.opts
Normal file
|
@ -0,0 +1 @@
|
||||||
|
--timeout 100000
|
33
test/test-pages.js
Normal file
33
test/test-pages.js
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
let request = require("supertest");
|
||||||
|
let wipeDatabase = require("./utils/wipeDatabase");
|
||||||
|
|
||||||
|
|
||||||
|
async function setup() {
|
||||||
|
let app = require("../app");
|
||||||
|
let models = require("../models");
|
||||||
|
await models.sequelize.sync();
|
||||||
|
await wipeDatabase(models);
|
||||||
|
return [app, models];
|
||||||
|
}
|
||||||
|
|
||||||
|
async function clean() {
|
||||||
|
await wipeDatabase(models);
|
||||||
|
await models.sequelize.close();
|
||||||
|
for (let e of ["../app", "../models"])
|
||||||
|
delete require.cache[require.resolve(e)];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
before(async () => {
|
||||||
|
[app, models] = await setup();
|
||||||
|
})
|
||||||
|
|
||||||
|
it("Main page content", async () => {
|
||||||
|
await request(app)
|
||||||
|
.get("/")
|
||||||
|
.expect(200);
|
||||||
|
});
|
||||||
|
|
||||||
|
after(() => {
|
||||||
|
return clean;
|
||||||
|
});
|
8
test/utils/wipeDatabase.js
Normal file
8
test/utils/wipeDatabase.js
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
async function wipeDatabase(models) {
|
||||||
|
for (let model in models) {
|
||||||
|
if (["sequelize", "Sequelize"].indexOf(model) < 0)
|
||||||
|
await models[model].destroy({where: {}});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = wipeDatabase;
|
Reference in a new issue