From 5f125b409d2844216b7cf9120343d2009057860e Mon Sep 17 00:00:00 2001 From: Tony Valle Date: Fri, 9 Jan 2026 13:54:23 +0100 Subject: [PATCH 1/2] fix: add support for `d2:minutesBetween` --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index ee34184afb..dbdecb670f 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "@dhis2/app-runtime": "^3.14.5", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/d2-ui-rich-text": "^7.4.0", - "@dhis2/rule-engine": "^3.4.1", + "@dhis2/rule-engine": "^3.4.2", "@dhis2/ui": "^10.9.0", "@emotion/css": "^11.13.5", "@emotion/react": "^11.14.0", diff --git a/yarn.lock b/yarn.lock index 4eae6ff3ee..170605fe87 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2494,10 +2494,10 @@ workbox-routing "^7.1.0" workbox-strategies "^7.1.0" -"@dhis2/rule-engine@^3.4.1": - version "3.4.1" - resolved "https://registry.yarnpkg.com/@dhis2/rule-engine/-/rule-engine-3.4.1.tgz#5e680c31bc883ffa3dea4d9c5d7daa64ae25b2c8" - integrity sha512-eLWw0JpnjX3QfVoB6dV2ulE30FKz6QxXln5dWCeFJI8tuCtFXFKBCEhSsw9Y32PXurPJ4FjxPOyu5CjKQmtQwg== +"@dhis2/rule-engine@^3.4.2": + version "3.4.2" + resolved "https://registry.yarnpkg.com/@dhis2/rule-engine/-/rule-engine-3.4.2.tgz#55fe87fdccd265a224a0f12c9bf3026fac43f9f5" + integrity sha512-Ie/1ZuuTe8mtyjwaZ3QqfVmy3OOi9zX5QxE42DIk1FIDTES1N5biFt/2K1FdwQ4v/hegACPgEPIPKkn1/wfNWA== dependencies: "@js-joda/core" "3.2.0" From 3690e9c624d956b4f1a09548aa2dda0d4e21a089 Mon Sep 17 00:00:00 2001 From: Tony Valle Date: Fri, 9 Jan 2026 14:51:32 +0100 Subject: [PATCH 2/2] test: add unit test --- .../rulesEffectsForTrackerProgram.test.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/core_modules/capture-core/rules/__tests__/rulesEffectsForTrackerProgram.test.js b/src/core_modules/capture-core/rules/__tests__/rulesEffectsForTrackerProgram.test.js index 7d1c903f72..b9dacd5b8d 100644 --- a/src/core_modules/capture-core/rules/__tests__/rulesEffectsForTrackerProgram.test.js +++ b/src/core_modules/capture-core/rules/__tests__/rulesEffectsForTrackerProgram.test.js @@ -65,6 +65,13 @@ test('expressions with d2Functions in tracker program', () => { location: 'feedback', programRuleActionType: 'DISPLAYTEXT', }, + { + id: 'gcp4CRVqa2B', + displayContent: "d2:minutesBetween('2026-01-26', '2026-01-27') = ", + data: "d2:minutesBetween('2026-01-26', '2026-01-27')", + location: 'feedback', + programRuleActionType: 'DISPLAYTEXT', + }, { id: 'Foc3PhzoAVr', displayContent: 'd2:count(#{undefinedVariable}) = ', @@ -528,6 +535,14 @@ test('expressions with d2Functions in tracker program', () => { message: "d2:validatePattern('d2:daysBetween( '2020-01-28', V{enrollment_date})', 108) false", }, }, + { + type: 'DISPLAYTEXT', + id: 'feedback', + displayText: { + id: 'gcp4CRVqa2B', + message: "d2:minutesBetween('2026-01-26', '2026-01-27') = 1440" + } + }, { type: 'DISPLAYTEXT', id: 'feedback',