26 lines
1.4 KiB
TypeScript
26 lines
1.4 KiB
TypeScript
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"] }),
|
|
]));
|
|
});
|