ID photo of Ciro Santilli taken in 2013 right eyeCiro Santilli OurBigBook logoOurBigBook.com  Sponsor 中国独裁统治 China Dictatorship 新疆改造中心、六四事件、法轮功、郝海东、709大抓捕、2015巴拿马文件 邓家贵、低端人口、西藏骚乱
nodejs/sequelize/hook_in_transaction.js
#!/usr/bin/env node

// https://github.com/sequelize/sequelize/issues/3534
// https://github.com/sequelize/sequelize/issues/8586

const assert = require('assert');
const common = require('./common')
const { DataTypes } = require('sequelize');
const sequelize = common.sequelize(__filename, process.argv[2])

;(async () => {
const IntegerNames = sequelize.define('IntegerNames',
  {
    value: {
      type: DataTypes.INTEGER,
    },
    name: {
      type: DataTypes.STRING,
    },
  },
  {
    hooks: {
      afterCreate: (integerName, options) => {
        assert.notStrictEqual(options.transaction, undefined)
      },
      beforeDestroy: (integerName, options) => {
        assert.notStrictEqual(options.transaction, undefined)
      },
    }
  },
);
await IntegerNames.sync({force: true})
let i;
await sequelize.transaction(async transaction => {
  i = await IntegerNames.create({value: 2, name: 'two'}, { transaction })
})
await sequelize.transaction(async transaction => {
  await i.destroy({ transaction })
})
})().finally(() => { return sequelize.close() });