Files
Jyotisha/frontend/tests/ayanamsa.test.ts
T
Jesse_Chen c1e3f32a0f
Independent Staging Quality Gate / validate (push) Successful in 21m34s
Independent Staging Quality Gate / publish (push) Successful in 2m1s
fix: restore ayanamsa state and keep tests hermetic
2026-09-03 23:22:50 +08:00

28 lines
1.1 KiB
TypeScript

import assert from "node:assert/strict";
import test from "node:test";
import {
AYANAMSA_SWITCH_HINT,
AYANAMSA_VALUES,
DEFAULT_AYANAMSA,
isAyanamsaName,
resolveAyanamsa,
} from "../src/lib/ayanamsa.ts";
test("resolveAyanamsa defaults to Raman and accepts the four product values", () => {
assert.equal(DEFAULT_AYANAMSA, "raman");
assert.deepEqual([...AYANAMSA_VALUES], ["raman", "lahiri", "kp", "true_pushya"]);
assert.equal(resolveAyanamsa(), "raman");
assert.equal(resolveAyanamsa(null), "raman");
assert.equal(resolveAyanamsa({}), "raman");
assert.equal(resolveAyanamsa({ ayanamsa: "lahiri" }), "lahiri");
assert.equal(resolveAyanamsa({ ayanamsa: "KP" }), "kp");
assert.equal(resolveAyanamsa({ ayanamsa: "krishnamurti" }), "kp");
assert.equal(resolveAyanamsa({ ayanamsa: "true-pushya" }), "true_pushya");
assert.equal(resolveAyanamsa({ ayanamsa: "fagan" }), "raman");
assert.equal(isAyanamsaName("raman"), true);
assert.equal(isAyanamsaName("sidereal"), false);
assert.match(AYANAMSA_SWITCH_HINT, /咨询、报告、星盘库和每日星语/);
assert.match(AYANAMSA_SWITCH_HINT, /生时校正目前仍固定按 Raman/);
});