import { mount } from '@vue/test-utils'; import Vue from 'vue'; import moment from 'moment'; import MockDate from 'mockdate'; import { sleep } from '../../../tests/utils'; import { LocaleProvider, Pagination, DatePicker, TimePicker, Calendar, Popconfirm, Table, Modal, Select, Transfer, } from '../..'; import arEG from '../ar_EG'; import bgBG from '../bg_BG'; import caES from '../ca_ES'; import csCZ from '../cs_CZ'; import daDK from '../da_DK'; import deDE from '../de_DE'; import elGR from '../el_GR'; import enGB from '../en_GB'; import enUS from '../en_US'; import esES from '../es_ES'; import etEE from '../et_EE'; import faIR from '../fa_IR'; import fiFI from '../fi_FI'; import frBE from '../fr_BE'; import frFR from '../fr_FR'; import heIL from '../he_IL'; import hiIN from '../hi_IN'; import hrHR from '../hr_HR'; import huHU from '../hu_HU'; import hyAM from '../hy_AM'; import isIS from '../is_IS'; import itIT from '../it_IT'; import jaJP from '../ja_JP'; import knIN from '../kn_IN'; import koKR from '../ko_KR'; import kuIQ from '../ku_IQ'; import mkMK from '../mk_MK'; import mnMN from '../mn_MN'; import msMY from '../ms_MY'; import nbNO from '../nb_NO'; import neNP from '../ne-NP'; import nlBE from '../nl_BE'; import nlNL from '../nl_NL'; import plPL from '../pl_PL'; import ptBR from '../pt_BR'; import ptPT from '../pt_PT'; import roRO from '../ro_RO'; import ruRU from '../ru_RU'; import skSK from '../sk_SK'; import slSI from '../sl_SI'; import srRS from '../sr_RS'; import svSE from '../sv_SE'; import taIN from '../ta_IN'; import thTH from '../th_TH'; import trTR from '../tr_TR'; import ukUA from '../uk_UA'; import viVN from '../vi_VN'; import idID from '../id_ID'; import lvLV from '../lv_LV'; import zhCN from '../zh_CN'; import zhTW from '../zh_TW'; const locales = [ arEG, bgBG, caES, csCZ, daDK, deDE, elGR, enGB, enUS, esES, etEE, faIR, fiFI, frBE, frFR, heIL, hiIN, hrHR, huHU, hyAM, isIS, itIT, jaJP, knIN, koKR, kuIQ, mkMK, msMY, mnMN, nbNO, neNP, nlBE, nlNL, plPL, ptBR, ptPT, roRO, ruRU, skSK, slSI, srRS, svSE, taIN, thTH, trTR, ukUA, viVN, idID, lvLV, zhCN, zhTW, ]; const { Option } = Select; const { RangePicker } = DatePicker; const columns = [ { title: 'Name', dataIndex: 'name', filters: [ { text: 'filter1', value: 'filter1', }, ], }, { title: 'Age', dataIndex: 'age', }, ]; const App = { render() { return (
Click to confirm item.title} />

Locale Modal

); }, }; describe('Locale Provider', () => { beforeAll(() => { document.body.innerHTML = ''; MockDate.set(moment('2017-09-18T03:30:07.795')); }); afterAll(() => { MockDate.reset(); }); locales.forEach(locale => { it(`should display the text as ${locale.locale}`, done => { const wrapper = mount( { render() { return ( ); }, }, { sync: false, attachToDocument: true }, ); Vue.nextTick(() => { expect(wrapper.html()).toMatchSnapshot(); done(); }); }); }); it('should change locale of Modal.xxx', async () => { const ModalDemo = { mounted() { Modal.confirm({ title: 'Hello World!', }); }, render() { return null; }, }; for (let locale of locales) { document.body.innerHTML = ''; mount( { render() { return ( ); }, }, { sync: false, attachToDocument: true }, ); await sleep(); const currentConfirmNode = document.querySelectorAll('.ant-modal-confirm')[ document.querySelectorAll('.ant-modal-confirm').length - 1 ]; let cancelButtonText = currentConfirmNode.querySelectorAll( '.ant-btn:not(.ant-btn-primary) span', )[0].innerHTML; let okButtonText = currentConfirmNode.querySelectorAll('.ant-btn-primary span')[0].innerHTML; if (locale.locale === 'zh-cn') { cancelButtonText = cancelButtonText.replace(' ', ''); okButtonText = okButtonText.replace(' ', ''); } expect(cancelButtonText).toBe(locale.Modal.cancelText); expect(okButtonText).toBe(locale.Modal.okText); } }); it('set moment locale when locale changes', async () => { document.body.innerHTML = ''; const Test = { data() { return { locale: zhCN, }; }, render() { return (
); }, }; const wrapper = mount(Test, { sync: false, attachToDocument: true }); await sleep(50); expect(document.body.innerHTML).toMatchSnapshot(); wrapper.setData({ locale: frFR }); await sleep(50); expect(document.body.innerHTML).toMatchSnapshot(); wrapper.setData({ locale: null }); await sleep(50); expect(document.body.innerHTML).toMatchSnapshot(); }); });