Javascript date.toLocaleString(';en us';,{dateStyle:';long';})不在jest测试中工作,但在浏览器中工作

Javascript date.toLocaleString(';en us';,{dateStyle:';long';})不在jest测试中工作,但在浏览器中工作,javascript,reactjs,jestjs,Javascript,Reactjs,Jestjs,我不知道为什么这个函数的测试不通过 export function timeStampToFormattedDate (timestamp) { if (!timestamp) return 'N/A' const date = new Date(timestamp) return date.toLocaleString('en-us', { dateStyle: 'long' }) } 试验 我在运行测试时遇到了这个错误 timeStampToFormattedDate func

我不知道为什么这个函数的测试不通过

export function timeStampToFormattedDate (timestamp) {
  if (!timestamp) return 'N/A'
  const date = new Date(timestamp)
  return date.toLocaleString('en-us', { dateStyle: 'long' })
}
试验

我在运行测试时遇到了这个错误

timeStampToFormattedDate function › returns formatted date string from last active user time-stamp

expect(received).toEqual(expected) // deep equality

Expected: "June 22, 2020"
Received: "6/22/2020, 10:26:38 AM"

   8 |     const timeStamp = 1592810798024
   9 |     const formattedString = timeStampToFormattedDate(timeStamp)
> 10 |     expect(formattedString).toEqual(`June 22, 2020`)
     |                             ^
  11 |   })
  12 |
  13 |   it('returns "N/A" if last active timestamp is null', () => {

  at Object.toEqual (src/utilities/dateTimeUtil.test.js:10:29)
当我通过在浏览器conosle中使用相同的参数调用测试来尝试该函数时,它按预期工作

timeStampToFormattedDate(1592810798024)
"June 22, 2020"

那么为什么它会失败呢?

正如@James在他们的评论中提到的,这只在节点V13.0.0和更高版本中受支持,如下所述:

测试这一点的一个简单方法是从命令行运行它。键入
节点
并复制粘贴您的方法,然后使用时间戳调用该方法

以下是一个例子:


运行测试的Node.js版本可能没有完整的国际化库。将运行的版本与底部的需求进行比较
timeStampToFormattedDate(1592810798024)
"June 22, 2020"