text: 'use strict';
  
  const chai = require('chai');
  
  const expect = chai.expect;
  const Support = require('../../support');
  
  const { DataTypes } = require('@sequelize/core');
  
  const dialect = Support.getTestDialect();
  
  if (dialect.startsWith('postgres')) {
    describe('[POSTGRES Specific] Regressions', () => {
      it('properly fetch OIDs after sync, #8749', async function () {
        const User = this.sequelize.define('User', {
          active: DataTypes.BOOLEAN,
        });
  
        /**
         * This Model is important, sync will try to fetch OIDs after each ENUM model sync
         * Having ENUM in this model will force OIDs re-fetch
         * We are testing that OID refresh keep base type intact
         */
        const Media = this.sequelize.define('Media', {
          type: DataTypes.ENUM([
            'image', 'video', 'audio',
          ]),
        });
  
        User.hasMany(Media);
        Media.belongsTo(User);
  
        await this.sequelize.sync({ force: true });
  
        const user1 = await User.create({ active: true });
        expect(user1.active).to.be.true;
        expect(user1.get('active')).to.be.true;
  
        const user0 = await User.findOne();
        expect(user0.active).to.be.true;
        expect(user0.get('active')).to.be.true;
  
        const user = await User.findOne({ raw: true });
        expect(user.active).to.be.true;
      });
    });
  }
  