connection-manager.test.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. 'use strict';
  2. const chai = require('chai');
  3. const expect = chai.expect;
  4. const Support = require('../../support');
  5. const dialect = Support.getTestDialect();
  6. const env = process.env;
  7. const { Sequelize } = require('@sequelize/core');
  8. describe('[MARIADB Specific] Connection Manager', () => {
  9. if (dialect !== 'mariadb') {
  10. return;
  11. }
  12. it('has existing init SQL', async () => {
  13. const sequelize = Support.createSingleTestSequelizeInstance({
  14. initSql: `SET @myUserVariable='myValue'`,
  15. });
  16. const res = await sequelize.query('SELECT @myUserVariable');
  17. expect(res[0]).to.deep.equal([{ '@myUserVariable': 'myValue' }]);
  18. sequelize.close();
  19. });
  20. it('has existing init SQL array', async () => {
  21. const sequelize = Support.createSingleTestSequelizeInstance({
  22. initSql: [`SET @myUserVariable1='myValue'`, `SET @myUserVariable2='myValue'`],
  23. });
  24. const res = await sequelize.query('SELECT @myUserVariable1, @myUserVariable2');
  25. expect(res[0]).to.deep.equal([
  26. { '@myUserVariable1': 'myValue', '@myUserVariable2': 'myValue' },
  27. ]);
  28. sequelize.close();
  29. });
  30. describe('Errors', () => {
  31. const testHost =
  32. env.MARIADB_PORT_3306_TCP_ADDR || env.SEQ_MARIADB_HOST || env.SEQ_HOST || '127.0.0.1';
  33. it('Connection timeout', async () => {
  34. const sequelize = Support.createSingleTestSequelizeInstance({
  35. host: testHost,
  36. port: 65_535,
  37. connectTimeout: 500,
  38. });
  39. await expect(sequelize.pool.acquire()).to.have.been.rejectedWith(
  40. Sequelize.SequelizeConnectionError,
  41. );
  42. await sequelize.close();
  43. });
  44. it('ECONNREFUSED', async () => {
  45. const sequelize = Support.createSingleTestSequelizeInstance({ host: testHost, port: 65_535 });
  46. await expect(sequelize.pool.acquire()).to.have.been.rejectedWith(
  47. Sequelize.ConnectionRefusedError,
  48. );
  49. await sequelize.close();
  50. });
  51. it('ENOTFOUND', async () => {
  52. const sequelize = Support.createSingleTestSequelizeInstance({
  53. host: 'http://wowow.example.com',
  54. });
  55. await expect(sequelize.pool.acquire()).to.have.been.rejectedWith(Sequelize.HostNotFoundError);
  56. await sequelize.close();
  57. });
  58. it('EHOSTUNREACH', async () => {
  59. const sequelize = Support.createSingleTestSequelizeInstance({ host: '255.255.255.255' });
  60. await expect(sequelize.pool.acquire()).to.have.been.rejectedWith(
  61. Sequelize.HostNotReachableError,
  62. );
  63. await sequelize.close();
  64. });
  65. it('ER_ACCESS_DENIED_ERROR | ELOGIN', async () => {
  66. const sequelize = Support.createSingleTestSequelizeInstance({
  67. database: 'db',
  68. user: 'was',
  69. password: 'ddsd',
  70. });
  71. await expect(sequelize.pool.acquire()).to.have.been.rejectedWith(Sequelize.AccessDeniedError);
  72. await sequelize.close();
  73. });
  74. });
  75. });