File size: 4,763 Bytes
cf86710 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | import { addToRange } from "./addToRange";
describe("addToRange", () => {
test("add a date to an undefined range", () => {
const date = new Date(2022, 0, 1);
const range = addToRange(date, undefined);
expect(range).toEqual({ from: date, to: date });
});
test("add a date to an empty range", () => {
const date = new Date(2022, 0, 1);
const range = addToRange(date, { from: undefined, to: undefined });
expect(range).toEqual({ from: date, to: date });
});
test("add a date to an incomplete range with same start date and min = 0", () => {
const date = new Date(2022, 0, 1);
const range = addToRange(date, { from: date, to: undefined });
expect(range).toEqual({ from: date, to: date });
});
test("add a date to an incomplete range with same start date and min > 0", () => {
const date = new Date(2022, 0, 1);
const range = addToRange(date, { from: date, to: undefined }, 1, 0, false);
expect(range).toEqual(undefined);
});
test("add a date to an incomplete range with same start date and min > 0 and required", () => {
const date = new Date(2022, 0, 1);
const range = addToRange(date, { from: date, to: undefined }, 1, 0, true);
expect(range).toEqual({ from: date, to: undefined });
});
test("add a date to an incomplete range with earlier date", () => {
const from = new Date(2022, 0, 1);
const earlierDate = new Date(2021, 11, 31);
const range = addToRange(earlierDate, { from: from, to: undefined });
expect(range).toEqual({ from: earlierDate, to: from });
});
test("add a date to an incomplete range with later date", () => {
const from = new Date(2022, 0, 1);
const date = new Date(2022, 0, 2);
const range = addToRange(date, { from: from, to: undefined });
expect(range).toEqual({ from: from, to: date });
});
test("add a date to a complete range with same start and end date", () => {
const date = new Date(2022, 0, 1);
const from = date;
const to = date;
const range = addToRange(date, { from, to }, 0, 0, false);
expect(range).toEqual(undefined);
});
test("add a date to a complete range with same start date", () => {
const date = new Date(2022, 0, 1);
const to = new Date(2022, 0, 2);
const range = addToRange(date, { from: date, to: to });
expect(range).toEqual({ from: date, to: date });
});
test("add a date to a complete range with same end date", () => {
const date = new Date(2022, 0, 2);
const from = new Date(2022, 0, 1);
const range = addToRange(date, { from: from, to: date });
expect(range).toEqual({ from: date, to: date });
});
test("add a date when inside the range", () => {
const date = new Date(2022, 0, 1);
const from = new Date(2021, 11, 31);
const to = new Date(2022, 0, 2);
const range = addToRange(date, { from, to });
expect(range).toEqual({ from, to: date });
});
test("add an earlier date to a complete range", () => {
const from = new Date(2022, 0, 1);
const to = new Date(2022, 0, 2);
const date = new Date(2021, 11, 31);
const range = addToRange(date, { from, to });
expect(range).toEqual({ from: date, to: to });
});
test("add a later date to a complete range", () => {
const date = new Date(2022, 0, 2);
const from = new Date(2021, 11, 31);
const to = new Date(2022, 0, 1);
const range = addToRange(date, { from, to });
expect(range).toEqual({ from: from, to: date });
});
test("add a date with min > 0", () => {
const date = new Date(2022, 0, 1);
const range = addToRange(date, undefined, 1, 0, false);
expect(range).toEqual({ from: date, to: undefined });
});
test("add a date with max > 0", () => {
const date = new Date(2022, 0, 1);
const range = addToRange(date, undefined, 0, 1, false);
expect(range).toEqual({ from: date, to: date });
});
test("add a date with required set to true", () => {
const date = new Date(2022, 0, 1);
const range = addToRange(date, undefined, 0, 0, true);
expect(range).toEqual({ from: date, to: date });
});
test("when exceeding max, set the start of the range", () => {
const from = new Date(2022, 0, 1);
const to = new Date(2022, 0, 2);
const date = new Date(2022, 0, 4);
const max = 2;
const range = addToRange(date, { from, to }, 0, max, false);
expect(range).toEqual({ from: date, to: undefined });
});
test("when below min, set the start of the range", () => {
const from = new Date(2021, 11, 20);
const to = new Date(2022, 0, 2);
const date = new Date(2021, 11, 21);
const min = 5;
const range = addToRange(date, { from, to }, min, 0, false);
expect(range).toEqual({ from: date, to: undefined });
});
});
|