@@ -17,6 +17,7 @@ import {
1717} from '../../../utils/testHelpers' ;
1818import { TimeComparison } from './' ;
1919import * as urlHelpers from '../../shared/Links/url_helpers' ;
20+ import moment from 'moment' ;
2021
2122function getWrapper ( params ?: IUrlParams ) {
2223 return ( { children } : { children ?: ReactNode } ) => {
@@ -31,6 +32,10 @@ function getWrapper(params?: IUrlParams) {
3132}
3233
3334describe ( 'TimeComparison' , ( ) => {
35+ beforeAll ( ( ) => {
36+ moment . tz . setDefault ( 'Europe/Amsterdam' ) ;
37+ } ) ;
38+ afterAll ( ( ) => moment . tz . setDefault ( '' ) ) ;
3439 const spy = jest . spyOn ( urlHelpers , 'replace' ) ;
3540 beforeEach ( ( ) => {
3641 jest . resetAllMocks ( ) ;
@@ -40,6 +45,7 @@ describe('TimeComparison', () => {
4045 const Wrapper = getWrapper ( {
4146 start : '2021-01-28T14:45:00.000Z' ,
4247 end : '2021-01-28T15:00:00.000Z' ,
48+ rangeTo : 'now' ,
4349 } ) ;
4450 render ( < TimeComparison /> , {
4551 wrapper : Wrapper ,
@@ -57,6 +63,7 @@ describe('TimeComparison', () => {
5763 end : '2021-01-28T15:00:00.000Z' ,
5864 comparisonEnabled : true ,
5965 comparisonType : 'yesterday' ,
66+ rangeTo : 'now' ,
6067 } ) ;
6168 const component = render ( < TimeComparison /> , {
6269 wrapper : Wrapper ,
@@ -67,13 +74,64 @@ describe('TimeComparison', () => {
6774 . selectedIndex
6875 ) . toEqual ( 0 ) ;
6976 } ) ;
77+
78+ it ( 'enables yesterday option when date difference is equal to 24 hours' , ( ) => {
79+ const Wrapper = getWrapper ( {
80+ start : '2021-01-28T10:00:00.000Z' ,
81+ end : '2021-01-29T10:00:00.000Z' ,
82+ comparisonEnabled : true ,
83+ comparisonType : 'yesterday' ,
84+ rangeTo : 'now' ,
85+ } ) ;
86+ const component = render ( < TimeComparison /> , {
87+ wrapper : Wrapper ,
88+ } ) ;
89+ expectTextsInDocument ( component , [ 'Yesterday' , 'A week ago' ] ) ;
90+ expect (
91+ ( component . getByTestId ( 'comparisonSelect' ) as HTMLSelectElement )
92+ . selectedIndex
93+ ) . toEqual ( 0 ) ;
94+ } ) ;
95+
96+ it ( 'selects previous period when rangeTo is different than now' , ( ) => {
97+ const Wrapper = getWrapper ( {
98+ start : '2021-01-28T10:00:00.000Z' ,
99+ end : '2021-01-29T10:00:00.000Z' ,
100+ comparisonEnabled : true ,
101+ comparisonType : 'previousPeriod' ,
102+ rangeTo : 'now-15m' ,
103+ } ) ;
104+ const component = render ( < TimeComparison /> , {
105+ wrapper : Wrapper ,
106+ } ) ;
107+ expectTextsInDocument ( component , [ '28/01 11:00 - 29/01 11:00' ] ) ;
108+ expect (
109+ ( component . getByTestId ( 'comparisonSelect' ) as HTMLSelectElement )
110+ . selectedIndex
111+ ) . toEqual ( 0 ) ;
112+ } ) ;
70113 } ) ;
71114
72115 describe ( 'Time range is between 24 hours - 1 week' , ( ) => {
116+ it ( "doesn't show yesterday option when date difference is greater than 24 hours" , ( ) => {
117+ const Wrapper = getWrapper ( {
118+ start : '2021-01-28T10:00:00.000Z' ,
119+ end : '2021-01-29T11:00:00.000Z' ,
120+ comparisonEnabled : true ,
121+ comparisonType : 'week' ,
122+ rangeTo : 'now' ,
123+ } ) ;
124+ const component = render ( < TimeComparison /> , {
125+ wrapper : Wrapper ,
126+ } ) ;
127+ expectTextsNotInDocument ( component , [ 'Yesterday' ] ) ;
128+ expectTextsInDocument ( component , [ 'A week ago' ] ) ;
129+ } ) ;
73130 it ( 'sets default values' , ( ) => {
74131 const Wrapper = getWrapper ( {
75132 start : '2021-01-26T15:00:00.000Z' ,
76133 end : '2021-01-28T15:00:00.000Z' ,
134+ rangeTo : 'now' ,
77135 } ) ;
78136 render ( < TimeComparison /> , {
79137 wrapper : Wrapper ,
@@ -91,6 +149,7 @@ describe('TimeComparison', () => {
91149 end : '2021-01-28T15:00:00.000Z' ,
92150 comparisonEnabled : true ,
93151 comparisonType : 'week' ,
152+ rangeTo : 'now' ,
94153 } ) ;
95154 const component = render ( < TimeComparison /> , {
96155 wrapper : Wrapper ,
@@ -102,6 +161,24 @@ describe('TimeComparison', () => {
102161 . selectedIndex
103162 ) . toEqual ( 0 ) ;
104163 } ) ;
164+
165+ it ( 'selects previous period when rangeTo is different than now' , ( ) => {
166+ const Wrapper = getWrapper ( {
167+ start : '2021-01-26T15:00:00.000Z' ,
168+ end : '2021-01-28T15:00:00.000Z' ,
169+ comparisonEnabled : true ,
170+ comparisonType : 'previousPeriod' ,
171+ rangeTo : '2021-01-28T15:00:00.000Z' ,
172+ } ) ;
173+ const component = render ( < TimeComparison /> , {
174+ wrapper : Wrapper ,
175+ } ) ;
176+ expectTextsInDocument ( component , [ '26/01 16:00 - 28/01 16:00' ] ) ;
177+ expect (
178+ ( component . getByTestId ( 'comparisonSelect' ) as HTMLSelectElement )
179+ . selectedIndex
180+ ) . toEqual ( 0 ) ;
181+ } ) ;
105182 } ) ;
106183
107184 describe ( 'Time range is greater than 7 days' , ( ) => {
@@ -111,12 +188,13 @@ describe('TimeComparison', () => {
111188 end : '2021-01-28T15:00:00.000Z' ,
112189 comparisonEnabled : true ,
113190 comparisonType : 'previousPeriod' ,
191+ rangeTo : 'now' ,
114192 } ) ;
115193 const component = render ( < TimeComparison /> , {
116194 wrapper : Wrapper ,
117195 } ) ;
118196 expect ( spy ) . not . toHaveBeenCalled ( ) ;
119- expectTextsInDocument ( component , [ '20/01 - 28/01' ] ) ;
197+ expectTextsInDocument ( component , [ '20/01 16:00 - 28/01 16:00 ' ] ) ;
120198 expect (
121199 ( component . getByTestId ( 'comparisonSelect' ) as HTMLSelectElement )
122200 . selectedIndex
@@ -129,12 +207,13 @@ describe('TimeComparison', () => {
129207 end : '2021-01-28T15:00:00.000Z' ,
130208 comparisonEnabled : true ,
131209 comparisonType : 'previousPeriod' ,
210+ rangeTo : 'now' ,
132211 } ) ;
133212 const component = render ( < TimeComparison /> , {
134213 wrapper : Wrapper ,
135214 } ) ;
136215 expect ( spy ) . not . toHaveBeenCalled ( ) ;
137- expectTextsInDocument ( component , [ '20/12/20 - 28/01/21' ] ) ;
216+ expectTextsInDocument ( component , [ '20/12/20 16:00 - 28/01/21 16:00 ' ] ) ;
138217 expect (
139218 ( component . getByTestId ( 'comparisonSelect' ) as HTMLSelectElement )
140219 . selectedIndex
0 commit comments