I\'m running into an issue where Intl.NumberFormat
is formatting the space character in some way that is different from what Jest is expecting. Tests against t
NumberFormat use small non-breaking space (\u202f
) for thousand separator and normal non-breaking space beforece currency (\xa0
)
expect(new Intl.NumberFormat("fr-FR", {
style: "currency",
currency: "EUR",
}).format(126126)).toBe("126\u202f126,00\xa0€")
'11 111.11'.split('').map(x => console.log((x.charCodeAt(0))))
Yields "32" for the space character which is a normal space.
new Intl.NumberFormat('fr-CA').format(11111.11).split('').map(x => console.log((x.charCodeAt(0))))
Yields "160" for the space character, which is a non-breaking space.
To make these tests pass, you need to add the non-breaking space UTF-16 (\xa0) character code into the assertion.
expect(formatCurrency(24555.55, 'fr_CA', true)).toBe('24\xa0555,55 $');