46 lines
1.6 KiB
TypeScript
46 lines
1.6 KiB
TypeScript
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');
|
|
});
|
|
});
|