1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- 'use strict';
- const chai = require('chai');
- const expect = chai.expect;
- const Support = require('../../support');
- const current = Support.sequelize;
- const sinon = require('sinon');
- const { DataTypes, Op, Sequelize } = require('@sequelize/core');
- describe(Support.getTestDialectTeaser('Model'), () => {
- describe('method findOne', () => {
- before(function () {
- this.oldFindAll = Sequelize.Model.findAll;
- });
- after(function () {
- Sequelize.Model.findAll = this.oldFindAll;
- });
- beforeEach(function () {
- this.stub = Sequelize.Model.findAll = sinon.stub().resolves();
- });
- it('should add limit when using { $ gt on the primary key', async function () {
- const Model = current.define('model');
- await Model.findOne({ where: { id: { [Op.gt]: 42 } } });
- expect(this.stub.getCall(0).args[0]).to.be.an('object').to.have.property('limit');
- });
- it('should add limit when using multi-column unique key', async function () {
- const Model = current.define('model', {
- unique1: {
- type: DataTypes.INTEGER,
- unique: 'unique',
- },
- unique2: {
- type: DataTypes.INTEGER,
- unique: 'unique',
- },
- });
- await Model.findOne({ where: { unique1: 42 } });
- expect(this.stub.getCall(0).args[0]).to.be.an('object').to.have.property('limit');
- });
- it('should call internal findAll() method if findOne() is overridden', async () => {
- const Model = current.define('model', {
- unique1: {
- type: DataTypes.INTEGER,
- unique: 'unique',
- },
- unique2: {
- type: DataTypes.INTEGER,
- unique: 'unique',
- },
- });
- Model.findAll = sinon.stub();
- await Model.findOne();
- Model.findAll.should.not.have.been.called;
- Sequelize.Model.findAll.should.have.been.called;
- });
- });
- });
|