'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 $');