resources/js/lib/rule-engine.ts protects the description, notes, creditor_name and debtor_name var references from being lowercased during normalization, while AutomationRuleService::normalizeRuleJson only listed description and notes. The two engines had drifted, and nothing stopped them drifting further. Extend the PHP protected set to the same four fields (the superset) and add a shared tests/Fixtures/rule-engine-parity.json driven by both a PHP feature test (via AutomationRuleService::ruleMatches) and a TS vitest suite (via evaluateRulesForNewTransaction), so the same rule + transaction must yield the same match/no-match on both sides. Behaviour-preserving: existing creditor/debtor matching tests already passed, and this closes the divergence for good. |
||
|---|---|---|
| .. | ||
| .pest | ||
| Browser | ||
| Feature | ||
| Fixtures | ||
| Performance | ||
| Support | ||
| Unit | ||
| Pest.php | ||
| TestCase.php | ||
| bootstrap.php | ||