|
1 | 1 | import { expect } from '@vaadin/chai-plugins';
|
2 | 2 | import { aTimeout, fixtureSync, nextFrame, nextRender } from '@vaadin/testing-helpers';
|
3 | 3 | import '../src/vaadin-date-time-picker.js';
|
4 |
| -import { html, PolymerElement } from '@polymer/polymer/polymer-element.js'; |
5 |
| -import { formatISOTime, parseISOTime } from '@vaadin/time-picker/src/vaadin-time-picker-helper.js'; |
6 |
| - |
7 |
| -customElements.define( |
8 |
| - 'dtp-i18n-default', |
9 |
| - class extends PolymerElement { |
10 |
| - static get template() { |
11 |
| - return html`<vaadin-date-time-picker id="dateTimePicker" i18n="[[i18n]]"></vaadin-date-time-picker>`; |
12 |
| - } |
13 |
| - |
14 |
| - static get properties() { |
15 |
| - return { |
16 |
| - i18n: { |
17 |
| - type: Object, |
18 |
| - value: () => { |
19 |
| - return { |
20 |
| - cancel: 'Peruuta', // For date picker |
21 |
| - |
22 |
| - // formatTime and parseTime are needed so that time picker doesn't throw errors on init |
23 |
| - formatTime: formatISOTime, |
24 |
| - parseTime: parseISOTime, |
25 |
| - }; |
26 |
| - }, |
27 |
| - }, |
28 |
| - }; |
29 |
| - } |
30 |
| - }, |
31 |
| -); |
32 |
| - |
33 |
| -customElements.define( |
34 |
| - 'dtp-i18n-slotted', |
35 |
| - class extends PolymerElement { |
36 |
| - static get template() { |
37 |
| - return html` |
38 |
| - <vaadin-date-time-picker id="dateTimePicker"> |
39 |
| - <vaadin-date-picker slot="date-picker" i18n="[[dpI18n]]"></vaadin-date-picker> |
40 |
| - <vaadin-time-picker slot="time-picker" i18n="[[tpI18n]]"></vaadin-time-picker> |
41 |
| - </vaadin-date-time-picker> |
42 |
| - `; |
43 |
| - } |
44 |
| - |
45 |
| - static get properties() { |
46 |
| - return { |
47 |
| - dpI18n: { |
48 |
| - type: Object, |
49 |
| - value: () => { |
50 |
| - return { |
51 |
| - cancel: 'Peruuta', |
52 |
| - }; |
53 |
| - }, |
54 |
| - }, |
55 |
| - tpI18n: { |
56 |
| - type: Object, |
57 |
| - value: () => { |
58 |
| - return { |
59 |
| - formatTime: formatISOTime, |
60 |
| - parseTime: parseISOTime, |
61 |
| - }; |
62 |
| - }, |
63 |
| - }, |
64 |
| - }; |
65 |
| - } |
66 |
| - }, |
67 |
| -); |
68 | 4 |
|
69 | 5 | ['default', 'slotted'].forEach((set) => {
|
70 | 6 | describe(`i18n property (${set})`, () => {
|
71 |
| - let dateTimePicker; |
72 |
| - let datePicker; |
| 7 | + let dateTimePicker, datePicker; |
73 | 8 |
|
74 |
| - // No need for "beforeEach" to recreate the fixture before every test since these tests do not |
75 |
| - // modify the state but only check the initial state. |
76 |
| - before(async () => { |
77 |
| - const element = fixtureSync(`<dtp-i18n-${set}></dtp-i18n-${set}>`); |
| 9 | + const CUSTOM_I18N = { cancel: 'Peruuta' }; |
| 10 | + |
| 11 | + beforeEach(async () => { |
| 12 | + const i18nProp = JSON.stringify(CUSTOM_I18N); |
| 13 | + |
| 14 | + if (set === 'default') { |
| 15 | + dateTimePicker = fixtureSync(`<vaadin-date-time-picker i18n='${i18nProp}'></vaadin-date-time-picker>`); |
| 16 | + } else { |
| 17 | + dateTimePicker = fixtureSync(` |
| 18 | + <vaadin-date-time-picker> |
| 19 | + <vaadin-date-picker slot="date-picker" i18n='${i18nProp}'></vaadin-date-picker> |
| 20 | + <vaadin-time-picker slot="time-picker"></vaadin-time-picker> |
| 21 | + </vaadin-date-time-picker> |
| 22 | + `); |
| 23 | + } |
78 | 24 | await nextRender();
|
79 |
| - dateTimePicker = element.$.dateTimePicker; |
80 | 25 | datePicker = dateTimePicker.querySelector('[slot="date-picker"]');
|
81 | 26 | });
|
82 | 27 |
|
83 | 28 | it('should have initial value for i18n', () => {
|
84 |
| - expect(dateTimePicker.i18n).to.have.property('cancel', 'Peruuta'); |
85 |
| - expect(datePicker.i18n).to.have.property('cancel', 'Peruuta'); |
| 29 | + expect(dateTimePicker.i18n).to.have.property('cancel', CUSTOM_I18N.cancel); |
| 30 | + expect(datePicker.i18n).to.have.property('cancel', CUSTOM_I18N.cancel); |
86 | 31 | });
|
87 | 32 | });
|
88 | 33 | });
|
|
0 commit comments