Skip to content

Commit eea1440

Browse files
committed
test: Add additional useDefaults composable test cases
1 parent 7b77645 commit eea1440

File tree

3 files changed

+25
-3
lines changed

3 files changed

+25
-3
lines changed

src/packages/composables/__tests__/useDefaults.spec.ts

+22-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import { describe, expect, it } from 'vitest';
2+
import { getHours } from 'date-fns';
23
import { useDefaults } from '@packages/composables/useDefaults';
34
import { PICKER_MODE } from '@packages/constants';
4-
import { getHours } from 'date-fns';
5+
import type { Time } from '@packages/types';
56

67
describe('useDefaults', () => {
78
it('Should get default text input option', () => {
@@ -42,6 +43,9 @@ describe('useDefaults', () => {
4243
const weekPickerFormat = getDefaultPattern(PICKER_MODE.WEEK_PICKER, undefined, true, undefined);
4344
expect(weekPickerFormat).toEqual('ww-RR');
4445

46+
const weekPickerFormatIso = getDefaultPattern(PICKER_MODE.WEEK_PICKER, undefined, true, { type: 'iso' });
47+
expect(weekPickerFormatIso).toEqual('II-RR');
48+
4549
const quarterPickerFormat = getDefaultPattern(PICKER_MODE.QUARTER_PICKER, undefined, true, undefined);
4650
expect(quarterPickerFormat).toEqual('QQQ/yyyy');
4751

@@ -55,6 +59,18 @@ describe('useDefaults', () => {
5559
undefined,
5660
);
5761
expect(timePickerSeconds).toEqual('HH:mm:ss');
62+
63+
const timePickerAmPm = getDefaultPattern(PICKER_MODE.TIME_PICKER, undefined, { is24: false }, undefined);
64+
expect(timePickerAmPm).toEqual('hh:mm aa');
65+
66+
const timePickerNoMin = getDefaultPattern(
67+
PICKER_MODE.TIME_PICKER,
68+
undefined,
69+
{ enableMinutes: false },
70+
undefined,
71+
);
72+
73+
expect(timePickerNoMin).toEqual('HH');
5874
});
5975

6076
it('Should get default start time', () => {
@@ -71,6 +87,11 @@ describe('useDefaults', () => {
7187

7288
expect(minutesOnly).toHaveProperty('hours', currentHours);
7389
expect(minutesOnly).toHaveProperty('minutes', 15);
90+
91+
const rangedStartTime = getDefaultStartTime(true, { startTime: [{ hours: 1 }, { hours: 2 }] });
92+
expect(rangedStartTime).toHaveLength(2);
93+
expect((rangedStartTime as Array<Time>)[0]).toHaveProperty('hours', 1);
94+
expect((rangedStartTime as Array<Time>)[1]).toHaveProperty('hours', 2);
7495
});
7596

7697
it('Should get default filters', () => {

src/packages/composables/useDefaults.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import type {
77
WeekNumbersOpts,
88
FilterProp,
99
TextInputOptionsProp,
10+
Time,
1011
} from '@packages/types';
1112

1213
export const useDefaults = () => {
@@ -80,7 +81,7 @@ export const useDefaults = () => {
8081
if (isRange && startTime && Array.isArray(startTime)) {
8182
return startTime.map((time) => assignTime(time));
8283
}
83-
return startTime ? assignTime(startTime) : assignTime({});
84+
return startTime ? assignTime(startTime as Partial<Time>) : assignTime({});
8485
};
8586

8687
const getDefaultFilters = (filters: Partial<FilterProp> | undefined): FilterProp => ({

src/packages/types/props.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ export interface TimeOptions {
4040
enableSeconds: boolean;
4141
enableMinutes: boolean;
4242
is24: boolean;
43-
startTime?: Partial<Time>;
43+
startTime?: Partial<Time> | Partial<Time>[];
4444
}
4545

4646
export type TimeProp = boolean | Partial<TimeOptions>;

0 commit comments

Comments
 (0)