getDayClassNames.test.ts
2.01 KB
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
import { DayPickerContextValue } from 'contexts/DayPicker';
import { defaultClassNames } from 'contexts/DayPicker/defaultClassNames';
import { ActiveModifiers, InternalModifier } from 'types/Modifiers';
import { getDayClassNames } from './getDayClassNames';
type DayPickerOptions = Pick<
DayPickerContextValue,
'modifiersClassNames' | 'classNames'
>;
const internalModifiers = Object.values(InternalModifier);
test('should include the day class name', () => {
const dayPicker: DayPickerOptions = {
modifiersClassNames: {},
classNames: defaultClassNames
};
const activeModifiers: ActiveModifiers = {};
expect(getDayClassNames(dayPicker, activeModifiers)).toContain(
defaultClassNames.day
);
});
describe('when using "modifiersClassNames" for a custom modifier', () => {
const modifierClassName = `foo-class`;
const dayPicker: DayPickerOptions = {
modifiersClassNames: {
foo: modifierClassName
},
classNames: defaultClassNames
};
const activeModifiers: ActiveModifiers = { foo: true };
test('should return the custom class name for the modifier', () => {
expect(getDayClassNames(dayPicker, activeModifiers)).toContain(
modifierClassName
);
});
});
describe.each(internalModifiers)(
'when using "modifiersClassNames" for the %s (internal) modifier',
(internalModifier) => {
const modifierClassName = `foo-${internalModifier}`;
const dayPicker: DayPickerOptions = {
modifiersClassNames: {
[internalModifier]: modifierClassName
},
classNames: defaultClassNames
};
const activeModifiers: ActiveModifiers = { [internalModifier]: true };
test('should return the custom class name for the modifier', () => {
expect(getDayClassNames(dayPicker, activeModifiers)).toContain(
modifierClassName
);
});
test('should not include the default class name for the modifier', () => {
expect(getDayClassNames(dayPicker, activeModifiers)).not.toContain(
defaultClassNames.day_selected
);
});
}
);