-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[adapters] Fix localisation of the placeholder (mui#6547)
- Loading branch information
1 parent
955179e
commit a4fedc1
Showing
7 changed files
with
282 additions
and
6 deletions.
There are no files selected for viewing
67 changes: 67 additions & 0 deletions
67
packages/x-date-pickers/src/AdapterDateFns/localization.test.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
import * as React from 'react'; | ||
import TextField from '@mui/material/TextField'; | ||
import { DateTimePicker } from '@mui/x-date-pickers/DateTimePicker'; | ||
import { screen } from '@mui/monorepo/test/utils/createRenderer'; | ||
import { expect } from 'chai'; | ||
import { createPickerRenderer } from 'test/utils/pickers-utils'; | ||
import fr from 'date-fns/locale/fr'; | ||
import de from 'date-fns/locale/de'; | ||
|
||
const testDate = new Date(2018, 4, 15, 9, 35); | ||
const localizedTexts = { | ||
undefined: { | ||
placeholder: 'mm/dd/yyyy hh:mm (a|p)m', | ||
value: '05/15/2018 09:35 am', | ||
}, | ||
fr: { | ||
placeholder: 'dd/mm/y hh:mm', | ||
value: '15/05/2018 09:35', | ||
}, | ||
de: { | ||
placeholder: 'dd.mm.y hh:mm', | ||
value: '15.05.2018 09:35', | ||
}, | ||
}; | ||
describe('<AdapterDateFns />', () => { | ||
Object.keys(localizedTexts).forEach((localeKey) => { | ||
const localeName = localeKey === 'undefined' ? 'default' : `"${localeKey}"`; | ||
const localeObject = localeKey === 'undefined' ? undefined : { fr, de }[localeKey]; | ||
|
||
describe(`test with the ${localeName} locale`, () => { | ||
const { render, adapter } = createPickerRenderer({ | ||
clock: 'fake', | ||
adapterName: 'date-fns', | ||
locale: localeObject, | ||
}); | ||
|
||
it('should have correct placeholder', () => { | ||
render( | ||
<DateTimePicker | ||
renderInput={(params) => <TextField {...params} />} | ||
value={null} | ||
onChange={() => {}} | ||
disableMaskedInput | ||
/>, | ||
); | ||
|
||
expect(screen.getByRole('textbox')).to.have.attr( | ||
'placeholder', | ||
localizedTexts[localeKey].placeholder, | ||
); | ||
}); | ||
|
||
it('should have well formatted value', () => { | ||
render( | ||
<DateTimePicker | ||
renderInput={(params) => <TextField {...params} />} | ||
value={adapter.date(testDate)} | ||
onChange={() => {}} | ||
disableMaskedInput | ||
/>, | ||
); | ||
|
||
expect(screen.getByRole('textbox')).to.have.value(localizedTexts[localeKey].value); | ||
}); | ||
}); | ||
}); | ||
}); |
67 changes: 67 additions & 0 deletions
67
packages/x-date-pickers/src/AdapterDayjs/localization.test.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
import * as React from 'react'; | ||
import TextField from '@mui/material/TextField'; | ||
import { DateTimePicker } from '@mui/x-date-pickers/DateTimePicker'; | ||
import { screen } from '@mui/monorepo/test/utils/createRenderer'; | ||
import { expect } from 'chai'; | ||
import { createPickerRenderer } from 'test/utils/pickers-utils'; | ||
import 'dayjs/locale/fr'; | ||
import 'dayjs/locale/de'; | ||
|
||
const testDate = new Date(2018, 4, 15, 9, 35); | ||
const localizedTexts = { | ||
undefined: { | ||
placeholder: 'mm/dd/yyyy hh:mm (a|p)m', | ||
value: '05/15/2018 09:35 AM', | ||
}, | ||
fr: { | ||
placeholder: 'dd/mm/yyyy hh:mm', | ||
value: '15/05/2018 09:35', | ||
}, | ||
de: { | ||
placeholder: 'dd.mm.yyyy hh:mm', | ||
value: '15.05.2018 09:35', | ||
}, | ||
}; | ||
describe('<AdapterDayjs />', () => { | ||
Object.keys(localizedTexts).forEach((localeKey) => { | ||
const localeName = localeKey === 'undefined' ? 'default' : `"${localeKey}"`; | ||
const localeObject = localeKey === 'undefined' ? undefined : { code: localeKey }; | ||
|
||
describe(`test with the ${localeName} locale`, () => { | ||
const { render, adapter } = createPickerRenderer({ | ||
clock: 'fake', | ||
adapterName: 'dayjs', | ||
locale: localeObject, | ||
}); | ||
|
||
it('should have correct placeholder', () => { | ||
render( | ||
<DateTimePicker | ||
renderInput={(params) => <TextField {...params} />} | ||
value={null} | ||
onChange={() => {}} | ||
disableMaskedInput | ||
/>, | ||
); | ||
|
||
expect(screen.getByRole('textbox')).to.have.attr( | ||
'placeholder', | ||
localizedTexts[localeKey].placeholder, | ||
); | ||
}); | ||
|
||
it('should have well formatted value', () => { | ||
render( | ||
<DateTimePicker | ||
renderInput={(params) => <TextField {...params} />} | ||
value={adapter.date(testDate)} | ||
onChange={() => {}} | ||
disableMaskedInput | ||
/>, | ||
); | ||
|
||
expect(screen.getByRole('textbox')).to.have.value(localizedTexts[localeKey].value); | ||
}); | ||
}); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
65 changes: 65 additions & 0 deletions
65
packages/x-date-pickers/src/AdapterLuxon/localization.test.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
import * as React from 'react'; | ||
import TextField from '@mui/material/TextField'; | ||
import { DateTimePicker } from '@mui/x-date-pickers/DateTimePicker'; | ||
import { screen } from '@mui/monorepo/test/utils/createRenderer'; | ||
import { expect } from 'chai'; | ||
import { createPickerRenderer } from 'test/utils/pickers-utils'; | ||
|
||
const testDate = new Date(2018, 4, 15, 9, 35); | ||
const localizedTexts = { | ||
undefined: { | ||
placeholder: 'm/d/yyyy hh:mm (a|p)m', | ||
value: '5/15/2018 09:35 AM', | ||
}, | ||
fr: { | ||
placeholder: 'd/m/yyyy h:m', | ||
value: '15/05/2018 09:35', | ||
}, | ||
de: { | ||
placeholder: 'd.m.yyyy h:m', | ||
value: '15.5.2018 09:35', | ||
}, | ||
}; | ||
describe('<AdapterLuxon />', () => { | ||
Object.keys(localizedTexts).forEach((localeKey) => { | ||
const localeName = localeKey === 'undefined' ? 'default' : `"${localeKey}"`; | ||
const localeObject = localeKey === 'undefined' ? undefined : { code: localeKey }; | ||
|
||
describe(`test with the ${localeName} locale`, () => { | ||
const { render, adapter } = createPickerRenderer({ | ||
clock: 'fake', | ||
adapterName: 'luxon', | ||
locale: localeObject, | ||
}); | ||
|
||
it('should have correct placeholder', () => { | ||
render( | ||
<DateTimePicker | ||
renderInput={(params) => <TextField {...params} />} | ||
value={null} | ||
onChange={() => {}} | ||
disableMaskedInput | ||
/>, | ||
); | ||
|
||
expect(screen.getByRole('textbox')).to.have.attr( | ||
'placeholder', | ||
localizedTexts[localeKey].placeholder, | ||
); | ||
}); | ||
|
||
it('should have well formatted value', () => { | ||
render( | ||
<DateTimePicker | ||
renderInput={(params) => <TextField {...params} />} | ||
value={adapter.date(testDate)} | ||
onChange={() => {}} | ||
disableMaskedInput | ||
/>, | ||
); | ||
|
||
expect(screen.getByRole('textbox')).to.have.value(localizedTexts[localeKey].value); | ||
}); | ||
}); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
66 changes: 66 additions & 0 deletions
66
packages/x-date-pickers/src/AdapterMoment/localization.test.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
import * as React from 'react'; | ||
import TextField from '@mui/material/TextField'; | ||
import { DateTimePicker } from '@mui/x-date-pickers/DateTimePicker'; | ||
import { screen } from '@mui/monorepo/test/utils/createRenderer'; | ||
import { expect } from 'chai'; | ||
import { createPickerRenderer } from 'test/utils/pickers-utils'; | ||
import 'moment/locale/de'; | ||
import 'moment/locale/fr'; | ||
|
||
const testDate = new Date(2018, 4, 15, 9, 35); | ||
const localizedTexts = { | ||
en: { | ||
placeholder: 'mm/dd/yyyy hh:mm', | ||
value: '05/15/2018 09:35', | ||
}, | ||
fr: { | ||
placeholder: 'dd/mm/yyyy hh:mm', | ||
value: '15/05/2018 09:35', | ||
}, | ||
de: { | ||
placeholder: 'dd.mm.yyyy hh:mm', | ||
value: '15.05.2018 09:35', | ||
}, | ||
}; | ||
describe('<AdapterMoment />', () => { | ||
Object.keys(localizedTexts).forEach((localeKey) => { | ||
const localeObject = { code: localeKey }; | ||
|
||
describe(`test with the locale "${localeKey}"`, () => { | ||
const { render, adapter } = createPickerRenderer({ | ||
clock: 'fake', | ||
adapterName: 'moment', | ||
locale: localeObject, | ||
}); | ||
|
||
it('should have correct placeholder', () => { | ||
render( | ||
<DateTimePicker | ||
renderInput={(params) => <TextField {...params} />} | ||
value={null} | ||
onChange={() => {}} | ||
disableMaskedInput | ||
/>, | ||
); | ||
|
||
expect(screen.getByRole('textbox')).to.have.attr( | ||
'placeholder', | ||
localizedTexts[localeKey].placeholder, | ||
); | ||
}); | ||
|
||
it('should have well formatted value', () => { | ||
render( | ||
<DateTimePicker | ||
renderInput={(params) => <TextField {...params} />} | ||
value={adapter.date(testDate)} | ||
onChange={() => {}} | ||
disableMaskedInput | ||
/>, | ||
); | ||
|
||
expect(screen.getByRole('textbox')).to.have.value(localizedTexts[localeKey].value); | ||
}); | ||
}); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters