Cleanup - unused files / unused exports / duplicate exports
[ProtonMail-WebClient.git] / packages / shared / test / calendar / rrule / rruleSubset.spec.js
blobe698770a714a9e52c6d85ca6995309113e278b5f
1 import { FREQUENCY } from '../../../lib/calendar/constants';
2 import { getIsRruleSubset } from '../../../lib/calendar/recurrence/rruleSubset';
4 const getTest = (a, b, result) => ({
5     a,
6     b,
7     result,
8 });
10 describe('rrule subset', () => {
11     const dummyVevent = {
12         dtstart: {
13             value: { year: 2021, month: 1, day: 6, hours: 12, minutes: 0, seconds: 0, isUTC: false },
14             parameters: { tzid: 'America/New_York' },
15         },
16     };
17     const dummyUntil = {
18         value: { year: 2021, month: 1, day: 10, hours: 23, minutes: 59, seconds: 59, isUTC: false },
19         parameters: { tzid: 'America/New_York' },
20     };
21     [
22         getTest(
23             { ...dummyVevent, rrule: { value: { freq: FREQUENCY.DAILY, count: 10 } } },
24             { ...dummyVevent, rrule: { value: { freq: FREQUENCY.DAILY } } },
25             true
26         ),
27         getTest(
28             { ...dummyVevent, rrule: { value: { freq: FREQUENCY.DAILY, interval: 2 } } },
29             { ...dummyVevent, rrule: { value: { freq: FREQUENCY.DAILY } } },
30             true
31         ),
32         getTest(
33             { ...dummyVevent, rrule: { value: { freq: FREQUENCY.DAILY, interval: 2, until: dummyUntil } } },
34             { ...dummyVevent, rrule: { value: { freq: FREQUENCY.DAILY, until: dummyUntil } } },
35             true
36         ),
37         getTest(
38             {
39                 ...dummyVevent,
40                 rrule: { value: { freq: FREQUENCY.WEEKLY, byday: ['MO', 'TU', 'WE', 'TH', 'FR', 'SA', 'SU'] } },
41             },
42             { ...dummyVevent, rrule: { value: { freq: FREQUENCY.DAILY } } },
43             true
44         ),
45         getTest(
46             { ...dummyVevent, rrule: { value: { freq: FREQUENCY.WEEKLY, byday: ['WE', 'FR', 'SU'], count: 3 } } },
47             { ...dummyVevent, rrule: { value: { freq: FREQUENCY.DAILY, interval: 2, count: 3 } } },
48             true
49         ),
50         getTest(
51             { ...dummyVevent, rrule: { value: { freq: FREQUENCY.DAILY } } },
52             { ...dummyVevent, rrule: { value: { freq: FREQUENCY.DAILY, count: 10 } } },
53             false
54         ),
55         getTest(
56             { ...dummyVevent, rrule: { value: { freq: FREQUENCY.DAILY, interval: 2 } } },
57             { ...dummyVevent, rrule: { value: { freq: FREQUENCY.DAILY, interval: 3 } } },
58             false
59         ),
60         getTest(
61             { ...dummyVevent, rrule: { value: { freq: FREQUENCY.MONTHLY, byday: 'WE', bysetpos: 1 } } },
62             { ...dummyVevent, rrule: { value: { freq: FREQUENCY.MONTHLY } } },
63             false
64         ),
65         getTest(
66             {
67                 dtstart: {
68                     value: { year: 2020, month: 1, day: 6, hours: 12, minutes: 0, seconds: 0, isUTC: false },
69                     parameters: { tzid: 'America/New_York' },
70                 },
71                 rrule: {
72                     value: {
73                         freq: FREQUENCY.WEEKLY,
74                         interval: 2,
75                         byday: ['MO', 'TU', 'WE', 'TH', 'FR', 'SA', 'SU'],
76                         wkst: 'SU',
77                     },
78                 },
79             },
80             {
81                 dtstart: {
82                     value: { year: 2020, month: 1, day: 6, hours: 12, minutes: 0, seconds: 0, isUTC: false },
83                     parameters: { tzid: 'America/New_York' },
84                 },
85                 rrule: {
86                     value: {
87                         freq: FREQUENCY.WEEKLY,
88                         interval: 2,
89                         byday: ['MO', 'TU', 'WE', 'TH', 'FR', 'SA', 'SU'],
90                     },
91                 },
92             },
93             false
94         ),
95     ].forEach(({ a, b, result }, i) => {
96         it(`is rrule subset for ${i}`, () => {
97             expect(getIsRruleSubset(a, b)).toEqual(result);
98         });
99     });