switch to config for sequelize and postgres
This commit is contained in:
parent
2bc25eb838
commit
e171e01123
|
|
@ -0,0 +1,38 @@
|
||||||
|
require('dotenv').config();
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
development: {
|
||||||
|
dialect: 'postgres',
|
||||||
|
username: 'tester',
|
||||||
|
password: 'test123',
|
||||||
|
database: 'bullpen',
|
||||||
|
host: 'localhost',
|
||||||
|
port: 15432,
|
||||||
|
logging: false,
|
||||||
|
},
|
||||||
|
test: {
|
||||||
|
dialect: 'postgres',
|
||||||
|
username: 'tester',
|
||||||
|
password: 'test123',
|
||||||
|
database: 'bullpen',
|
||||||
|
host: 'localhost',
|
||||||
|
port: 15432,
|
||||||
|
logging: false,
|
||||||
|
},
|
||||||
|
staging: {
|
||||||
|
username: process.env.DB_USER,
|
||||||
|
password: process.env.DB_PASS,
|
||||||
|
database: process.env.DB_NAME,
|
||||||
|
host: process.env.DB_HOST,
|
||||||
|
dialect: process.env.DB_DIALECT,
|
||||||
|
logging: false,
|
||||||
|
},
|
||||||
|
production: {
|
||||||
|
username: process.env.DB_USER,
|
||||||
|
password: process.env.DB_PASS,
|
||||||
|
database: process.env.DB_NAME,
|
||||||
|
host: process.env.DB_HOST,
|
||||||
|
dialect: process.env.DB_DIALECT,
|
||||||
|
logging: false,
|
||||||
|
},
|
||||||
|
};
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,10 +1,14 @@
|
||||||
{
|
{
|
||||||
"name": "bullpen-backend",
|
"name": "bullpen-backend",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"main": "src/index.js",
|
"main": "server.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "echo \"Error: no test specified\" && exit 1",
|
"test": "cross-env NODE_ENV=test jest",
|
||||||
"start": "node src/index.js",
|
"pretest": "cross-env NODE_ENV=test npm run db:reset",
|
||||||
|
"db:create:test": "cross-env NODE_ENV=test npx sequelize-cli db:create",
|
||||||
|
"db:reset": "npx sequelize-cli db:drop && npx sequelize-cli db:create && npx sequelize-cli db:migrate && npx sequelize-cli db:seed:all --debug",
|
||||||
|
"setup-db": "npx sequelize-cli db:drop && npx sequelize-cli db:create && npx sequelize-cli db:migrate && npx sequelize-cli db:seed:all --debug",
|
||||||
|
"start": "cross-env NODE_ENV=test node server.js",
|
||||||
"setup-example-db": "node database/setup.js"
|
"setup-example-db": "node database/setup.js"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
|
|
@ -27,6 +31,7 @@
|
||||||
"uuid": "^11.1.0"
|
"uuid": "^11.1.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@jest/globals": "^29.7.0",
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
"dotenv": "^16.4.7",
|
"dotenv": "^16.4.7",
|
||||||
"jest": "^29.7.0",
|
"jest": "^29.7.0",
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
const app = require('./src/index');
|
||||||
|
|
||||||
|
// set port, listen for requests
|
||||||
|
const PORT = process.env.PORT || 8080;
|
||||||
|
app.listen(PORT, () => {
|
||||||
|
console.log(`Server is running on port ${PORT}.`);
|
||||||
|
});
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
module.exports = {
|
module.exports = {
|
||||||
dialect: 'sqlite',
|
dialect: 'sqlite',
|
||||||
storage: 'database/example-db.sqlite',
|
storage: 'database/example-db.sqlite',
|
||||||
logQueryParameters: true,
|
logQueryParameters: false,
|
||||||
benchmark: true
|
benchmark: false
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -37,12 +37,6 @@ require('./routes/auth.routes')(app);
|
||||||
require('./routes/user.routes')(app);
|
require('./routes/user.routes')(app);
|
||||||
require('./routes/pitchType.routes')(app);
|
require('./routes/pitchType.routes')(app);
|
||||||
|
|
||||||
// set port, listen for requests
|
|
||||||
const PORT = process.env.PORT || 8080;
|
|
||||||
app.listen(PORT, () => {
|
|
||||||
console.log(`Server is running on port ${PORT}.`);
|
|
||||||
});
|
|
||||||
|
|
||||||
function initial() {
|
function initial() {
|
||||||
Role.bulkCreate([
|
Role.bulkCreate([
|
||||||
{ name: 'user' },
|
{ name: 'user' },
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,23 @@
|
||||||
const config = require("../config/sqlite.config");
|
const fs = require('fs');
|
||||||
|
const path = require('path');
|
||||||
|
|
||||||
|
const env = process.env.NODE_ENV || 'development';
|
||||||
|
let config = require(path.join(__dirname, '../../config/config.js'))[env];
|
||||||
|
if (!config) config = require(path.join(__dirname, '../../config/config.js')).development;
|
||||||
|
|
||||||
const Sequelize = require("sequelize");
|
const Sequelize = require("sequelize");
|
||||||
const sequelize = new Sequelize({
|
// const sequelize = new Sequelize({
|
||||||
dialect: config.dialect,
|
// dialect: config.dialect,
|
||||||
storage: config.storage,
|
// storage: config.storage,
|
||||||
logQueryParameters: config.logQueryParameters,
|
// logQueryParameters: config.logQueryParameters,
|
||||||
benchmark: config.benchmark
|
// benchmark: config.benchmark
|
||||||
});
|
// });
|
||||||
|
|
||||||
// const sequelize = new Sequelize(
|
const sequelize = new Sequelize(
|
||||||
// config.DB,
|
config.database,
|
||||||
// config.USER,
|
config.username,
|
||||||
// config.PASSWORD,
|
config.password,
|
||||||
|
config
|
||||||
// {
|
// {
|
||||||
// host: config.HOST,
|
// host: config.HOST,
|
||||||
// dialect: config.dialect,
|
// dialect: config.dialect,
|
||||||
|
|
@ -22,7 +28,7 @@ const sequelize = new Sequelize({
|
||||||
// idle: config.pool.idle
|
// idle: config.pool.idle
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// );
|
);
|
||||||
|
|
||||||
const db = {};
|
const db = {};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ module.exports = (sequelize) => {
|
||||||
type: DataTypes.INTEGER,
|
type: DataTypes.INTEGER,
|
||||||
allowNull: false,
|
allowNull: false,
|
||||||
references: { // User belongsTo PitchType 1:1
|
references: { // User belongsTo PitchType 1:1
|
||||||
model: 'PitchType',
|
model: 'PitchTypes',
|
||||||
key: 'id'
|
key: 'id'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -20,7 +20,7 @@ module.exports = (sequelize) => {
|
||||||
type: DataTypes.INTEGER,
|
type: DataTypes.INTEGER,
|
||||||
allowNull: false,
|
allowNull: false,
|
||||||
references: { // User belongsTo PitchType 1:1
|
references: { // User belongsTo PitchType 1:1
|
||||||
model: 'BullpenSession',
|
model: 'BullpenSessions',
|
||||||
key: 'id'
|
key: 'id'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,10 @@ module.exports = (sequelize) => {
|
||||||
expiryDate: {
|
expiryDate: {
|
||||||
type: DataTypes.DATE,
|
type: DataTypes.DATE,
|
||||||
},
|
},
|
||||||
|
}, {
|
||||||
|
sequelize,
|
||||||
|
modelName: 'RefreshToken',
|
||||||
|
tableName: 'RefreshTokens',
|
||||||
});
|
});
|
||||||
|
|
||||||
RefreshToken.createToken = async function (user) {
|
RefreshToken.createToken = async function (user) {
|
||||||
|
|
|
||||||
|
|
@ -5,3 +5,5 @@ const signupUser = {
|
||||||
email: "hans.zimmer@email.com",
|
email: "hans.zimmer@email.com",
|
||||||
password: "secret123"
|
password: "secret123"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
exports.signupUser = signupUser;
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,70 @@
|
||||||
const request = require("supertest")
|
const request = require("supertest")
|
||||||
|
const {
|
||||||
|
expect,
|
||||||
|
describe,
|
||||||
|
test,
|
||||||
|
beforeAll,
|
||||||
|
afterAll,
|
||||||
|
} = require('@jest/globals');
|
||||||
|
|
||||||
const app = require("../src/index")
|
const app = require("../src/index")
|
||||||
|
|
||||||
const { signupUser } = require("data/user.test.data")
|
const db = require("../src/models");
|
||||||
|
|
||||||
require("dotenv").config();
|
const { signupUser } = require("./data/user.test.data")
|
||||||
|
|
||||||
describe("GET /api/auth/signup", () => {
|
describe("Test the root path", () => {
|
||||||
it("should signup a user", async () => {
|
beforeAll(() => {
|
||||||
return request(app)
|
db.sequelize.sync({force: true}).then(() => {
|
||||||
.post("/api/auth/signup")
|
db.role.bulkCreate([
|
||||||
.send(signupUser)
|
{ name: 'user' },
|
||||||
.expect('Content-Type', /json/)
|
{ name: 'moderator' },
|
||||||
.expect(200)
|
{ name: 'administrator' },
|
||||||
.then((res) => {
|
]);
|
||||||
expect(res.statusCode).toBe(200);
|
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterAll(async () => {
|
||||||
|
try {
|
||||||
|
await db.sequelize.close();
|
||||||
|
} catch (error) {
|
||||||
|
console.error(error);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("It should response the GET method", done => {
|
||||||
|
request(app)
|
||||||
|
.get("/")
|
||||||
|
.then(response => {
|
||||||
|
expect(response.statusCode).toBe(200);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
test("should signup a user", done => {
|
||||||
|
request(app)
|
||||||
|
.post("/api/auth/signup")
|
||||||
|
.send(signupUser)
|
||||||
|
.then( res => {
|
||||||
|
console.log(JSON.stringify(res, null, 2));
|
||||||
|
expect(res.header['content-type']).toBe('application/json; charset=utf-8');
|
||||||
|
expect(res.statusCode).toBe(400);
|
||||||
|
done();
|
||||||
|
}, error => { done(); })
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
// describe("GET /api/auth/signup", () => {
|
||||||
|
// it("should signup a user", async () => {
|
||||||
|
// return request(app)
|
||||||
|
// .post("/api/auth/signup")
|
||||||
|
// .send(signupUser)
|
||||||
|
// .expect('Content-Type', /json/)
|
||||||
|
// .expect(200)
|
||||||
|
// .then((res) => {
|
||||||
|
// expect(res.statusCode).toBe(200);
|
||||||
|
// })
|
||||||
|
// });
|
||||||
|
// });
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue