import { describe, it } from 'node:test'; import assert from 'node:assert/strict'; import { activityPriorWhere, dealPriorWhere, listPriorLens, personPriorWhere, } from '../src/common/prior-archive'; const now = new Date('2026-10-15T08:00:00.000Z'); describe('بایگانی اطلاعات قبل', () => { it('بدون مجوز فیلتر نمی‌گذارد', () => { assert.deepEqual(personPriorWhere('off'), {}); assert.deepEqual(dealPriorWhere(undefined, now), {}); }); it('کار جاری شخص قبلی را کنار می‌گذارد و معاملهٔ بازِ موعددار را نگه می‌دارد', () => { assert.deepEqual(personPriorWhere('current'), { importSource: { not: 'didar' } }); const where = dealPriorWhere('current', now); assert.equal(where.OR?.length, 2); assert.deepEqual(where.OR?.[1], { importSource: 'didar', status: 'open', expectedCloseAt: { gt: now }, }); }); it('بایگانی فقط قبلی‌ها را می‌آورد و استثنای باز را برمی‌دارد', () => { const where = activityPriorWhere('archive', now); assert.equal(where.importSource, 'didar'); assert.deepEqual(where.NOT, { importSource: 'didar', status: 'open', dueAt: { gt: now }, }); }); it('جستجوی کار جاری شخص قبلی را پیدا می‌کند', () => { assert.equal(listPriorLens('current', 'علی', false), 'off'); assert.equal(listPriorLens('current', ' ', false), 'current'); assert.equal(listPriorLens('archive', 'علی', false), 'archive'); assert.equal(listPriorLens('current', '', true), 'off'); }); });