Added some tests (createOne and getAll)
This commit is contained in:
parent
ef7ca0315b
commit
9f0886541c
21 changed files with 2940 additions and 67 deletions
19
models/brands.js
Normal file
19
models/brands.js
Normal file
|
@ -0,0 +1,19 @@
|
|||
module.exports = (sequelize, DataTypes) => {
|
||||
const Brands = sequelize.define(
|
||||
"Brands",
|
||||
{
|
||||
name: DataTypes.STRING
|
||||
},
|
||||
{}
|
||||
);
|
||||
|
||||
Brands.associate = function(models) {
|
||||
Brands.hasMany(models.Cars, {
|
||||
as: "Cars",
|
||||
foreignKey: "brandId",
|
||||
sourceKey: "id"
|
||||
});
|
||||
};
|
||||
|
||||
return Brands;
|
||||
};
|
27
models/cards.js
Normal file
27
models/cards.js
Normal file
|
@ -0,0 +1,27 @@
|
|||
module.exports = (sequelize, DataTypes) => {
|
||||
const Cars = sequelize.define(
|
||||
"Cars",
|
||||
{
|
||||
name: DataTypes.STRING,
|
||||
year: DataTypes.INTEGER,
|
||||
active: DataTypes.BOOLEAN,
|
||||
brandId: {
|
||||
type: DataTypes.INTEGER,
|
||||
references: {
|
||||
model: "Brands",
|
||||
key: "id"
|
||||
}
|
||||
}
|
||||
},
|
||||
{}
|
||||
);
|
||||
|
||||
Cars.associate = function(models) {
|
||||
Cars.belongsTo(models.Brands, {
|
||||
as: "Brand",
|
||||
foreignKey: "brandId"
|
||||
});
|
||||
};
|
||||
|
||||
return Cars;
|
||||
};
|
43
models/index.js
Normal file
43
models/index.js
Normal file
|
@ -0,0 +1,43 @@
|
|||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
const Sequelize = require("sequelize");
|
||||
|
||||
const basename = path.basename(__filename);
|
||||
const env = process.env.NODE_ENV || "development";
|
||||
// eslint-disable-next-line import/no-dynamic-require
|
||||
const config = require(`${__dirname}/../config/config.json`)[env];
|
||||
const db = {};
|
||||
|
||||
let sequelize;
|
||||
if (config.use_env_variable) {
|
||||
sequelize = new Sequelize(process.env[config.use_env_variable], config);
|
||||
} else {
|
||||
sequelize = new Sequelize(
|
||||
config.database,
|
||||
config.username,
|
||||
config.password,
|
||||
config
|
||||
);
|
||||
}
|
||||
|
||||
fs.readdirSync(__dirname)
|
||||
.filter(file => {
|
||||
return (
|
||||
file.indexOf(".") !== 0 && file !== basename && file.slice(-3) === ".js"
|
||||
);
|
||||
})
|
||||
.forEach(file => {
|
||||
const model = sequelize.import(path.join(__dirname, file));
|
||||
db[model.name] = model;
|
||||
});
|
||||
|
||||
Object.keys(db).forEach(modelName => {
|
||||
if (db[modelName].associate) {
|
||||
db[modelName].associate(db);
|
||||
}
|
||||
});
|
||||
|
||||
db.sequelize = sequelize;
|
||||
db.Sequelize = Sequelize;
|
||||
|
||||
module.exports = db;
|
Loading…
Add table
Add a link
Reference in a new issue