1- import { dateIsValid , dateIsLastDayOfMonth , dateDifferenceInDays } from "./date" ;
1+ import {
2+ dateIsValid ,
3+ dateIsFirstDayOfMonth ,
4+ dateIsLastDayOfMonth ,
5+ dateIsLeapYear ,
6+ dateIsWeekend ,
7+ dateDifferenceInDays ,
8+ getNextBusinessDate ,
9+ } from "./date" ;
210
311describe ( "date tests" , ( ) => {
412 test . each ( [
@@ -22,6 +30,14 @@ describe("date tests", () => {
2230 expect ( dateIsValid ( date ) ) . toBe ( expected ) ;
2331 } ) ;
2432
33+ test . each ( [
34+ [ new Date ( 2015 , 0 , 1 ) , true ] ,
35+ [ new Date ( 2015 , 1 , 1 ) , true ] ,
36+ [ new Date ( 2015 , 12 , 30 ) , false ] ,
37+ ] ) ( "dateIsFirstDayOfMonth" , ( date , expected ) => {
38+ expect ( dateIsFirstDayOfMonth ( date ) ) . toBe ( expected ) ;
39+ } ) ;
40+
2541 test . each ( [
2642 [ new Date ( 2014 , 12 , 31 ) , true ] ,
2743 [ new Date ( 2014 , 12 , 30 ) , false ] ,
@@ -30,6 +46,34 @@ describe("date tests", () => {
3046 expect ( dateIsLastDayOfMonth ( date ) ) . toBe ( expected ) ;
3147 } ) ;
3248
49+ test . each ( [
50+ [ new Date ( 2000 , 0 , 1 ) , true ] ,
51+ [ new Date ( 2004 , 0 , 1 ) , true ] ,
52+ [ new Date ( 2008 , 0 , 1 ) , true ] ,
53+ [ new Date ( 2009 , 0 , 1 ) , false ] ,
54+ [ new Date ( 2010 , 0 , 1 ) , false ] ,
55+ [ new Date ( 1900 , 0 , 1 ) , false ] ,
56+ [ new Date ( 2100 , 0 , 1 ) , false ] ,
57+ [ new Date ( 2200 , 0 , 1 ) , false ] ,
58+ [ new Date ( 2300 , 0 , 1 ) , false ] ,
59+ [ new Date ( 2400 , 0 , 1 ) , true ] ,
60+ ] ) ( "dateIsLeapYear" , ( date , expected ) => {
61+ expect ( dateIsLeapYear ( date ) ) . toBe ( expected ) ;
62+ } ) ;
63+
64+ test . each ( [
65+ [ new Date ( 2024 , 0 , 1 ) , false ] , // Monday
66+ [ new Date ( 2024 , 0 , 2 ) , false ] , // Tuesday
67+ [ new Date ( 2024 , 0 , 3 ) , false ] , // Wednesday
68+ [ new Date ( 2024 , 0 , 4 ) , false ] , // Thursday
69+ [ new Date ( 2024 , 0 , 5 ) , false ] , // Friday
70+ [ new Date ( 2024 , 0 , 6 ) , true ] , // Saturday
71+ [ new Date ( 2024 , 0 , 7 ) , true ] , // Sunday
72+ [ new Date ( 2024 , 0 , 8 ) , false ] , // Monday
73+ ] ) ( "dateIsWeekend" , ( date , expected ) => {
74+ expect ( dateIsWeekend ( date ) ) . toBe ( expected ) ;
75+ } ) ;
76+
3377 test . each ( [
3478 [ new Date ( 2014 , 3 , 15 ) , new Date ( 2014 , 3 , 15 ) , 0 ] ,
3579 [ new Date ( 2014 , 3 , 15 ) , new Date ( 2014 , 3 , 16 ) , 1 ] ,
@@ -38,7 +82,30 @@ describe("date tests", () => {
3882 [ new Date ( 2014 , 3 , 15 , 23 , 59 ) , new Date ( 2014 , 3 , 16 , 0 , 0 ) , 1 ] ,
3983 [ null as unknown as Date , new Date ( ) , Number . NaN ] ,
4084 [ new Date ( ) , null as unknown as Date , Number . NaN ] ,
85+ [ undefined as unknown as Date , new Date ( ) , Number . NaN ] ,
86+ [ new Date ( ) , undefined as unknown as Date , Number . NaN ] ,
87+ [ 42 as unknown as Date , new Date ( ) , Number . NaN ] ,
88+ [ new Date ( ) , 42 as unknown as Date , Number . NaN ] ,
89+ [ "2014-03-15" as unknown as Date , new Date ( ) , Number . NaN ] ,
90+ [ new Date ( ) , "2014-03-15" as unknown as Date , Number . NaN ] ,
4191 ] ) ( "dateDifferenceInDays" , ( dateFrom , dateTo , expected ) => {
4292 expect ( dateDifferenceInDays ( dateFrom , dateTo ) ) . toBe ( expected ) ;
4393 } ) ;
94+
95+ test . each ( [
96+ [ new Date ( 2024 , 0 , 1 ) , new Date ( 2024 , 0 , 2 ) ] ,
97+ [ new Date ( 2024 , 0 , 2 ) , new Date ( 2024 , 0 , 3 ) ] ,
98+ [ new Date ( 2024 , 0 , 3 ) , new Date ( 2024 , 0 , 4 ) ] ,
99+ [ new Date ( 2024 , 0 , 4 ) , new Date ( 2024 , 0 , 5 ) ] ,
100+ [ new Date ( 2024 , 0 , 5 ) , new Date ( 2024 , 0 , 8 ) ] ,
101+ [ new Date ( 2024 , 0 , 6 ) , new Date ( 2024 , 0 , 8 ) ] ,
102+ [ new Date ( 2024 , 0 , 7 ) , new Date ( 2024 , 0 , 8 ) ] ,
103+ [ new Date ( 2024 , 0 , 8 ) , new Date ( 2024 , 0 , 9 ) ] ,
104+ [ null as unknown as Date , new Date ( Number . NaN ) ] ,
105+ [ undefined as unknown as Date , new Date ( Number . NaN ) ] ,
106+ [ 42 as unknown as Date , new Date ( Number . NaN ) ] ,
107+ [ "test" as unknown as Date , new Date ( Number . NaN ) ] ,
108+ ] ) ( "getNextBusinessDate" , ( date , expected ) => {
109+ expect ( getNextBusinessDate ( date ) . getDate ( ) ) . toBe ( expected . getDate ( ) ) ;
110+ } ) ;
44111} ) ;
0 commit comments