Blame view

天文台pc/tianwentai-ui/node_modules/react-day-picker/src/hooks/useDayRender/utils/getDayClassNames.test.ts 2.01 KB
bc518174   王天杨   提交两个项目文件
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
        );
      });
    }
  );