import type { CreationOptional, HasManyAddAssociationsMixin, HasManyHasAssociationsMixin, HasManyRemoveAssociationsMixin, HasManySetAssociationsMixin, InferAttributes, InferCreationAttributes, } from '@sequelize/core'; import { DataTypes, Model } from '@sequelize/core'; import { AllowNull, Attribute, HasMany, NotNull } from '@sequelize/core/decorators-legacy'; import { expect } from 'chai'; import { beforeAll2, createMultiTransactionalTestSequelizeInstance, sequelize, setResetMode, } from '../support'; const dialect = sequelize.dialect; describe('hasMany Mixins', () => { setResetMode('destroy'); const vars = beforeAll2(async () => { class Article extends Model, InferCreationAttributes
> { declare id: CreationOptional; @HasMany(() => Label, 'articleId') declare labels?: Label[]; declare setLabels: HasManySetAssociationsMixin; declare removeLabels: HasManyRemoveAssociationsMixin; declare hasLabels: HasManyHasAssociationsMixin; declare addLabels: HasManyAddAssociationsMixin; @HasMany(() => NonNullLabel, 'articleId') declare nonNullLabels?: NonNullLabel[]; declare setNonNullLabels: HasManySetAssociationsMixin; declare removeNonNullLabels: HasManyRemoveAssociationsMixin; } class Label extends Model, InferCreationAttributes