moleculer-db-adapter-sequelize
Advanced tools
Comparing version 0.1.10 to 0.1.11
{ | ||
"name": "moleculer-db-adapter-sequelize", | ||
"version": "0.1.10", | ||
"version": "0.1.11", | ||
"description": "SQL adapter (Postgres, MySQL, SQLite & MSSQL) for Moleculer DB service", | ||
@@ -60,3 +60,4 @@ "main": "index.js", | ||
"sequelize": "4.41.0" | ||
} | ||
}, | ||
"gitHead": "50fcfbf159b9cc41ce371a4e0e7004dc928b0bcb" | ||
} |
@@ -57,7 +57,14 @@ /* | ||
let m = this.service.schema.model; | ||
this.model = this.db.define(m.name, m.define, m.options); | ||
let modelDefinitionOrInstance = this.service.schema.model; | ||
let modelReadyPromise; | ||
let isModelInstance = modelDefinitionOrInstance && modelDefinitionOrInstance.hasOwnProperty("attributes"); | ||
if (isModelInstance){ | ||
this.model = modelDefinitionOrInstance; | ||
modelReadyPromise = Promise.resolve(); | ||
}else { | ||
this.model = this.db.define(modelDefinitionOrInstance.name, modelDefinitionOrInstance.define, modelDefinitionOrInstance.options); | ||
modelReadyPromise = this.model.sync(); | ||
} | ||
this.service.model = this.model; | ||
return this.model.sync(); | ||
return modelReadyPromise ; | ||
}); | ||
@@ -355,4 +362,4 @@ } | ||
* For compatibility only. | ||
* @param {Object} entity | ||
* @param {String} idField | ||
* @param {Object} entity | ||
* @param {String} idField | ||
* @memberof SequelizeDbAdapter | ||
@@ -367,4 +374,4 @@ * @returns {Object} Entity | ||
* For compatibility only. | ||
* @param {Object} entity | ||
* @param {String} idField | ||
* @param {Object} entity | ||
* @param {String} idField | ||
* @memberof SequelizeDbAdapter | ||
@@ -371,0 +378,0 @@ * @returns {Object} Entity |
"use strict"; | ||
const { ServiceBroker } = require("moleculer"); | ||
const {ServiceBroker} = require("moleculer"); | ||
@@ -31,3 +31,3 @@ jest.mock("sequelize"); | ||
function protectReject(err) { | ||
function protectReject (err) { | ||
if (err && err.stack) { | ||
@@ -49,2 +49,5 @@ console.error(err); | ||
}; | ||
const initiatedModel = { | ||
attributes: {} | ||
}; | ||
@@ -59,328 +62,369 @@ | ||
describe("Test SequelizeAdapter", () => { | ||
const broker = new ServiceBroker({ logger: false }); | ||
const service = broker.createService({ | ||
name: "store", | ||
model: fakeModel | ||
beforeEach(() => { | ||
Sequelize.mockClear(); | ||
db.authenticate.mockClear(); | ||
db.define.mockClear(); | ||
}); | ||
const opts = { | ||
dialect: "sqlite" | ||
}; | ||
const adapter = new SequelizeAdapter(opts); | ||
describe("model definition as description", () => { | ||
const opts = { | ||
dialect: "sqlite" | ||
}; | ||
const adapter = new SequelizeAdapter(opts); | ||
it("should be created", () => { | ||
expect(adapter).toBeDefined(); | ||
expect(adapter.opts).toEqual([opts]); | ||
expect(adapter.init).toBeDefined(); | ||
expect(adapter.connect).toBeDefined(); | ||
expect(adapter.disconnect).toBeDefined(); | ||
expect(adapter.find).toBeDefined(); | ||
expect(adapter.findOne).toBeDefined(); | ||
expect(adapter.findById).toBeDefined(); | ||
expect(adapter.findByIds).toBeDefined(); | ||
expect(adapter.count).toBeDefined(); | ||
expect(adapter.insert).toBeDefined(); | ||
expect(adapter.insertMany).toBeDefined(); | ||
expect(adapter.updateMany).toBeDefined(); | ||
expect(adapter.updateById).toBeDefined(); | ||
expect(adapter.removeMany).toBeDefined(); | ||
expect(adapter.removeById).toBeDefined(); | ||
expect(adapter.clear).toBeDefined(); | ||
expect(adapter.beforeSaveTransformID).toBeInstanceOf(Function); | ||
expect(adapter.afterRetrieveTransformID).toBeInstanceOf(Function); | ||
}); | ||
const broker = new ServiceBroker({logger: false}); | ||
const service = broker.createService({ | ||
name: "store", | ||
model: fakeModel | ||
}); | ||
it("call init", () => { | ||
adapter.init(broker, service); | ||
expect(adapter.broker).toBe(broker); | ||
expect(adapter.service).toBe(service); | ||
}); | ||
beforeEach(() => { | ||
adapter.init(broker, service); | ||
}); | ||
it("should be created", () => { | ||
expect(adapter).toBeDefined(); | ||
expect(adapter.opts).toEqual([opts]); | ||
expect(adapter.init).toBeDefined(); | ||
expect(adapter.connect).toBeDefined(); | ||
expect(adapter.disconnect).toBeDefined(); | ||
expect(adapter.find).toBeDefined(); | ||
expect(adapter.findOne).toBeDefined(); | ||
expect(adapter.findById).toBeDefined(); | ||
expect(adapter.findByIds).toBeDefined(); | ||
expect(adapter.count).toBeDefined(); | ||
expect(adapter.insert).toBeDefined(); | ||
expect(adapter.insertMany).toBeDefined(); | ||
expect(adapter.updateMany).toBeDefined(); | ||
expect(adapter.updateById).toBeDefined(); | ||
expect(adapter.removeMany).toBeDefined(); | ||
expect(adapter.removeById).toBeDefined(); | ||
expect(adapter.clear).toBeDefined(); | ||
expect(adapter.beforeSaveTransformID).toBeInstanceOf(Function); | ||
expect(adapter.afterRetrieveTransformID).toBeInstanceOf(Function); | ||
}); | ||
it("call connect with uri", () => { | ||
return adapter.connect().catch(protectReject).then(() => { | ||
expect(Sequelize).toHaveBeenCalledTimes(1); | ||
expect(Sequelize).toHaveBeenCalledWith(opts); | ||
it("call init", () => { | ||
expect(adapter.broker).toBe(broker); | ||
expect(adapter.service).toBe(service); | ||
}); | ||
expect(adapter.db).toBe(db); | ||
expect(adapter.db.authenticate).toHaveBeenCalledTimes(1); | ||
expect(adapter.db.define).toHaveBeenCalledTimes(1); | ||
expect(adapter.db.define).toHaveBeenCalledWith(fakeModel.name, fakeModel.define, fakeModel.options); | ||
expect(adapter.model).toBe(model); | ||
expect(adapter.service.model).toBe(model); | ||
it("call connect with uri", () => { | ||
return adapter.connect().catch(protectReject).then(() => { | ||
expect(Sequelize).toHaveBeenCalledTimes(1); | ||
expect(Sequelize).toHaveBeenCalledWith(opts); | ||
expect(adapter.model.sync).toHaveBeenCalledTimes(1); | ||
expect(adapter.db).toBe(db); | ||
expect(adapter.db.authenticate).toHaveBeenCalledTimes(1); | ||
expect(adapter.db.define).toHaveBeenCalledTimes(1); | ||
expect(adapter.db.define).toHaveBeenCalledWith(fakeModel.name, fakeModel.define, fakeModel.options); | ||
expect(adapter.model).toBe(model); | ||
expect(adapter.service.model).toBe(model); | ||
expect(adapter.model.sync).toHaveBeenCalledTimes(1); | ||
}); | ||
}); | ||
}); | ||
it("call disconnect", () => { | ||
adapter.db.close.mockClear(); | ||
it("call disconnect", () => { | ||
adapter.db.close.mockClear(); | ||
return adapter.disconnect().catch(protectReject).then(() => { | ||
expect(adapter.db.close).toHaveBeenCalledTimes(1); | ||
return adapter.disconnect().catch(protectReject).then(() => { | ||
expect(adapter.db.close).toHaveBeenCalledTimes(1); | ||
}); | ||
}); | ||
}); | ||
describe("Test createCursor", () => { | ||
describe("Test createCursor", () => { | ||
it("call without params", () => { | ||
adapter.model.findAll.mockClear(); | ||
adapter.createCursor(); | ||
expect(adapter.model.findAll).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.findAll).toHaveBeenCalledWith(); | ||
}); | ||
it("call without params", () => { | ||
adapter.model.findAll.mockClear(); | ||
adapter.createCursor(); | ||
expect(adapter.model.findAll).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.findAll).toHaveBeenCalledWith(); | ||
}); | ||
it("call without params as counting", () => { | ||
adapter.model.findAll.mockClear(); | ||
adapter.createCursor(null, true); | ||
expect(adapter.model.count).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.count).toHaveBeenCalledWith(); | ||
}); | ||
it("call without params as counting", () => { | ||
adapter.model.findAll.mockClear(); | ||
adapter.createCursor(null, true); | ||
expect(adapter.model.count).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.count).toHaveBeenCalledWith(); | ||
}); | ||
it("call with query", () => { | ||
adapter.model.findAll.mockClear(); | ||
let query = {}; | ||
adapter.createCursor({ query }); | ||
expect(adapter.model.findAll).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.findAll).toHaveBeenCalledWith({ where: query }); | ||
}); | ||
it("call with query", () => { | ||
adapter.model.findAll.mockClear(); | ||
let query = {}; | ||
adapter.createCursor({query}); | ||
expect(adapter.model.findAll).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.findAll).toHaveBeenCalledWith({where: query}); | ||
}); | ||
it("call with query & counting", () => { | ||
adapter.model.count.mockClear(); | ||
let query = {}; | ||
adapter.createCursor({ query }, true); | ||
expect(adapter.model.count).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.count).toHaveBeenCalledWith({ where: query }); | ||
}); | ||
it("call with query & counting", () => { | ||
adapter.model.count.mockClear(); | ||
let query = {}; | ||
adapter.createCursor({query}, true); | ||
expect(adapter.model.count).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.count).toHaveBeenCalledWith({where: query}); | ||
}); | ||
it("call with sort string", () => { | ||
adapter.model.findAll.mockClear(); | ||
let query = {}; | ||
adapter.createCursor({ query, sort: "-votes title" }); | ||
expect(adapter.model.findAll).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.findAll).toHaveBeenCalledWith({ | ||
where: query, | ||
order: [["votes", "DESC"], ["title", "ASC"]] | ||
it("call with sort string", () => { | ||
adapter.model.findAll.mockClear(); | ||
let query = {}; | ||
adapter.createCursor({query, sort: "-votes title"}); | ||
expect(adapter.model.findAll).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.findAll).toHaveBeenCalledWith({ | ||
where: query, | ||
order: [["votes", "DESC"], ["title", "ASC"]] | ||
}); | ||
}); | ||
}); | ||
it("call with sort array", () => { | ||
adapter.model.findAll.mockClear(); | ||
let query = {}; | ||
adapter.createCursor({ query, sort: ["createdAt", "title"] }); | ||
expect(adapter.model.findAll).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.findAll).toHaveBeenCalledWith({ | ||
where: query, | ||
order: [["createdAt", "ASC"], ["title", "ASC"]] | ||
it("call with sort array", () => { | ||
adapter.model.findAll.mockClear(); | ||
let query = {}; | ||
adapter.createCursor({query, sort: ["createdAt", "title"]}); | ||
expect(adapter.model.findAll).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.findAll).toHaveBeenCalledWith({ | ||
where: query, | ||
order: [["createdAt", "ASC"], ["title", "ASC"]] | ||
}); | ||
}); | ||
}); | ||
it("call with sort object", () => { | ||
adapter.model.findAll.mockClear(); | ||
let query = {}; | ||
adapter.createCursor({ query, sort: { createdAt: 1, title: -1 }}); | ||
expect(adapter.model.findAll).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.findAll).toHaveBeenCalledWith({ | ||
where: query, | ||
order: [["createdAt", "ASC"], ["title", "DESC"]] | ||
it("call with sort object", () => { | ||
adapter.model.findAll.mockClear(); | ||
let query = {}; | ||
adapter.createCursor({query, sort: {createdAt: 1, title: -1}}); | ||
expect(adapter.model.findAll).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.findAll).toHaveBeenCalledWith({ | ||
where: query, | ||
order: [["createdAt", "ASC"], ["title", "DESC"]] | ||
}); | ||
}); | ||
}); | ||
it("call with limit & offset", () => { | ||
adapter.model.findAll.mockClear(); | ||
adapter.createCursor({ limit: 5, offset: 10 }); | ||
expect(adapter.model.findAll).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.findAll).toHaveBeenCalledWith({ | ||
offset: 10, | ||
limit: 5, | ||
where: {} | ||
it("call with limit & offset", () => { | ||
adapter.model.findAll.mockClear(); | ||
adapter.createCursor({limit: 5, offset: 10}); | ||
expect(adapter.model.findAll).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.findAll).toHaveBeenCalledWith({ | ||
offset: 10, | ||
limit: 5, | ||
where: {} | ||
}); | ||
}); | ||
}); | ||
it("call with full-text search", () => { | ||
adapter.model.findAll.mockClear(); | ||
adapter.createCursor({ search: "walter", searchFields: ["title", "content"] }); | ||
expect(adapter.model.findAll).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.findAll).toHaveBeenCalledWith({ | ||
where: { | ||
[Op.or]: [ | ||
{ | ||
title: { | ||
[Op.like]: "%walter%" | ||
it("call with full-text search", () => { | ||
adapter.model.findAll.mockClear(); | ||
adapter.createCursor({search: "walter", searchFields: ["title", "content"]}); | ||
expect(adapter.model.findAll).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.findAll).toHaveBeenCalledWith({ | ||
where: { | ||
[Op.or]: [ | ||
{ | ||
title: { | ||
[Op.like]: "%walter%" | ||
} | ||
}, | ||
{ | ||
content: { | ||
[Op.like]: "%walter%" | ||
} | ||
} | ||
}, | ||
{ | ||
content: { | ||
[Op.like]: "%walter%" | ||
} | ||
} | ||
] | ||
} | ||
] | ||
} | ||
}); | ||
}); | ||
}); | ||
}); | ||
it("call find", () => { | ||
adapter.createCursor = jest.fn(() => Promise.resolve()); | ||
it("call find", () => { | ||
adapter.createCursor = jest.fn(() => Promise.resolve()); | ||
let params = {}; | ||
return adapter.find(params).catch(protectReject).then(() => { | ||
expect(adapter.createCursor).toHaveBeenCalledTimes(1); | ||
expect(adapter.createCursor).toHaveBeenCalledWith(params); | ||
let params = {}; | ||
return adapter.find(params).catch(protectReject).then(() => { | ||
expect(adapter.createCursor).toHaveBeenCalledTimes(1); | ||
expect(adapter.createCursor).toHaveBeenCalledWith(params); | ||
}); | ||
}); | ||
}); | ||
it("call findOne", () => { | ||
adapter.model.findOne.mockClear(); | ||
let age = { age: 25 }; | ||
it("call findOne", () => { | ||
adapter.model.findOne.mockClear(); | ||
let age = {age: 25}; | ||
return adapter.findOne(age).catch(protectReject).then(() => { | ||
expect(adapter.model.findOne).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.findOne).toHaveBeenCalledWith(age); | ||
return adapter.findOne(age).catch(protectReject).then(() => { | ||
expect(adapter.model.findOne).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.findOne).toHaveBeenCalledWith(age); | ||
}); | ||
}); | ||
}); | ||
it("call findByPk", () => { | ||
adapter.model.findByPk.mockClear(); | ||
it("call findByPk", () => { | ||
adapter.model.findByPk.mockClear(); | ||
return adapter.findById(5).catch(protectReject).then(() => { | ||
expect(adapter.model.findByPk).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.findByPk).toHaveBeenCalledWith(5); | ||
return adapter.findById(5).catch(protectReject).then(() => { | ||
expect(adapter.model.findByPk).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.findByPk).toHaveBeenCalledWith(5); | ||
}); | ||
}); | ||
}); | ||
it("call findByIds", () => { | ||
adapter.model.findAll.mockClear(); | ||
it("call findByIds", () => { | ||
adapter.model.findAll.mockClear(); | ||
return adapter.findByIds([5]).catch(protectReject).then(() => { | ||
expect(adapter.model.findAll).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.findAll).toHaveBeenCalledWith({"where": {"id": { [Op.in]: [5] }}}); | ||
return adapter.findByIds([5]).catch(protectReject).then(() => { | ||
expect(adapter.model.findAll).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.findAll).toHaveBeenCalledWith({"where": {"id": {[Op.in]: [5]}}}); | ||
}); | ||
}); | ||
}); | ||
it("call count", () => { | ||
adapter.createCursor = jest.fn(() => Promise.resolve()); | ||
it("call count", () => { | ||
adapter.createCursor = jest.fn(() => Promise.resolve()); | ||
let params = {}; | ||
return adapter.count(params).catch(protectReject).then(() => { | ||
expect(adapter.createCursor).toHaveBeenCalledTimes(1); | ||
expect(adapter.createCursor).toHaveBeenCalledWith(params, true); | ||
let params = {}; | ||
return adapter.count(params).catch(protectReject).then(() => { | ||
expect(adapter.createCursor).toHaveBeenCalledTimes(1); | ||
expect(adapter.createCursor).toHaveBeenCalledWith(params, true); | ||
}); | ||
}); | ||
}); | ||
it("call insert", () => { | ||
let entity = {}; | ||
return adapter.insert(entity).catch(protectReject).then(() => { | ||
expect(adapter.model.create).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.create).toHaveBeenCalledWith(entity); | ||
it("call insert", () => { | ||
let entity = {}; | ||
return adapter.insert(entity).catch(protectReject).then(() => { | ||
expect(adapter.model.create).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.create).toHaveBeenCalledWith(entity); | ||
}); | ||
}); | ||
}); | ||
it("call inserts", () => { | ||
adapter.model.create.mockClear(); | ||
let entities = [{ name: "John" }, { name: "Jane" }]; | ||
it("call inserts", () => { | ||
adapter.model.create.mockClear(); | ||
let entities = [{name: "John"}, {name: "Jane"}]; | ||
return adapter.insertMany(entities).catch(protectReject).then(() => { | ||
expect(adapter.model.create).toHaveBeenCalledTimes(2); | ||
expect(adapter.model.create).toHaveBeenCalledWith(entities[0]); | ||
expect(adapter.model.create).toHaveBeenCalledWith(entities[1]); | ||
return adapter.insertMany(entities).catch(protectReject).then(() => { | ||
expect(adapter.model.create).toHaveBeenCalledTimes(2); | ||
expect(adapter.model.create).toHaveBeenCalledWith(entities[0]); | ||
expect(adapter.model.create).toHaveBeenCalledWith(entities[1]); | ||
}); | ||
}); | ||
}); | ||
it("call updateMany", () => { | ||
let where = {}; | ||
let update = {}; | ||
it("call updateMany", () => { | ||
let where = {}; | ||
let update = {}; | ||
return adapter.updateMany(where, update).catch(protectReject).then(res => { | ||
expect(res).toBe(1); | ||
expect(adapter.model.update).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.update).toHaveBeenCalledWith(update, { where }); | ||
return adapter.updateMany(where, update).catch(protectReject).then(res => { | ||
expect(res).toBe(1); | ||
expect(adapter.model.update).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.update).toHaveBeenCalledWith(update, {where}); | ||
}); | ||
}); | ||
}); | ||
it("call updateById", () => { | ||
let updateCB = jest.fn(); | ||
adapter.findById = jest.fn(() => Promise.resolve({ | ||
update: updateCB | ||
})); | ||
it("call updateById", () => { | ||
let updateCB = jest.fn(); | ||
adapter.findById = jest.fn(() => Promise.resolve({ | ||
update: updateCB | ||
})); | ||
let update = { | ||
$set: { title: "Test" } | ||
}; | ||
return adapter.updateById(5, update).catch(protectReject).then(() => { | ||
expect(adapter.findById).toHaveBeenCalledTimes(1); | ||
expect(adapter.findById).toHaveBeenCalledWith(5); | ||
let update = { | ||
$set: {title: "Test"} | ||
}; | ||
return adapter.updateById(5, update).catch(protectReject).then(() => { | ||
expect(adapter.findById).toHaveBeenCalledTimes(1); | ||
expect(adapter.findById).toHaveBeenCalledWith(5); | ||
expect(updateCB).toHaveBeenCalledTimes(1); | ||
expect(updateCB).toHaveBeenCalledWith(update["$set"]); | ||
expect(updateCB).toHaveBeenCalledTimes(1); | ||
expect(updateCB).toHaveBeenCalledWith(update["$set"]); | ||
}); | ||
}); | ||
}); | ||
it("call destroy", () => { | ||
let where = {}; | ||
it("call destroy", () => { | ||
let where = {}; | ||
return adapter.removeMany(where).catch(protectReject).then(() => { | ||
expect(adapter.model.destroy).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.destroy).toHaveBeenCalledWith({ where }); | ||
return adapter.removeMany(where).catch(protectReject).then(() => { | ||
expect(adapter.model.destroy).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.destroy).toHaveBeenCalledWith({where}); | ||
}); | ||
}); | ||
}); | ||
it("call entity.destroy", () => { | ||
let destroyCB = jest.fn(() => Promise.resolve()); | ||
adapter.findById = jest.fn(() => Promise.resolve({ | ||
id: 2, | ||
destroy: destroyCB | ||
})); | ||
return adapter.removeById(5).catch(protectReject).then(res => { | ||
expect(res.id).toBe(2); | ||
expect(adapter.findById).toHaveBeenCalledTimes(1); | ||
expect(adapter.findById).toHaveBeenCalledWith(5); | ||
it("call entity.destroy", () => { | ||
let destroyCB = jest.fn(() => Promise.resolve()); | ||
adapter.findById = jest.fn(() => Promise.resolve({ | ||
id: 2, | ||
destroy: destroyCB | ||
})); | ||
return adapter.removeById(5).catch(protectReject).then(res => { | ||
expect(res.id).toBe(2); | ||
expect(adapter.findById).toHaveBeenCalledTimes(1); | ||
expect(adapter.findById).toHaveBeenCalledWith(5); | ||
expect(destroyCB).toHaveBeenCalledTimes(1); | ||
expect(destroyCB).toHaveBeenCalledTimes(1); | ||
}); | ||
}); | ||
}); | ||
it("call clear", () => { | ||
adapter.model.destroy.mockClear(); | ||
return adapter.clear().catch(protectReject).then(() => { | ||
expect(adapter.model.destroy).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.destroy).toHaveBeenCalledWith({ where: {} }); | ||
it("call clear", () => { | ||
adapter.model.destroy.mockClear(); | ||
return adapter.clear().catch(protectReject).then(() => { | ||
expect(adapter.model.destroy).toHaveBeenCalledTimes(1); | ||
expect(adapter.model.destroy).toHaveBeenCalledWith({where: {}}); | ||
}); | ||
}); | ||
it("call doc.toJSON", () => { | ||
let doc = { | ||
get: jest.fn() | ||
}; | ||
adapter.entityToObject(doc); | ||
expect(doc.get).toHaveBeenCalledTimes(1); | ||
expect(doc.get).toHaveBeenCalledWith({plain: true}); | ||
}); | ||
it("should transform idField into _id", () => { | ||
let entry = { | ||
myID: "123456789", | ||
title: "My first post" | ||
}; | ||
let idField = "myID"; | ||
let res = adapter.beforeSaveTransformID(entry, idField); | ||
expect(res).toEqual(entry); | ||
}); | ||
it("should transform _id into idField", () => { | ||
let entry = { | ||
_id: "123456789", | ||
title: "My first post" | ||
}; | ||
let idField = "myID"; | ||
let res = adapter.afterRetrieveTransformID(entry, idField); | ||
expect(res).toEqual(entry); | ||
}); | ||
}); | ||
it("call doc.toJSON", () => { | ||
let doc = { | ||
get: jest.fn() | ||
describe("model passed as an initiated model ", () => { | ||
const opts = { | ||
dialect: "sqlite" | ||
}; | ||
adapter.entityToObject(doc); | ||
expect(doc.get).toHaveBeenCalledTimes(1); | ||
expect(doc.get).toHaveBeenCalledWith({ plain: true }); | ||
}); | ||
const adapter = new SequelizeAdapter(opts); | ||
const broker = new ServiceBroker({logger: false}); | ||
const service = broker.createService({ | ||
name: "store", | ||
model: initiatedModel | ||
}); | ||
beforeEach(() => { | ||
adapter.init(broker, service); | ||
}); | ||
it("should transform idField into _id", () => { | ||
let entry = { | ||
myID: "123456789", | ||
title: "My first post" | ||
}; | ||
let idField = "myID"; | ||
let res = adapter.beforeSaveTransformID(entry, idField); | ||
expect(res).toEqual(entry); | ||
it("do not call define if initiated model passed", () => { | ||
return adapter.connect().catch(protectReject).then(() => { | ||
expect(Sequelize).toHaveBeenCalledTimes(1); | ||
expect(Sequelize).toHaveBeenCalledWith(opts); | ||
expect(adapter.db).toBe(db); | ||
expect(adapter.db.authenticate).toHaveBeenCalledTimes(1); | ||
expect(adapter.db.define).toHaveBeenCalledTimes(0); | ||
expect(adapter.model).toBe(initiatedModel); | ||
expect(adapter.service.model).toBe(initiatedModel); | ||
}); | ||
}); | ||
}); | ||
it("should transform _id into idField", () => { | ||
let entry = { | ||
_id: "123456789", | ||
title: "My first post" | ||
}; | ||
let idField = "myID"; | ||
let res = adapter.afterRetrieveTransformID(entry, idField); | ||
expect(res).toEqual(entry); | ||
}); | ||
}); | ||
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
36140
1028