Я пытаюсь протестировать функции форматирования валюты, и хотя они работают в браузере, они не работают в моей тестовой среде. Я понимаю, что intl не входит в стандартную комплектацию с узлом, поэтому я добавил intl и full-icu в мои devDependencies, но это не помогло
var IntlPolyfill = require('intl');
require('full-icu');
Intl.NumberFormat = IntlPolyfill.NumberFormat;
Intl.DateTimeFormat = IntlPolyfill.DateTimeFormat;
expect((4000).toLocaleString('fr-ca',{style: 'currency',currency: 'CAD',currencyDisplay: 'symbol'})).toBe('4 000,00 $')
/* test output:
Expected: "4 000,00 $"
Received: "CA$ 4,000.00"
*/
В IE11, Chrome и Firefox я получаю ожидаемый результат ("14 337,00 $"
), а в узле - нет.
Я нашел небольшую помощь онлайн, но нашел ссылку на 2 библиотеки, которые я использую здесь. Что мне нужно сделать, чтобы среда узлов, используемая Jest, имела доступ к соответствующим функциям Intl. Функция есть, но, похоже, она возвращает форматирование США для каждой локали.