feat(automations): multi-option form-field conditions (all / any / none / exact)
This commit is contained in:
@@ -2,6 +2,7 @@ import { describe, it } from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import {
|
||||
automationUsesAdvanced,
|
||||
formConditionValues,
|
||||
matchFormFieldCondition,
|
||||
splitAutomationBranches,
|
||||
planAutomationActions,
|
||||
@@ -66,6 +67,21 @@ describe('اتوماسیون شاخهای فرم', () => {
|
||||
assert.equal(matchFormFieldCondition('is_empty', '', ''), true);
|
||||
});
|
||||
|
||||
it('شرط با چند گزینهٔ انتخابی', () => {
|
||||
const many = ['آزاد', 'کارگر'];
|
||||
assert.equal(matchFormFieldCondition('contains', 'آزاد, کارگر, کارمند دولتی', many), true);
|
||||
assert.equal(matchFormFieldCondition('contains', 'آزاد', many), false);
|
||||
assert.equal(matchFormFieldCondition('contains_any', 'کارگر', many), true);
|
||||
assert.equal(matchFormFieldCondition('contains_any', 'کارمند دولتی', many), false);
|
||||
assert.equal(matchFormFieldCondition('not_contains', 'کارمند دولتی', many), true);
|
||||
assert.equal(matchFormFieldCondition('not_contains', 'کارگر', many), false);
|
||||
assert.equal(matchFormFieldCondition('eq', 'کارگر, آزاد', many), true);
|
||||
assert.equal(matchFormFieldCondition('eq', 'آزاد, کارگر, کارمند دولتی', many), false);
|
||||
assert.equal(matchFormFieldCondition('neq', 'آزاد', many), true);
|
||||
assert.deepEqual(formConditionValues({ conditionValue: 'آزاد', conditionValues: [] }), ['آزاد']);
|
||||
assert.deepEqual(formConditionValues({ conditionValue: 'x', conditionValues: many }), many);
|
||||
});
|
||||
|
||||
it('هر گزینه فقط شاخهٔ خودش را اجرا میکند', () => {
|
||||
assert.deepEqual(run(BSJ, 'بنکداری'), ['a1']);
|
||||
assert.deepEqual(run(BSJ, 'آنلاین شاپ'), ['a2']);
|
||||
|
||||
Reference in New Issue
Block a user