@@ -193,5 +193,79 @@ define(function (require, exports, module) {
193193 expect ( result ) . toBe ( "now" ) ;
194194 } ) ;
195195 } ) ;
196+
197+ describe ( "dateTimeFromNowFriendly" , function ( ) {
198+ it ( "should use relative time for dates within the last 30 days" , function ( ) {
199+ const testDate = new Date ( Date . now ( ) - 3 * 24 * 60 * 60 * 1000 ) ; // 3 days ago
200+ const result = LocalizationUtils . dateTimeFromNowFriendly ( testDate , "en" ) ;
201+ expect ( result ) . toBe ( "3 days ago" ) ;
202+ } ) ;
203+
204+ it ( "should use relative time for dates in the future within 30 days" , function ( ) {
205+ const testDate = new Date ( Date . now ( ) + 5 * 24 * 60 * 60 * 1000 ) ; // 5 days in the future
206+ const result = LocalizationUtils . dateTimeFromNowFriendly ( testDate , "en" ) ;
207+ expect ( result ) . toBe ( "in 5 days" ) ;
208+ } ) ;
209+
210+ it ( "should use formatted date without year for dates earlier this year" , function ( ) {
211+ const now = new Date ( ) ;
212+ const testDate = new Date ( now . getFullYear ( ) , 1 , 15 ) ; // Feb 15 of current year
213+ const result = LocalizationUtils . dateTimeFromNowFriendly ( testDate , "en" ) ;
214+ expect ( result ) . toBe ( "Feb 15" ) ;
215+ } ) ;
216+
217+ it ( "should use formatted date with year for dates in previous years" , function ( ) {
218+ const testDate = new Date ( 2022 , 6 , 4 ) ; // July 4, 2022
219+ const result = LocalizationUtils . dateTimeFromNowFriendly ( testDate , "en" ) ;
220+ expect ( result ) . toBe ( "Jul 4, 2022" ) ;
221+ } ) ;
222+
223+ it ( "should use formatted date with year for future dates in upcoming years" , function ( ) {
224+ const testDate = new Date ( new Date ( ) . getFullYear ( ) + 2 , 0 , 1 ) ; // Jan 1, two years from now
225+ const result = LocalizationUtils . dateTimeFromNowFriendly ( testDate , "en" ) ;
226+ expect ( result ) . toBe ( "Jan 1, " + ( new Date ( ) . getFullYear ( ) + 2 ) ) ;
227+ } ) ;
228+
229+ it ( "should handle relative time for today" , function ( ) {
230+ const now = new Date ( ) ;
231+ const result = LocalizationUtils . dateTimeFromNowFriendly ( now , "en" ) ;
232+ expect ( result ) . toBe ( "now" ) ;
233+ } ) ;
234+
235+ // Relative time tests
236+ it ( "should use relative time for dates within the last 30 days (de locale)" , function ( ) {
237+ const testDate = new Date ( Date . now ( ) - 3 * 24 * 60 * 60 * 1000 ) ; // 3 days ago
238+ const result = LocalizationUtils . dateTimeFromNowFriendly ( testDate , "de" ) ;
239+ expect ( result ) . toBe ( "vor 3 Tagen" ) ;
240+ } ) ;
241+
242+ it ( "should use relative time for dates in the future within 30 days (de locale)" , function ( ) {
243+ const testDate = new Date ( Date . now ( ) + 5 * 24 * 60 * 60 * 1000 ) ; // 5 days in the future
244+ const result = LocalizationUtils . dateTimeFromNowFriendly ( testDate , "de" ) ;
245+ expect ( result ) . toBe ( "in 5 Tagen" ) ;
246+ } ) ;
247+
248+ // Current year tests
249+ it ( "should use formatted date without year for dates earlier this year (de locale)" , function ( ) {
250+ const now = new Date ( ) ;
251+ const testDate = new Date ( now . getFullYear ( ) , 1 , 15 ) ; // Feb 15 of current year
252+ const result = LocalizationUtils . dateTimeFromNowFriendly ( testDate , "de" ) ;
253+ expect ( result ) . toBe ( "15. Feb." ) ;
254+ } ) ;
255+
256+ // Non-current year tests
257+ it ( "should use formatted date with year for dates in previous years (de locale)" , function ( ) {
258+ const testDate = new Date ( 2022 , 6 , 4 ) ; // July 4, 2022
259+ const result = LocalizationUtils . dateTimeFromNowFriendly ( testDate , "de" ) ;
260+ expect ( result ) . toBe ( "4. Juli 2022" ) ;
261+ } ) ;
262+
263+ it ( "should use formatted date with year for future dates in upcoming years (de locale)" , function ( ) {
264+ const testDate = new Date ( new Date ( ) . getFullYear ( ) + 2 , 0 , 1 ) ; // Jan 1, two years from now
265+ const result = LocalizationUtils . dateTimeFromNowFriendly ( testDate , "de" ) ;
266+ expect ( result ) . toBe ( `1. Jan. ${ new Date ( ) . getFullYear ( ) + 2 } ` ) ;
267+ } ) ;
268+ } ) ;
269+
196270 } ) ;
197271} ) ;
0 commit comments