Test Failed
Push — master ( f39d9b...c33146 )
by Dmytro
01:45
created

tests/unit/date.workingDays.test.js   A

Complexity

Total Complexity 8
Complexity/F 1

Size

Lines of Code 94
Function Count 8

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 8
eloc 64
mnd 0
bc 0
fnc 8
dl 0
loc 94
rs 10
bpm 0
cpm 1
noi 0
c 0
b 0
f 0
1
import { assert } from 'chai';
2
import dayjs from 'dayjs';
3
import '../Test';
4
import customParseFormat from 'dayjs/plugin/customParseFormat';
5
import utc from 'dayjs/plugin/utc';
6
7
import { load } from '../utils';
8
9
dayjs.extend(utc);
10
dayjs.extend(customParseFormat);
11
12
const { workingDays } = load('utils');
13
14
suite('Utils: workingDays');
15
16
before(async function () {});
17
18
test('include end date into range', async function () {
19
    const res = workingDays({
20
        from : dayjs.utc('01.01.2021', 'DD.MM.YYYY', true),
21
        to   : dayjs.utc('15.01.2021', 'DD.MM.YYYY', true)
22
    });
23
24
    assert.deepEqual(res.map(d => d.format('DD MMM (ddd)')), [
25
        '01 Jan (Fri)',
26
27
        '04 Jan (Mon)',
28
        '05 Jan (Tue)',
29
        '06 Jan (Wed)',
30
        '07 Jan (Thu)',
31
        '08 Jan (Fri)',
32
33
        '11 Jan (Mon)',
34
        '12 Jan (Tue)',
35
        '13 Jan (Wed)',
36
        '14 Jan (Thu)',
37
        '15 Jan (Fri)'
38
    ]);
39
});
40
41
test('custom include/exclude dates', async function () {
42
    const res = workingDays({
43
        from    : dayjs.utc('01.01.2021', 'DD.MM.YYYY', true),
44
        to      : dayjs.utc('15.01.2021', 'DD.MM.YYYY', true),
45
        include : [ dayjs.utc('09.01.2021', 'DD.MM.YYYY', true) ],
46
        exclude : [ dayjs.utc('07.01.2021', 'DD.MM.YYYY', true) ]
47
    });
48
49
    assert.deepEqual(res.map(d => d.format('DD MMM (ddd)')), [
50
        '01 Jan (Fri)',
51
52
        '04 Jan (Mon)',
53
        '05 Jan (Tue)',
54
        '06 Jan (Wed)',
55
        '08 Jan (Fri)',
56
        '09 Jan (Sat)',
57
58
        '11 Jan (Mon)',
59
        '12 Jan (Tue)',
60
        '13 Jan (Wed)',
61
        '14 Jan (Thu)',
62
        '15 Jan (Fri)'
63
    ]);
64
});
65
66
67
test('allow include be out of range', async function () {
68
    const res = workingDays({
69
        from    : dayjs.utc('01.01.2021', 'DD.MM.YYYY', true),
70
        to      : dayjs.utc('15.01.2021', 'DD.MM.YYYY', true),
71
        include : [ dayjs.utc('20.01.2021', 'DD.MM.YYYY', true) ]
72
    });
73
74
    assert.deepEqual(res.map(d => d.format('DD MMM (ddd)')), [
75
        '01 Jan (Fri)',
76
77
        '04 Jan (Mon)',
78
        '05 Jan (Tue)',
79
        '06 Jan (Wed)',
80
        '07 Jan (Thu)',
81
        '08 Jan (Fri)',
82
83
        '11 Jan (Mon)',
84
        '12 Jan (Tue)',
85
        '13 Jan (Wed)',
86
        '14 Jan (Thu)',
87
        '15 Jan (Fri)',
88
89
        '20 Jan (Wed)'
90
    ]);
91
});
92
93
94
after(async function () {});
95