warning.test.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. 'use strict';
  2. const { expect } = require('chai');
  3. const Support = require('../../support');
  4. const { DataTypes } = require('@sequelize/core');
  5. const sinon = require('sinon');
  6. const dialect = Support.getTestDialect();
  7. describe(Support.getTestDialectTeaser('Warning'), () => {
  8. // We can only test MySQL warnings when using MySQL.
  9. if (dialect === 'mysql') {
  10. describe('logging', () => {
  11. it('logs warnings when there are warnings', async () => {
  12. const logger = sinon.fake();
  13. const sequelize = Support.createSingleTestSequelizeInstance({
  14. logging: logger,
  15. benchmark: false,
  16. showWarnings: true,
  17. });
  18. const Model = sequelize.define('model', {
  19. name: DataTypes.STRING(1),
  20. });
  21. await sequelize.sync({ force: true });
  22. await sequelize.authenticate();
  23. await sequelize.query("SET SESSION sql_mode='';");
  24. await Model.create({
  25. name: 'very-long-long-name',
  26. });
  27. // last log is warning message
  28. expect(logger.args.at(-1)[0]).to.be.match(/^mysql warnings \(default\):.*/m);
  29. });
  30. });
  31. }
  32. });