import { DataTypes, Sequelize } from "sequelize"; import initQuote, { Quote_Model } from "./quote.model"; import initItems, { QuoteItem_Model } from "./quoteItem.model"; import initChapters, { QuoteChapter_Model } from "./quoteChapter.model"; it("registers chapter metadata, quote associations and legacy defaults without connecting", () => { const connection = new Sequelize("metadata_test", "", "", { dialect: "mysql", logging: false }); connection.define("Dealer_Model", { id: { type: DataTypes.UUID, primaryKey: true } }); initQuote(connection); initItems(connection); initChapters(connection); Quote_Model.associate(connection); QuoteItem_Model.associate(connection); QuoteChapter_Model.associate(connection); expect(QuoteChapter_Model.primaryKeyAttributes).toEqual(["quote_id", "chapter_id"]); expect(Quote_Model.associations.chapters.target).toBe(QuoteChapter_Model); expect(QuoteChapter_Model.associations.quote.target).toBe(Quote_Model); expect(Quote_Model.getAttributes().show_chapter_line_amounts.defaultValue).toBe(true); expect(QuoteItem_Model.getAttributes().chapter_id.allowNull).toBe(true); expect(QuoteItem_Model.getAttributes().chapter_id.defaultValue).toBeNull(); expect(QuoteChapter_Model.options.timestamps).toBe(false); expect(QuoteChapter_Model.options.indexes).toEqual(expect.arrayContaining([ expect.objectContaining({ fields: ["quote_id", "position"] }), ])); });