12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- 'use strict';
- const chai = require('chai');
- const expect = chai.expect;
- const Support = require('../support');
- const { DataTypes } = require('@sequelize/core');
- describe(Support.getTestDialectTeaser('Model'), () => {
- beforeEach(async function () {
- this.Order = this.sequelize.define('Order', {
- id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true },
- sequence: DataTypes.INTEGER,
- amount: DataTypes.FLOAT,
- type: DataTypes.STRING,
- });
- await this.sequelize.sync({ force: true });
- await this.Order.bulkCreate([
- { sequence: 1, amount: 3, type: 'A' },
- { sequence: 2, amount: 4, type: 'A' },
- { sequence: 3, amount: 5, type: 'A' },
- { sequence: 4, amount: 1, type: 'A' },
- { sequence: 1, amount: 2, type: 'B' },
- { sequence: 2, amount: 6, type: 'B' },
- { sequence: 0, amount: 0, type: 'C' },
- ]);
- });
- describe('max', () => {
- it('type A to C should exist', async function () {
- await expect(this.Order.sum('sequence', { where: { type: 'A' } })).to.eventually.be.equal(10);
- await expect(this.Order.max('sequence', { where: { type: 'A' } })).to.eventually.be.equal(4);
- await expect(this.Order.min('sequence', { where: { type: 'A' } })).to.eventually.be.equal(1);
- await expect(this.Order.sum('amount', { where: { type: 'A' } })).to.eventually.be.equal(13);
- await expect(this.Order.max('amount', { where: { type: 'A' } })).to.eventually.be.equal(5);
- await expect(this.Order.min('amount', { where: { type: 'A' } })).to.eventually.be.equal(1);
- await expect(this.Order.sum('sequence', { where: { type: 'B' } })).to.eventually.be.equal(3);
- await expect(this.Order.max('sequence', { where: { type: 'B' } })).to.eventually.be.equal(2);
- await expect(this.Order.min('sequence', { where: { type: 'B' } })).to.eventually.be.equal(1);
- await expect(this.Order.sum('amount', { where: { type: 'B' } })).to.eventually.be.equal(8);
- await expect(this.Order.max('amount', { where: { type: 'B' } })).to.eventually.be.equal(6);
- await expect(this.Order.min('amount', { where: { type: 'B' } })).to.eventually.be.equal(2);
- await expect(this.Order.sum('sequence', { where: { type: 'C' } })).to.eventually.be.equal(0);
- await expect(this.Order.max('sequence', { where: { type: 'C' } })).to.eventually.be.equal(0);
- await expect(this.Order.min('sequence', { where: { type: 'C' } })).to.eventually.be.equal(0);
- await expect(this.Order.sum('amount', { where: { type: 'C' } })).to.eventually.be.equal(0);
- await expect(this.Order.max('amount', { where: { type: 'C' } })).to.eventually.be.equal(0);
- await expect(this.Order.min('amount', { where: { type: 'C' } })).to.eventually.be.equal(0);
- });
- it('type D should not exist', async function () {
- await expect(this.Order.sum('sequence', { where: { type: 'D' } })).to.eventually.be.null;
- await expect(this.Order.max('sequence', { where: { type: 'D' } })).to.eventually.be.null;
- await expect(this.Order.min('sequence', { where: { type: 'D' } })).to.eventually.be.null;
- await expect(this.Order.sum('amount', { where: { type: 'D' } })).to.eventually.be.null;
- await expect(this.Order.max('amount', { where: { type: 'D' } })).to.eventually.be.null;
- await expect(this.Order.min('amount', { where: { type: 'D' } })).to.eventually.be.null;
- });
- });
- });
|