// backend/src/entitlements/entitlement-criteria.spec.ts
import { evaluateRuleCriteria } from '../entitlement-criteria';
describe('evaluateRuleCriteria', () => {
it('should match employee with matching department', () => {
const criteria = [{
attribute: 'department',
operator: 'IN',
values: ['dept-1', 'dept-2'],
}];
const employee = { departmentId: 'dept-1' };
expect(evaluateRuleCriteria(criteria, employee)).toBe(true);
});
it('should reject employee with non-matching department', () => {
const criteria = [{
attribute: 'department',
operator: 'IN',
values: ['dept-1'],
}];
const employee = { departmentId: 'dept-99' };
expect(evaluateRuleCriteria(criteria, employee)).toBe(false);
});
it('should handle empty criteria (match all)', () => {
const employee = { departmentId: 'any' };
expect(evaluateRuleCriteria([], employee)).toBe(true);
});
});