import { assert } from "chai"; import { describe, it, beforeEach, afterEach } from "node:test"; import * as m from "../index"; import * as config from "./config"; describe("ChartUser", 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", count: 10, items: ["user1@example.com", "user2@example.com"], }; const item = new models.ChartUser(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.count, 10); assert.equal(sut.items.length, 2); }); 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"), count: 0, items: [], }; const item = new models.ChartUser(testItem); const sut = await item.save(); assert.equal(sut.agencyId, ""); assert.equal(sut.agencyName, ""); assert.equal(sut.agencyCode, ""); }); });