Skip to content

Commit df8e38b

Browse files
LukasTythomasmoon
authored andcommitted
[pickers] Add more conformance tests improving API docs precision (mui#13800)
1 parent 349d628 commit df8e38b

File tree

68 files changed

+436
-143
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+436
-143
lines changed

docs/pages/x/api/date-pickers/date-field.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@
147147
}
148148
],
149149
"spread": true,
150-
"themeDefaultProps": false,
150+
"themeDefaultProps": true,
151151
"muiName": "MuiDateField",
152152
"forwardsRefTo": "HTMLDivElement",
153153
"filename": "/packages/x-date-pickers/src/DateField/DateField.tsx",

docs/pages/x/api/date-pickers/date-picker.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -359,9 +359,10 @@
359359
}
360360
],
361361
"classes": [],
362-
"spread": true,
363-
"themeDefaultProps": null,
362+
"spread": false,
363+
"themeDefaultProps": false,
364364
"muiName": "MuiDatePicker",
365+
"forwardsRefTo": "HTMLDivElement",
365366
"filename": "/packages/x-date-pickers/src/DatePicker/DatePicker.tsx",
366367
"inheritance": null,
367368
"demos": "<ul><li><a href=\"/x/react-date-pickers/date-picker/\">Date Picker</a></li>\n<li><a href=\"/x/react-date-pickers/validation/\">Date and Time Pickers - Validation</a></li></ul>",

docs/pages/x/api/date-pickers/date-range-picker-day.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@
161161
"isGlobal": false
162162
}
163163
],
164-
"spread": false,
164+
"spread": true,
165165
"themeDefaultProps": false,
166166
"muiName": "MuiDateRangePickerDay",
167167
"forwardsRefTo": "HTMLButtonElement",

docs/pages/x/api/date-pickers/date-time-field.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@
162162
}
163163
],
164164
"spread": true,
165-
"themeDefaultProps": false,
165+
"themeDefaultProps": true,
166166
"muiName": "MuiDateTimeField",
167167
"forwardsRefTo": "HTMLDivElement",
168168
"filename": "/packages/x-date-pickers/src/DateTimeField/DateTimeField.tsx",

docs/pages/x/api/date-pickers/date-time-picker.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -405,9 +405,10 @@
405405
}
406406
],
407407
"classes": [],
408-
"spread": true,
409-
"themeDefaultProps": null,
408+
"spread": false,
409+
"themeDefaultProps": false,
410410
"muiName": "MuiDateTimePicker",
411+
"forwardsRefTo": "HTMLDivElement",
411412
"filename": "/packages/x-date-pickers/src/DateTimePicker/DateTimePicker.tsx",
412413
"inheritance": null,
413414
"demos": "<ul><li><a href=\"/x/react-date-pickers/date-time-picker/\">Date Time Picker</a></li>\n<li><a href=\"/x/react-date-pickers/validation/\">Date and Time Pickers - Validation</a></li></ul>",

docs/pages/x/api/date-pickers/desktop-date-picker.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -337,9 +337,10 @@
337337
}
338338
],
339339
"classes": [],
340-
"spread": true,
341-
"themeDefaultProps": null,
340+
"spread": false,
341+
"themeDefaultProps": false,
342342
"muiName": "MuiDesktopDatePicker",
343+
"forwardsRefTo": "HTMLDivElement",
343344
"filename": "/packages/x-date-pickers/src/DesktopDatePicker/DesktopDatePicker.tsx",
344345
"inheritance": null,
345346
"demos": "<ul><li><a href=\"/x/react-date-pickers/date-picker/\">Date Picker</a></li>\n<li><a href=\"/x/react-date-pickers/validation/\">Date and Time Pickers - Validation</a></li></ul>",

docs/pages/x/api/date-pickers/desktop-date-time-picker.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -383,9 +383,10 @@
383383
}
384384
],
385385
"classes": [],
386-
"spread": true,
387-
"themeDefaultProps": null,
386+
"spread": false,
387+
"themeDefaultProps": false,
388388
"muiName": "MuiDesktopDateTimePicker",
389+
"forwardsRefTo": "HTMLDivElement",
389390
"filename": "/packages/x-date-pickers/src/DesktopDateTimePicker/DesktopDateTimePicker.tsx",
390391
"inheritance": null,
391392
"demos": "<ul><li><a href=\"/x/react-date-pickers/date-time-picker/\">Date Time Picker</a></li>\n<li><a href=\"/x/react-date-pickers/validation/\">Date and Time Pickers - Validation</a></li></ul>",

docs/pages/x/api/date-pickers/digital-clock.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,8 @@
108108
"isGlobal": false
109109
}
110110
],
111-
"spread": false,
112-
"themeDefaultProps": false,
111+
"spread": true,
112+
"themeDefaultProps": true,
113113
"muiName": "MuiDigitalClock",
114114
"forwardsRefTo": "HTMLDivElement",
115115
"filename": "/packages/x-date-pickers/src/DigitalClock/DigitalClock.tsx",

docs/pages/x/api/date-pickers/mobile-date-picker.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -302,9 +302,10 @@
302302
}
303303
],
304304
"classes": [],
305-
"spread": true,
306-
"themeDefaultProps": null,
305+
"spread": false,
306+
"themeDefaultProps": false,
307307
"muiName": "MuiMobileDatePicker",
308+
"forwardsRefTo": "HTMLDivElement",
308309
"filename": "/packages/x-date-pickers/src/MobileDatePicker/MobileDatePicker.tsx",
309310
"inheritance": null,
310311
"demos": "<ul><li><a href=\"/x/react-date-pickers/date-picker/\">Date Picker</a></li>\n<li><a href=\"/x/react-date-pickers/validation/\">Date and Time Pickers - Validation</a></li></ul>",

docs/pages/x/api/date-pickers/mobile-date-time-picker.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -327,9 +327,10 @@
327327
}
328328
],
329329
"classes": [],
330-
"spread": true,
331-
"themeDefaultProps": null,
330+
"spread": false,
331+
"themeDefaultProps": false,
332332
"muiName": "MuiMobileDateTimePicker",
333+
"forwardsRefTo": "HTMLDivElement",
333334
"filename": "/packages/x-date-pickers/src/MobileDateTimePicker/MobileDateTimePicker.tsx",
334335
"inheritance": null,
335336
"demos": "<ul><li><a href=\"/x/react-date-pickers/date-time-picker/\">Date Time Picker</a></li>\n<li><a href=\"/x/react-date-pickers/validation/\">Date and Time Pickers - Validation</a></li></ul>",

docs/pages/x/api/date-pickers/multi-input-date-range-field.json

+3
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,10 @@
113113
"isGlobal": false
114114
}
115115
],
116+
"spread": true,
117+
"themeDefaultProps": true,
116118
"muiName": "MuiMultiInputDateRangeField",
119+
"forwardsRefTo": "HTMLDivElement",
117120
"filename": "/packages/x-date-pickers-pro/src/MultiInputDateRangeField/MultiInputDateRangeField.tsx",
118121
"inheritance": null,
119122
"demos": "<ul><li><a href=\"/x/react-date-pickers/date-range-field/\">Date Range Field <a href=\"/x/introduction/licensing/#pro-plan\" title=\"Pro plan\"><span class=\"plan-pro\"></span></a></a></li>\n<li><a href=\"/x/react-date-pickers/fields/\">Fields component</a></li></ul>",

docs/pages/x/api/date-pickers/multi-input-date-time-range-field.json

+3
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,10 @@
128128
"isGlobal": false
129129
}
130130
],
131+
"spread": true,
132+
"themeDefaultProps": true,
131133
"muiName": "MuiMultiInputDateTimeRangeField",
134+
"forwardsRefTo": "HTMLDivElement",
132135
"filename": "/packages/x-date-pickers-pro/src/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.tsx",
133136
"inheritance": null,
134137
"demos": "<ul><li><a href=\"/x/react-date-pickers/date-time-range-field/\">Date Time Range Field <a href=\"/x/introduction/licensing/#pro-plan\" title=\"Pro plan\"><span class=\"plan-pro\"></span></a></a></li>\n<li><a href=\"/x/react-date-pickers/fields/\">Fields component</a></li></ul>",

docs/pages/x/api/date-pickers/multi-input-time-range-field.json

+3
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,10 @@
116116
"isGlobal": false
117117
}
118118
],
119+
"spread": true,
120+
"themeDefaultProps": true,
119121
"muiName": "MuiMultiInputTimeRangeField",
122+
"forwardsRefTo": "HTMLDivElement",
120123
"filename": "/packages/x-date-pickers-pro/src/MultiInputTimeRangeField/MultiInputTimeRangeField.tsx",
121124
"inheritance": null,
122125
"demos": "<ul><li><a href=\"/x/react-date-pickers/fields/\">Fields component</a></li>\n<li><a href=\"/x/react-date-pickers/time-range-field/\">Time Range Field <a href=\"/x/introduction/licensing/#pro-plan\" title=\"Pro plan\"><span class=\"plan-pro\"></span></a></a></li></ul>",

docs/pages/x/api/date-pickers/multi-section-digital-clock.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,8 @@
120120
"isGlobal": false
121121
}
122122
],
123-
"spread": false,
124-
"themeDefaultProps": false,
123+
"spread": true,
124+
"themeDefaultProps": true,
125125
"muiName": "MuiMultiSectionDigitalClock",
126126
"forwardsRefTo": "HTMLDivElement",
127127
"filename": "/packages/x-date-pickers/src/MultiSectionDigitalClock/MultiSectionDigitalClock.tsx",

docs/pages/x/api/date-pickers/pickers-calendar-header.json

+3
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,10 @@
8484
"isGlobal": false
8585
}
8686
],
87+
"spread": true,
88+
"themeDefaultProps": true,
8789
"muiName": "MuiPickersCalendarHeader",
90+
"forwardsRefTo": "HTMLDivElement",
8891
"filename": "/packages/x-date-pickers/src/PickersCalendarHeader/PickersCalendarHeader.tsx",
8992
"inheritance": null,
9093
"demos": "<ul><li><a href=\"/x/react-date-pickers/custom-components/\">Custom slots and subcomponents</a></li></ul>",

docs/pages/x/api/date-pickers/pickers-range-calendar-header.json

+3
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,10 @@
6363
"isGlobal": false
6464
}
6565
],
66+
"spread": true,
67+
"themeDefaultProps": false,
6668
"muiName": "MuiPickersRangeCalendarHeader",
69+
"forwardsRefTo": "HTMLDivElement",
6770
"filename": "/packages/x-date-pickers-pro/src/PickersRangeCalendarHeader/PickersRangeCalendarHeader.tsx",
6871
"inheritance": null,
6972
"demos": "<ul><li><a href=\"/x/react-date-pickers/custom-components/\">Custom slots and subcomponents</a></li></ul>",

docs/pages/x/api/date-pickers/single-input-date-range-field.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@
131131
}
132132
],
133133
"spread": true,
134-
"themeDefaultProps": false,
134+
"themeDefaultProps": true,
135135
"muiName": "MuiSingleInputDateRangeField",
136136
"forwardsRefTo": "HTMLDivElement",
137137
"filename": "/packages/x-date-pickers-pro/src/SingleInputDateRangeField/SingleInputDateRangeField.tsx",

docs/pages/x/api/date-pickers/single-input-date-time-range-field.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@
146146
}
147147
],
148148
"spread": true,
149-
"themeDefaultProps": false,
149+
"themeDefaultProps": true,
150150
"muiName": "MuiSingleInputDateTimeRangeField",
151151
"forwardsRefTo": "HTMLDivElement",
152152
"filename": "/packages/x-date-pickers-pro/src/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.tsx",

docs/pages/x/api/date-pickers/single-input-time-range-field.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@
134134
}
135135
],
136136
"spread": true,
137-
"themeDefaultProps": false,
137+
"themeDefaultProps": true,
138138
"muiName": "MuiSingleInputTimeRangeField",
139139
"forwardsRefTo": "HTMLDivElement",
140140
"filename": "/packages/x-date-pickers-pro/src/SingleInputTimeRangeField/SingleInputTimeRangeField.tsx",

docs/pages/x/api/date-pickers/static-date-picker.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -253,9 +253,10 @@
253253
}
254254
],
255255
"classes": [],
256-
"spread": true,
257-
"themeDefaultProps": null,
256+
"spread": false,
257+
"themeDefaultProps": false,
258258
"muiName": "MuiStaticDatePicker",
259+
"forwardsRefTo": "HTMLDivElement",
259260
"filename": "/packages/x-date-pickers/src/StaticDatePicker/StaticDatePicker.tsx",
260261
"inheritance": null,
261262
"demos": "<ul><li><a href=\"/x/react-date-pickers/date-picker/\">Date Picker</a></li>\n<li><a href=\"/x/react-date-pickers/validation/\">Date and Time Pickers - Validation</a></li></ul>",

docs/pages/x/api/date-pickers/static-date-range-picker.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@
209209
"spread": false,
210210
"themeDefaultProps": false,
211211
"muiName": "MuiStaticDateRangePicker",
212-
"forwardsRefTo": "undefined",
212+
"forwardsRefTo": "HTMLDivElement",
213213
"filename": "/packages/x-date-pickers-pro/src/StaticDateRangePicker/StaticDateRangePicker.tsx",
214214
"inheritance": null,
215215
"demos": "<ul><li><a href=\"/x/react-date-pickers/date-range-picker/\">Date Range Picker <a href=\"/x/introduction/licensing/#pro-plan\" title=\"Pro plan\"><span class=\"plan-pro\"></span></a></a></li>\n<li><a href=\"/x/react-date-pickers/validation/\">Date and Time Pickers - Validation</a></li></ul>",

docs/pages/x/api/date-pickers/static-date-time-picker.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -278,9 +278,10 @@
278278
}
279279
],
280280
"classes": [],
281-
"spread": true,
282-
"themeDefaultProps": null,
281+
"spread": false,
282+
"themeDefaultProps": false,
283283
"muiName": "MuiStaticDateTimePicker",
284+
"forwardsRefTo": "HTMLDivElement",
284285
"filename": "/packages/x-date-pickers/src/StaticDateTimePicker/StaticDateTimePicker.tsx",
285286
"inheritance": null,
286287
"demos": "<ul><li><a href=\"/x/react-date-pickers/date-time-picker/\">Date Time Picker</a></li>\n<li><a href=\"/x/react-date-pickers/validation/\">Date and Time Pickers - Validation</a></li></ul>",

docs/pages/x/api/date-pickers/static-time-picker.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@
168168
"spread": false,
169169
"themeDefaultProps": false,
170170
"muiName": "MuiStaticTimePicker",
171-
"forwardsRefTo": "undefined",
171+
"forwardsRefTo": "HTMLDivElement",
172172
"filename": "/packages/x-date-pickers/src/StaticTimePicker/StaticTimePicker.tsx",
173173
"inheritance": null,
174174
"demos": "<ul><li><a href=\"/x/react-date-pickers/time-picker/\">Time Picker</a></li>\n<li><a href=\"/x/react-date-pickers/validation/\">Date and Time Pickers - Validation</a></li></ul>",

docs/pages/x/api/date-pickers/time-field.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,9 @@
134134
}
135135
],
136136
"spread": true,
137-
"themeDefaultProps": null,
137+
"themeDefaultProps": true,
138138
"muiName": "MuiTimeField",
139+
"forwardsRefTo": "HTMLDivElement",
139140
"filename": "/packages/x-date-pickers/src/TimeField/TimeField.tsx",
140141
"inheritance": null,
141142
"demos": "<ul><li><a href=\"/x/react-date-pickers/fields/\">Fields component</a></li>\n<li><a href=\"/x/react-date-pickers/time-field/\">Time Field</a></li></ul>",

packages/x-date-pickers-pro/src/DateRangePicker/describes.DateRangePicker.test.tsx

-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ describe('<DateRangePicker /> - Describes', () => {
1919
'themeVariants',
2020
'mergeClassName',
2121
'propsSpread',
22-
'rootClass',
2322
],
2423
}));
2524
});

packages/x-date-pickers-pro/src/DateRangePickerDay/DateRangePickerDay.test.tsx

-2
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@ describe('<DateRangePickerDay />', () => {
3636
'rootClass', // forwards classes to DateRangePickerDayDay, but applies root class on DateRangePickerDayRoot
3737
'mergeClassName', // forwards other props (i.e. data-test-id) to the DateRangePickerDayDay, but `className` is applied on the root
3838
'componentsProp',
39-
'propsSpread',
40-
'refForwarding',
4139
// TODO: Fix DateRangePickerDays is not spreading props on root
4240
'themeDefaultProps',
4341
'themeVariants',

packages/x-date-pickers-pro/src/DateTimeRangePicker/tests/describes.DateTimeRangePicker.test.tsx

-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ describe('<DateTimeRangePicker /> - Describes', () => {
1919
'themeVariants',
2020
'mergeClassName',
2121
'propsSpread',
22-
'rootClass',
2322
],
2423
}));
2524
});

packages/x-date-pickers-pro/src/DesktopDateRangePicker/tests/describes.DesktopDateRangePicker.test.tsx

-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ describe('<DesktopDateRangePicker /> - Describes', () => {
4242
'themeVariants',
4343
'mergeClassName',
4444
'propsSpread',
45-
'rootClass',
4645
],
4746
}));
4847

packages/x-date-pickers-pro/src/DesktopDateTimeRangePicker/tests/describes.DesktopDateTimeRangePicker.test.tsx

-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ describe('<DesktopDateTimeRangePicker /> - Describes', () => {
4343
'themeVariants',
4444
'mergeClassName',
4545
'propsSpread',
46-
'rootClass',
4746
],
4847
}));
4948

packages/x-date-pickers-pro/src/MobileDateRangePicker/tests/describes.MobileDateRangePicker.test.tsx

-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ describe('<MobileDateRangePicker /> - Describes', () => {
4242
'themeVariants',
4343
'mergeClassName',
4444
'propsSpread',
45-
'rootClass',
4645
],
4746
}));
4847

packages/x-date-pickers-pro/src/MobileDateTimeRangePicker/tests/describes.MobileDateTimeRangePicker.test.tsx

-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ describe('<MobileDateTimeRangePicker /> - Describes', () => {
4444
'themeVariants',
4545
'mergeClassName',
4646
'propsSpread',
47-
'rootClass',
4847
],
4948
}));
5049

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import * as React from 'react';
2+
import { pickersCalendarHeaderClasses } from '@mui/x-date-pickers/PickersCalendarHeader';
3+
import { pickersArrowSwitcherClasses } from '@mui/x-date-pickers/internals';
4+
import { PickersRangeCalendarHeader } from '@mui/x-date-pickers-pro/PickersRangeCalendarHeader';
5+
import { ConformanceOptions } from '@mui/internal-test-utils';
6+
import { adapterToUse, createPickerRenderer } from 'test/utils/pickers';
7+
import { describeConformance } from 'test/utils/describeConformance';
8+
9+
const CALENDARS_TO_CLASSES_MAP: Record<1 | 2, ConformanceOptions['classes']> = {
10+
1: pickersCalendarHeaderClasses,
11+
2: pickersArrowSwitcherClasses,
12+
};
13+
14+
describe('<PickersRangeCalendarHeader /> - Describes', () => {
15+
const { render } = createPickerRenderer({ clock: 'fake' });
16+
17+
Object.entries(CALENDARS_TO_CLASSES_MAP).forEach(([calendars, classes]) => {
18+
describeConformance(
19+
<PickersRangeCalendarHeader
20+
calendars={parseInt(calendars, 10) as 1 | 2}
21+
monthIndex={0}
22+
month={adapterToUse.date('2018-01-01')}
23+
currentMonth={adapterToUse.date('2018-01-01')}
24+
minDate={adapterToUse.date('1900-01-01')}
25+
maxDate={adapterToUse.date('2100-12-31')}
26+
onMonthChange={() => {}}
27+
views={['day']}
28+
view="day"
29+
timezone="system"
30+
reduceAnimations
31+
/>,
32+
() => ({
33+
classes,
34+
inheritComponent: 'div',
35+
render,
36+
muiName: 'MuiPickersRangeCalendarHeader',
37+
refInstanceof: window.HTMLDivElement,
38+
skip: [
39+
'componentProp',
40+
'componentsProp',
41+
'themeVariants',
42+
'themeDefaultProps',
43+
'themeStyleOverrides',
44+
],
45+
}),
46+
);
47+
});
48+
});

packages/x-date-pickers-pro/src/SingleInputDateRangeField/tests/describes.SingleInputDateRangeField.test.tsx

+1-7
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,7 @@ describe('<SingleInputDateRangeField /> - Describes', () => {
1313
render,
1414
muiName: 'MuiSingleInputDateRangeField',
1515
refInstanceof: window.HTMLDivElement,
16-
skip: [
17-
'componentProp',
18-
'componentsProp',
19-
'themeDefaultProps',
20-
'themeStyleOverrides',
21-
'themeVariants',
22-
],
16+
skip: ['componentProp', 'componentsProp', 'themeVariants', 'themeStyleOverrides'],
2317
}));
2418

2519
describeRangeValidation(SingleInputDateRangeField, () => ({

packages/x-date-pickers-pro/src/SingleInputDateTimeRangeField/tests/describes.SingleInputDateTimeRangeField.test.tsx

+1-7
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,7 @@ describe('<SingleInputDateTimeRangeField /> - Describes', () => {
1212
render,
1313
muiName: 'MuiSingleInputDateTimeRangeField',
1414
refInstanceof: window.HTMLDivElement,
15-
skip: [
16-
'componentProp',
17-
'componentsProp',
18-
'themeDefaultProps',
19-
'themeStyleOverrides',
20-
'themeVariants',
21-
],
15+
skip: ['componentProp', 'componentsProp', 'themeVariants', 'themeStyleOverrides'],
2216
}));
2317

2418
describeRangeValidation(SingleInputDateTimeRangeField, () => ({

0 commit comments

Comments
 (0)