"use strict"; /** * CJS test suite for temporal-hijri. * * Verifies that the CommonJS build loads and functions correctly via require(). */ const { describe, it } = require("node:test"); const assert = require("node:assert/strict"); const { Temporal } = require("@js-temporal/polyfill"); const { UaqCalendar, FcnaCalendar, uaqCalendar, fcnaCalendar } = require("./dist/index.cjs"); const isoRamadan = Temporal.PlainDate.from("2023-03-23"); // ── Class and singleton exports ─────────────────────────────────────────────── describe("CJS class exports", () => { it("UaqCalendar class loads via require", () => { assert(typeof UaqCalendar === "function", "UaqCalendar should be a constructor"); const cal = new UaqCalendar(); assert.equal(cal.id, "hijri-uaq"); }); it("FcnaCalendar class loads via require", () => { assert(typeof FcnaCalendar === "function", "FcnaCalendar should be a constructor"); const cal = new FcnaCalendar(); assert.equal(cal.id, "hijri-fcna"); }); it("uaqCalendar singleton id", () => { assert.equal(uaqCalendar.id, "hijri-uaq"); }); it("fcnaCalendar singleton id", () => { assert.equal(fcnaCalendar.id, "hijri-fcna"); }); }); // ── Field accessors ─────────────────────────────────────────────────────────── describe("CJS field accessors", () => { it("uaqCalendar.year(2023-03-23) = 1444", () => { assert.equal(uaqCalendar.year(isoRamadan), 1444); }); it("uaqCalendar.month(2023-03-23) = 9", () => { assert.equal(uaqCalendar.month(isoRamadan), 9); }); it("uaqCalendar.day(2023-03-23) = 1", () => { assert.equal(uaqCalendar.day(isoRamadan), 1); }); }); // ── dateFromFields ───────────────────────────────────────────────────────────── describe("CJS dateFromFields", () => { it("uaqCalendar.dateFromFields({year:1444, month:9, day:1}) = 2023-03-23", () => { const result = uaqCalendar.dateFromFields({ year: 1444, month: 9, day: 1 }); assert.equal(result.toString(), "2023-03-23"); }); }); // ── fields() ────────────────────────────────────────────────────────────────── describe("CJS fields()", () => { it("returns the input array unchanged", () => { assert.deepEqual(uaqCalendar.fields(["year", "month", "day"]), ["year", "month", "day"]); }); });