mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-08-10 23:53:42 +02:00
fix stringifySequelizeQuery and add tests
This commit is contained in:
52
test/server/utils/stringifySequeslizeQuery.test.js
Normal file
52
test/server/utils/stringifySequeslizeQuery.test.js
Normal file
@ -0,0 +1,52 @@
|
||||
const { expect } = require('chai')
|
||||
const stringifySequelizeQuery = require('../../../server/utils/stringifySequelizeQuery')
|
||||
const Sequelize = require('sequelize')
|
||||
|
||||
class DummyClass {}
|
||||
|
||||
describe('stringifySequelizeQuery', () => {
|
||||
it('should stringify a sequelize query containing an op', () => {
|
||||
const query = {
|
||||
where: {
|
||||
name: 'John',
|
||||
age: {
|
||||
[Sequelize.Op.gt]: 20
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const result = stringifySequelizeQuery(query)
|
||||
expect(result).to.equal('{"where":{"name":"John","age":{"Symbol(gt)":20}}}')
|
||||
})
|
||||
|
||||
it('should stringify a sequelize query containing a literal', () => {
|
||||
const query = {
|
||||
order: [[Sequelize.literal('libraryItem.title'), 'ASC']]
|
||||
}
|
||||
|
||||
const result = stringifySequelizeQuery(query)
|
||||
expect(result).to.equal('{"order":{"0":{"0":{"val":"libraryItem.title"},"1":"ASC"}}}')
|
||||
})
|
||||
|
||||
it('should stringify a sequelize query containing a class', () => {
|
||||
const query = {
|
||||
include: [
|
||||
{
|
||||
model: DummyClass
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const result = stringifySequelizeQuery(query)
|
||||
expect(result).to.equal('{"include":{"0":{"model":"DummyClass"}}}')
|
||||
})
|
||||
|
||||
it('should ignore non-class functions', () => {
|
||||
const query = {
|
||||
logging: (query) => console.log(query)
|
||||
}
|
||||
|
||||
const result = stringifySequelizeQuery(query)
|
||||
expect(result).to.equal('{}')
|
||||
})
|
||||
})
|
Reference in New Issue
Block a user