如何向我的节点环境添加本地化,​​以便测试符合浏览器行为?

时间:2018-03-15 14:57:49

标签: node.js internationalization jsdom

我正在编写使用JS i18n API的格式化函数的测试。

(5).toLocaleString('en-ca', {style: 'currency', currency: 'CAD'})

在浏览器中,我得到$5.00,正如我所料。

在开玩笑测试中(节点8.9.1 + jsdom),我得到CA$5.00

它应该是$5.00,因为指定的区域设置是加拿大。如果区域设置为CA$5.00,则'en-us'会有意义,从而指定外币。

这种行为在ECMAscript的实施中似乎有所不同。到目前为止的测试显示:

  • jest / jsdom / node 始终将CA添加到CAD
  • Chrome,Safari和Firefox仅在区域设置未设置为加拿大时才添加
  • IE 从不添加它。

对于fr-ca,差异甚至更大:

(5).toLocaleString('fr-ca', {style: 'currency', currency: 'CAD'})
\\ node: `CA$ 5.00` (incorrect). 
\\ browser: `5,00 $` (correct)

我怀疑运行测试的任何环境(可能是我的nvm托管节点版本)都没有本地化的“fr-ca”,或者可能是en-US以外的所有本地化版本。我想让我们的测试与浏览器匹配,以便他们可以......测试。

0 个答案:

没有答案