devextreme
Version:
JavaScript/TypeScript Component Suite for Responsive Web Development
118 lines (117 loc) • 3.8 kB
JavaScript
/**
* DevExtreme (esm/__internal/scheduler/view_model/common/split_interval_by_days.test.js)
* Version: 25.2.5
* Build date: Fri Feb 20 2026
*
* Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
import {
describe,
expect,
it
} from "@jest/globals";
import {
splitIntervalByDay
} from "./split_interval_by_days";
describe("splitIntervalByDay", (() => {
it("should return one interval for one day", (() => {
expect(splitIntervalByDay({
startDayHour: 0,
endDayHour: 24,
min: Date.UTC(2e3, 0, 10),
max: Date.UTC(2e3, 0, 11),
skippedDays: []
})).toEqual([{
min: Date.UTC(2e3, 0, 10),
max: Date.UTC(2e3, 0, 11)
}])
}));
it("should return day by day intervals", (() => {
expect(splitIntervalByDay({
startDayHour: 0,
endDayHour: 24,
min: Date.UTC(2e3, 0, 10),
max: Date.UTC(2e3, 0, 13),
skippedDays: []
})).toEqual([{
min: Date.UTC(2e3, 0, 10),
max: Date.UTC(2e3, 0, 11)
}, {
min: Date.UTC(2e3, 0, 11),
max: Date.UTC(2e3, 0, 12)
}, {
min: Date.UTC(2e3, 0, 12),
max: Date.UTC(2e3, 0, 13)
}])
}));
it("should return day by day intervals for [3, 13]", (() => {
expect(splitIntervalByDay({
startDayHour: 3,
endDayHour: 13,
min: Date.UTC(2e3, 0, 10),
max: Date.UTC(2e3, 0, 13),
skippedDays: []
})).toEqual([{
min: Date.UTC(2e3, 0, 10, 3),
max: Date.UTC(2e3, 0, 10, 13)
}, {
min: Date.UTC(2e3, 0, 11, 3),
max: Date.UTC(2e3, 0, 11, 13)
}, {
min: Date.UTC(2e3, 0, 12, 3),
max: Date.UTC(2e3, 0, 12, 13)
}])
}));
it("should return day by day intervals for [0.1, 23.9]", (() => {
expect(splitIntervalByDay({
startDayHour: .1,
endDayHour: 23.9,
min: Date.UTC(2e3, 0, 10, 0, 6),
max: Date.UTC(2e3, 0, 13, 23, 56),
skippedDays: []
})).toEqual([{
min: Date.UTC(2e3, 0, 10, 0, 6),
max: Date.UTC(2e3, 0, 10, 23, 54)
}, {
min: Date.UTC(2e3, 0, 11, 0, 6),
max: Date.UTC(2e3, 0, 11, 23, 54)
}, {
min: Date.UTC(2e3, 0, 12, 0, 6),
max: Date.UTC(2e3, 0, 12, 23, 54)
}, {
min: Date.UTC(2e3, 0, 13, 0, 6),
max: Date.UTC(2e3, 0, 13, 23, 54)
}])
}));
it("should return zero intervals for interacted hours", (() => {
expect(splitIntervalByDay({
startDayHour: 20,
endDayHour: 10,
min: Date.UTC(2e3, 0, 10, 10),
max: Date.UTC(2e3, 0, 15, 5),
skippedDays: []
})).toEqual([])
}));
it("should return intervals without skipped days", (() => {
expect(splitIntervalByDay({
startDayHour: 0,
endDayHour: 24,
min: Date.UTC(2e3, 2, 1),
max: Date.UTC(2e3, 2, 7),
skippedDays: [0, 6]
})).toEqual([{
min: Date.UTC(2e3, 2, 1),
max: Date.UTC(2e3, 2, 2)
}, {
min: Date.UTC(2e3, 2, 2),
max: Date.UTC(2e3, 2, 3)
}, {
min: Date.UTC(2e3, 2, 3),
max: Date.UTC(2e3, 2, 4)
}, {
min: Date.UTC(2e3, 2, 6),
max: Date.UTC(2e3, 2, 7)
}])
}))
}));