feat: import class sessions, attendance, and payments from JSON

Match students by name when national ID or phone is missing, parse Jalali dates, and allow sessions without a professor.
This commit is contained in:
2026-08-16 07:04:16 +03:30
parent 72be01fee3
commit 3348ca5798
7 changed files with 445 additions and 37 deletions
+18
View File
@@ -0,0 +1,18 @@
'use strict';
const { describe, it } = require('node:test');
const assert = require('node:assert/strict');
const { jalaliToGregorian, parseJalaliDate, parseImportDate } = require('./jalaliDate');
describe('jalaliDate', () => {
it('converts تکسا attendance dates to Gregorian', () => {
assert.equal(jalaliToGregorian(1405, 4, 23), '2026-07-14');
assert.equal(parseJalaliDate('1405.4.28'), '2026-07-19');
assert.equal(parseJalaliDate('1405/5/20'), '2026-08-11');
});
it('parses ISO and jalali values into UTC midnight dates', () => {
assert.equal(parseImportDate('2026-07-14').toISOString(), '2026-07-14T00:00:00.000Z');
assert.equal(parseImportDate('1405.5.12').toISOString(), '2026-08-03T00:00:00.000Z');
});
});