import { assert } from "chai"; import { describe, it, beforeEach, afterEach } from "node:test"; import * as m from "../index"; import * as config from "./config"; describe("ChartManagedIncident", function() { let models: m.BackendModels, mongoose: m.MongooseModule; beforeEach(async function() { const c = await m.connect(config.url); models = c.models; mongoose = c.mongoose; }); afterEach(async function() { await mongoose.disconnect(); }); it("is saved", async function() { const departmentId = new mongoose.Types.ObjectId().toString(); const testItem: Partial = { departmentId, dateAt: new Date("2024-06-15T00:00:00.000Z"), agencyId: "agency-001", agencyName: "Test Agency", agencyCode: "TA", userId: "user-123", count: 3, items: [ { item: "managed1", dateAt: new Date("2024-06-15T01:00:00.000Z") }, ], }; const item = new models.ChartManagedIncident(testItem); const sut = await item.save(); assert.isNotNull(sut._id); assert.equal(sut.departmentId, departmentId); assert.equal(sut.agencyId, "agency-001"); assert.equal(sut.agencyName, "Test Agency"); assert.equal(sut.agencyCode, "TA"); assert.equal(sut.userId, "user-123"); assert.equal(sut.count, 3); assert.equal(sut.items.length, 1); assert.equal(sut.items[0]!.item, "managed1"); }); it("defaults agencyName and agencyCode to empty strings", async function() { const departmentId = new mongoose.Types.ObjectId().toString(); const testItem: Partial = { departmentId, dateAt: new Date("2024-06-15T00:00:00.000Z"), userId: "user-456", count: 0, items: [], }; const item = new models.ChartManagedIncident(testItem); const sut = await item.save(); assert.equal(sut.agencyId, ""); assert.equal(sut.agencyName, ""); assert.equal(sut.agencyCode, ""); }); });