fix(data-types): use proper field name for `ARRAY(ENUM)` (#13210) · sequelize/sequelize@1cfbd33

File tree

2 files changed

lines changed

  • test/integration/dialects/postgres

2 files changed

lines changed

Original file line numberDiff line numberDiff line change

@@ -480,7 +480,7 @@ module.exports = BaseTypes => {

480480
481481

if (this.type instanceof BaseTypes.ENUM) {

482482

castKey = `${Utils.addTicks(

483-

Utils.generateEnumName(options.field.Model.getTableName(), options.field.fieldName),

483+

Utils.generateEnumName(options.field.Model.getTableName(), options.field.field),

484484

'"'

485485

) }[]`;

486486

}

Original file line numberDiff line numberDiff line change

@@ -437,6 +437,34 @@ if (dialect.match(/^postgres/)) {

437437

expect(user.permissions).to.deep.equal(['access', 'write']);

438438

});

439439
440+

it('should be able to insert a new record even with a redefined field name', async function() {

441+

const User = this.sequelize.define('UserEnums', {

442+

name: DataTypes.STRING,

443+

type: DataTypes.ENUM('A', 'B', 'C'),

444+

owners: DataTypes.ARRAY(DataTypes.STRING),

445+

specialPermissions: {

446+

type: DataTypes.ARRAY(DataTypes.ENUM([

447+

'access',

448+

'write',

449+

'check',

450+

'delete'

451+

])),

452+

field: 'special_permissions'

453+

}

454+

});

455+
456+

await User.sync({ force: true });

457+
458+

const user = await User.bulkCreate([{

459+

name: 'file.exe',

460+

type: 'C',

461+

owners: ['userA', 'userB'],

462+

specialPermissions: ['access', 'write']

463+

}]);

464+
465+

expect(user.length).to.equal(1);

466+

});

467+
440468

it('should fail when trying to insert foreign element on ARRAY(ENUM)', async function() {

441469

const User = this.sequelize.define('UserEnums', {

442470

name: DataTypes.STRING,