@@ -230,3 +230,91 @@ test('ScrollTo works correctly in timeline RTL (native, sync header/workspace)',
230230 height : 580 ,
231231 rtlEnabled : true ,
232232} ) ) ;
233+
234+ [
235+ // startDayHour: 6:00, endDayHour: 18:00
236+ {
237+ offset : 0 ,
238+ targetDate : new Date ( 2021 , 1 , 3 , 4 , 0 ) ,
239+ expectedDate : new Date ( 2021 , 1 , 3 , 6 , 0 ) ,
240+ } ,
241+ {
242+ offset : 0 ,
243+ targetDate : new Date ( 2021 , 1 , 3 , 12 , 0 ) ,
244+ expectedDate : new Date ( 2021 , 1 , 3 , 12 , 0 ) ,
245+ } ,
246+ {
247+ offset : 0 ,
248+ targetDate : new Date ( 2021 , 1 , 3 , 20 , 0 ) ,
249+ expectedDate : new Date ( 2021 , 1 , 3 , 18 , 0 ) ,
250+ } ,
251+
252+ // startDayHour: 18:00, endDayHour: next day 6:00
253+ {
254+ offset : 720 ,
255+ targetDate : new Date ( 2021 , 1 , 3 , 10 , 0 ) ,
256+ expectedDate : new Date ( 2021 , 1 , 3 , 6 , 0 ) ,
257+ } ,
258+ {
259+ offset : 720 ,
260+ targetDate : new Date ( 2021 , 1 , 3 , 20 , 0 ) ,
261+ expectedDate : new Date ( 2021 , 1 , 3 , 20 , 0 ) ,
262+ } ,
263+ {
264+ offset : 720 ,
265+ targetDate : new Date ( 2021 , 1 , 4 , 1 , 0 ) ,
266+ expectedDate : new Date ( 2021 , 1 , 4 , 1 , 0 ) ,
267+ } ,
268+ {
269+ offset : 720 ,
270+ targetDate : new Date ( 2021 , 1 , 4 , 7 , 0 ) ,
271+ expectedDate : new Date ( 2021 , 1 , 4 , 6 , 0 ) ,
272+ } ,
273+
274+ // startDayHour: prev day 18:00, endDayHour: 6:00
275+ {
276+ offset : - 720 ,
277+ targetDate : new Date ( 2021 , 1 , 3 , 16 , 0 ) ,
278+ expectedDate : new Date ( 2021 , 1 , 3 , 18 , 0 ) ,
279+ } ,
280+ {
281+ offset : - 720 ,
282+ targetDate : new Date ( 2021 , 1 , 3 , 21 , 0 ) ,
283+ expectedDate : new Date ( 2021 , 1 , 3 , 21 , 0 ) ,
284+ } ,
285+ {
286+ offset : - 720 ,
287+ targetDate : new Date ( 2021 , 1 , 4 , 3 , 0 ) ,
288+ expectedDate : new Date ( 2021 , 1 , 4 , 3 , 0 ) ,
289+ } ,
290+ {
291+ offset : - 720 ,
292+ targetDate : new Date ( 2021 , 1 , 3 , 7 , 0 ) ,
293+ expectedDate : new Date ( 2021 , 1 , 3 , 6 , 0 ) ,
294+ } ,
295+ ] . forEach ( ( { offset, targetDate, expectedDate } ) => {
296+ test ( `scrollTo should scroll to date with offset=${ offset } , targetDate=${ targetDate . toString ( ) } (T1310544)` , async ( t ) => {
297+ const scheduler = new Scheduler ( '#container' ) ;
298+
299+ await scheduler . scrollTo ( targetDate ) ;
300+
301+ const cellData = await scheduler . getCellDataAtViewportCenter ( ) ;
302+
303+ await t
304+ . expect ( expectedDate . getTime ( ) ) . gte ( cellData . startDate . getTime ( ) )
305+ // eslint-disable-next-line spellcheck/spell-checker
306+ . expect ( expectedDate . getTime ( ) ) . lte ( cellData . endDate . getTime ( ) ) ;
307+ } ) . before ( async ( ) => createScheduler ( {
308+ dataSource : [ ] ,
309+ views : [ {
310+ type : 'timelineWeek' ,
311+ offset,
312+ cellDuration : 60 ,
313+ } ] ,
314+ currentView : 'timelineWeek' ,
315+ currentDate : new Date ( 2021 , 1 , 2 ) ,
316+ startDayHour : 6 ,
317+ endDayHour : 18 ,
318+ height : 580 ,
319+ } ) ) ;
320+ } ) ;
0 commit comments